Jamie's Blog

Lessons from a life of startups, coding, countryside, and kids

How your business model affects your hosting choice

Poor business

I’ve mentioned this a few times in conversation recently so it probably deserves a blog post. Heroku is the go-to host for Rails applications but there are often complaints about how expensive it is. What these startups don’t realise, is that their chosen business model has limited their hosting choices.

Heroku is free to play, but you’ll only be able to serve one user at a time and you’re app will be suspended after a period of inactivity. I’m guessing that won’t really suit your new startup? No problem, just add another ‘dyno’! That’ll be $40/mth. Now you can serve two concurrent users. Oh, wait, you need to send emails in the background too? That’ll be another $40/mth. And perhaps now you’re getting complaints from new users about the service being too slow… that’s another $40/mth, and another, and another. Oh, and that database is probably slowing down now, and maybe you need more space. That’ll be another $50/mth. It’s really easily to have hosting bills in the $200-$500/mth range, and a lot more.

Now, I’ve glossed over some details (with the right setup, each dyno can serve a few concurrent users) but the point is clear: hosting costs on Heroku can get really expensive, really quickly.

But I’m not here to complain about Heroku’s costs. There are cheaper alternatives and you can host your app on a VPS if you have the knowledge, skills and time. It’s a trade-off. I’ve personally used Linode and I love them, but it takes a lot of time to manage the servers.

How does your business scale with your traffic?

Let’s talk about the sorts of businesses which are ideal for Heroku, and which are going to need cheaper solutions.

  • A freemium strategy is going to bring in a ton of users, and they’re going to be burning up your server resources long before a small percentage convert.
  • A low-converting marketing site needs a lot of traffic before you get a few dollars into your Stripe account, which all uses up server resources.
  • A Facebook game will need to cope with hundreds, probably thousands, of requests per minute. But the income might barely trickle in.
  • A helpdesk or project management app is going to be used all day, every day, by every user (hopefully). But at least you’re going to get $29-50/user/mth to offset those costs.
  • An e-commerce service is going to need to be serve their customer’s store up fast to a large number of visitors. And you’re maybe just getting a small percentage of those sales.
  • but other business applications are high-value but only infrequently used (they sound like unicorns but, trust me, they exist). Imagine an application for cataloguing risk factors and managing the mitigation actions in a large enterprise (yes, such things exist). That might bring in more than $3000/yr/customer but could be run off Heroku for less than €100/mth.

Gratuitous Graphs

 This business would look for cheaper hosting providers

 This business can afford better hosting

The point isn’t really about the revenue per user, it’s about how that revenue scales with the server load. It’s obvious that a business isn’t going to survive when the costs outweigh the revenue. Most people are smart enough to see that outcome. But in order to balance the book, they have to opt for cheaper hosting methods. They baulk at the pricing of Heroku and complain that “no business could possibly afford Heroku”. That’s clearly bollocks.

You can afford high-cost hosting if your revenue scales with it. You can afford premium hosting if the nature of the application isn’t one that places a constant load on the server. There isn’t a universal right answer when choosing a hosting provider but it’s important to understand the constraints that your business model places on this choice.