Hypothethical situation: I have a webapp that I want to deploy on a paid subscriptions basis. I would like the sign-up, billing, and provisioning process to be as simple as possible for the user (ie. just a few clicks).<p>A complicating factor is that the app requires each user to have their own instance of the app. It's not a simple case of 1 user == 1 account, more like 1 user == 1 deployment. You could argue that's not a web app, but for the purposes of this thread, please let's pretend it is :)<p>I would like opinions on setting up the infrastructure to do this, particularly billing & invoice management, and automated provisioning. Support tickets would be desirable, but not essential.<p>I know I can always build this myself, but if there is something out there I can use (ie. open source) or buy, then it would be faster to get to market.<p>Any thoughts on build vs buy?<p>If buy, any thoughts on what to consider to buy?<p>I've looked at things like ModernBill and WHMCS, but these are more for web hosting. I don't want stuff like DNS management, email configuration, blah blah. Is there something analoguous for web apps?<p>Or perhaps a middle of the road approach like buy WHMCS and then write some plugins to do what I want?<p>Or can someone point me to any past HN posts which are relevant?<p>Thanks in advance!
Having written two billing systems in the past year, I'll never build one again.<p>There are certainly advantages to writing your own, we generate custom PDF receipts at GitHub that customers really seem to like, but the amount of time wasted building and maintaining the system was/is fairly substantial.<p>If I were to do it again, I'd use a hosted service that you can skin to look like your site and let them manage everything.
If you're okay with US-only billing, you can use Amazon FPS in conjunction with EC2's product codes. The product codes allow you to build a machine image which you can authorize each of your customers to use and you can configure how much to charge per instance hour. Amazon keeps track of which customers are running instances and takes care of the billing details (you can do this with other aspects of Amazon Web Services too).<p>If you require non-US billing, find a billing a system that gives you an API for post-processing hooks (this isn't my area of expertise but it looks like others are offering suggestions here). You can use the API hook to launch an instance at the provider of your choice (EC2, slicehost, etc...) and also send your customer the access info.<p>With regards to provisioning, I suggest creating your own base machine image and scripting the minor customer or instance specific stuff. This gives you a balance between launch speed (you don't have to install the same stuff every time) and flexibility. If the scripting is simple, you can get away with hacking something on your own. If it's more detailed, I'd suggest Fabric (<a href="http://www.nongnu.org/fab/" rel="nofollow">http://www.nongnu.org/fab/</a>) if you're into Python or Rudy (<a href="http://github.com/solutious/rudy/" rel="nofollow">http://github.com/solutious/rudy/</a>) for Ruby.<p>Note: I developed Rudy so I'm biased :]
A couple services that come to mind:<p><a href="http://spreedly.com/" rel="nofollow">http://spreedly.com/</a>
<a href="http://zuora.com/" rel="nofollow">http://zuora.com/</a><p>Zuora is mucho $$$ though, and Spreedly has a ways to go before it's a full-featured solution. Their current focus I believe is on being solid with regards to ordinary subscriptions first and expanding from there.<p>Unfortunately, for most of the projects I've done, there are too many types of transactions, extra costs, etc. so I've had to roll my own. I've built a somewhat reusable app for this now, so it's a time saver now, but it was a huge time waster earlier on.
I'm biased, but I'd strongly recommend taking a look at Spreedly (<a href="http://spreedly.com" rel="nofollow">http://spreedly.com</a>). We can't help with the provisioning, but we can make the billing drop-dead simple so you can focus on getting your infrastructure right. The best part is: you can grab an account and give it a spin with no obligation, as test sites are completely free.<p>FYI, in less than two weeks we've sold 30 of our "Kickstart" plans (<a href="http://spreedly.com/info/kickstart" rel="nofollow">http://spreedly.com/info/kickstart</a>) - a lot of businesses are hopping on the Spreedly platform, and we're cranking away to build the best billing platform around. Come on in, the water's fine!
Here's a relevant HN post that came to the top of Google results when I searched for 'spreedly vs amazon fps':
<a href="http://news.ycombinator.com/item?id=526517" rel="nofollow">http://news.ycombinator.com/item?id=526517</a>
Funny, in the same exact situation. Building a deployment app and deciding on a billing system. Was thinking about just writing a custom one or maybe writing something for Ubercart since it's drupal-based.