Hacker News new | ask | show | jobs
by tjpd 3542 days ago
Reading a lot of these comments make me think that everyone on HN is a cynic of the Oscar Wilde/Lady Windermere variety: "A man who knows the price of everything and the value of nothing" [1].

IMHO you should go with Heroku and ignore anyone who's suggesting dedicated servers, VPSes, AWS, Docker or containers. Every moment you spend maintaining a server or doing devops is wasted because it's time not spent building or marketing your _app_.

New startups' biggest expense is founders' time. It seems a lot of people, even on HN, don't realise it because it's a hidden cost. But if you think that a decent developer is worth at least $50/hr and it might take you an 1hr to set up and 1hr/yr to manage a server (e.g. apply patches, update security) then you're better off not spending those 2hrs and paying an extra $100 hosting your app.

Worrying about the future infrastructure cost is also wrong-headed. It's a kind of premature optimisation. To get the real, expected future cost, the projected infrastructure cost has to be multiplied by the probability that you'll actually get big, which for start-ups, is very low.

[1]: http://www.gutenberg.org/files/790/790-h/790-h.htm

6 comments

I also recommend Heroku when you're just launching your product. At my first startup (which failed miserably) I spend waaaaaaaaaaaaaaaay too much time trying to get the infrastructure right and then the downtime still happened all the time (because I didn't have enough experience with Docker and the project had a few mowing parts and when one failed, everything couldn't work). Honestly, I didn't use Heroku because I really wanted to do infra by myself and learn something (and I actually learned a lot) but also deep down in my mind I felt that using something like Heroku/managed servie was... I'm not sure how to describe it - like admission that I can't do it myself, like as I'm not as good as I think of myself - "I can do infra by myself, I don't need anybody managing my app for me!"-thinking. In retrospect, not using Heroku was a huge mistake because I didn't focus on the product. At my current startup I decided to start with Heroku and I'm really, REALLY glad I made this decision - finally I can focus only on the product and feel that infra is more stable/predictable than in the scenario where I'd try to manage it myself.
I think this logic applies to side projects too. Unless the infrastructure stuff is of interest in itself, it is better to let someone else take that pain away. The beauty being that to do so for a side project is free or almost free.

> But if you think that a decent developer is worth at least $50/hr and it might take you an 1hr to set up and 1hr/yr to manage a server (e.g. apply patches, update security) then you're better off not spending those 2hrs and paying an extra $100 hosting your app.

It doesn't change your point (it enhances it actually) but I'd say you need the 1hr/1hr for heroku (to learn their way of doing things etc.) and 24h/8h for the self-hosted, based on my experiences. But I am not a linux whizz.

I found that running my own basement server to be far easier than Heroku, especially on setup and install.

Heroku is something you need to learn, and doesn't follow standard configurations. A Django install on Heroku is completely different from a regular Django install.

But if you're a developer, then you likely already know Unix/Linux, and you can just use standard installs of packages that you are already using.

Your own server or shared hosting is the easiest.

I agree in principle!

However, it's worth noting that this very much depends on how experienced you are at system administration.

For example, I've been setting up servers (usually for my own businesses) for a couple of decades.

It's thus far cheaper for me to do that than to jump onto Heroku and learn how it works.

Managing and maintaining systems takes precious time. When things break it takes even more time. I strongly agree using Heroku here as well.

However, you can still leverage the AWS managed services selectively so the two of them work together. EG: - AWS S3, AWS SQS

If you have the docker image ready, hyper.sh is a no-brainer place to host your app.