Potion Factory Blog

Announcing Potion Store

I am pleased to announce that the code that powers the Potion Factory Store is now available to anyone, free of charge, in the form of an open source project.

Link to Potion Store Project

When we first launched Podcast Maker back in September of 2005, we just went with Kagi without giving much thought to the issue. We wanted to get our software out ASAP and payment processing was the last thing on our mind. After all, if it's good enough for Brent Simmons and NetNewsWire, who are we to argue, right?

Well, it turns out that even Brent can be wrong sometimes. After using Kagi for a while, it became pretty clear that it was horrible. Lets just say that the stress of using their web interface was too much to take after just a few months (it could be better now, but I don't care anymore). We had to find a new solution and none of the other similar services looked attractive so I buckled down and rolled my own prior to releasing Voice Candy.

The code has served Potion Factory faithfully for over a year now, which is more than you can say for a lot of rails projects. But! it could use some improvements. Writing store code is not the primary business I'm engaged in and it means that the store has the bare minimum needed to run an ISV business. It also means that the little code that is in there could be made more elegant. I hadn't even heard of REST back in 2006 (gosh, a whole year ago!) and I haven't taken the time to refactor the app to fit that paradigm, because, you know... working on actual apps that put bread on my table is better use of my time.

The important thing though, is that it works for me, rather well too if I can say. It's not a turnkey solution, so don't expect to get up and running in five minutes, but if you are not afraid to get to know Ruby on Rails and need a basic store that you can mold into shape, this could be right for you.

What it provides is payment processing through a PayPal and/or Google Checkout merchant account, an administration interface that lets you look up orders, add orders manually, resend purchase receipts, generate coupons, and look at basic sales statistics. It also has a "lost license page" so that users can service themselves.

What it doesn't provide you is a license key generation algorithm. If there is enough interest in this, I'm open to gathering forces to develop a really good one that we can distribute amongst each other outside of the open source project. Aquatic Prime is an obvious candidate, but I actually took it out of the store and my softwares after discovering that it caused a higher than necessary support load.

The project page is rather sparse right now, but I plan to put up a forum, wiki, or a mailing list to encourage collaboration to make this the best store for selling software for ISVs.

On a final note, I need to thank Panic and Gus Mueller for providing the inspiration for the store. If you guys saw a bunch of bogus orders one week last year, I confess now, that was me.

Please email me if you need help. I would appreciate hearing from you if you decide to implement your store with it as well.


Eamon Ford

Cool! I'm about to start my own software company, but I haven't thought about how to do the store yet because, frankly, it's not a pleasant idea. But this looks like it could be an answer to the problem. Thanks!

Kenneth Ballenegger

This sounds absolutly amazing! I think I should give it a try. :)

Jamie Hardt

I did a little tweaking on the admin dashboard, because it was failing in the case of no orders being in the database. All of the changes are in the controller and I've put my diff up at http://soundepartment.com/outgoing/admin_dashboard_patch.diff. I'd love to help out some more if you'd consider giving us a place to read it from subversion, so we could submit patches in a logical way. Consider google code or sourceforge, of course.
Props to Gruber for pointing this site out.

Andy Kim

Thanks for the patch Jamie. If you check the project page again, you'll see that it now has a Google Code project link, which has the subversion repository.

Oskar Lissheim-Boethius

Thanks a lot, couldn't have come at a better time for me. I'll check it out next week when I get home from the US.


How about a mysql version, I notice the readme says postgesql

Andy Kim

Please see the following email from the mailing list:


Kenneth Ballenegger

Russ, thanks to Rail's modular aproach it's very easy to use different database systems... You might have to change a few setting in the config/ root of your webapp but that should be all.

John Devor

Just wanted to say thanks so much! This is a great piece of software. :-)

Terry Findlay

I downloaded the files but I have no idea what to do with them. Is there any documentation anywhere? Do I have to be a Ruby on Rails programmer to use this?

Andy Kim

Start with the README file. Knowing Ruby and RoR will make your life easier, but with some Google skills, you should be able to get it to work.