The hosting cost may go up quickly, but if your business is successful you can either absorb it, or spend time and money to migrate away. They run on AWS, so picking the same location means you can run mixed infrastructure (part on Heroku, and part on AWS) without a latency hit. Thus, a hybrid configuration is very viable.
Heroku worked perfect for that. The $7/mo was fine.
Only reason I write this is because I wish there was a book of tech architecture case studies. What problem or business venture they were trying, what architecture they chose, how much it cost, how it worked out for them and what they wish they did.
"Bloat" here is a virtue. Heroku removes two levels of drudgery and administration between you and the hardware. Who wants to be racking hardware? Who wants to be patching the OS? Who wants to be dealing with package vulnerabilities? None of this helps actually build the business
Lock-in is minimal, particularly if it's a self contained app and you're not using a lot of services. There are countless examples of companies who've moved off of Heroku when they've gotten big. Plus there's also lock-in using EC2, S3, AWS. There's lock-in of some level regardless where you run your stuff.
Future cost is also really, very very low because P(success) is, sadly, super low.
Besides, not every app needs big computing power, and many businesses can thrive on Heroku for a long time. An employee of ProductHunt mentioned on a podcast that they ran their website on 3 Performance L dynos at in 2015. That's $1500 plus some extra for the database and other services they may be using (say $3k in total). That's one of the popular websites out there, and that's a pretty good indication of an upper bound of the infrastructure cost on Heroku for a popular product. Most will never exceed the $200-300 a month.
Is $3k a big sum? Yes, it's noticeable. Will you end up spending more on hosting plus the ops work that needs to be done over time for a similar app to run and grow? Likely.
EDIT: spelling
Another good VPS option is DigitalOcean, which offers a smaller (and cheaper) plan for $5 / month.
There are also a lot of shared hosting providers out there that will sell you cheaper space, but I would not recommend this for anything non-trivial, as most of the time, you'll be limited to using PHP. Still, if you're looking for the best bang for your buck and you're willing to settle for shared hosting, check out Nearly Free Speech -- they are head and shoulders above any other shared hosting provider that I have ever tried.
I can't get away from Linode soon enough.
If you can afford it, AWS is possibly a more secure choice with a whole ecosystem of associated products, but at face value if you just need a few VPSes you'll pay a lot more for the same performance than you do with Linode.
Reliable: AWS / Rackspace / DigitalOcean / Google cloud / basically any famous one.
When you're starting, it's probably better to rent a cheap VPS server. If you start growing fast, you can always move to the cloud. But modern cheap VPSs are quite powerful. I have 7 websites running on one that costs me $6/month.
In the past it failed a lot (~1 instance completely fail per month), but I think it is better now.
For me: buying a rack/dedicated machine is the "traditional" (though increasingly rare) option and running off a vps is "in the cloud"
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.
> 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.
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.
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.
However, you can still leverage the AWS managed services selectively so the two of them work together. EG: - AWS S3, AWS SQS
Personally, for almost any product I start here. Even if you do need server-side infrastructure for the product, hosting all your marketing pages on GH pages is probably the right choice - they're going to be better at reliably hosting and serving static content than you are. Focus on your product instead.
When I do need server-side logic I then usually go for Digital Ocean, because they're very cheap, pretty great, and far less complicated to manage than EC2. It's also pretty easy to set up Dokku: https://medium.com/@pimterry/host-your-node-app-on-dokku-dig.... With that on top you then get a quick & effective Heroku-style deployment experience, at a fraction of the price.
You can use _any_ static site generator.
If you have to run a dynamic site (less potential headaches if you avoid this), I would try to use something like Heroku. It's easily one of the simplest way to host a robust site that needs to scale without having to spend much time on admin and DevOps.
For the people recommending a VPS, DigitalOcean etc., you're talking about using a huge amount of your own time to make such a setup as robust, easy to use and low maintenance as Heroku. What about backups? Scripting server creation? Adding a load balancer and more servers? Security updates? Server security?
The more parts and scripts you have to put together yourself, the more things that can go wrong and the more time of yours it's going to consume. If you consider how much your own time is worth and how important your startup is to you, trying to save anything in the realm of $10 a month on a core part of your startup doesn't make any sense if this is going to cost you multiple hours of time a month.
I said "something like Heroku" and Elastic Beanstalk is similar.
Good general advice is this: The simplest solution is often the best, but in some cases that means taking your old desktop pc, install ubuntu, configure your router to publicly share http and https from that computer. In other cases it means using a toolset like Heroku.
Please don't be mad about this, but the way you phrase your question it is very very likely you have so little skill that you don't even know how little. Please consider to pay a freelancer to support you. He likely has more skill and has experienced more "this can never happen in real life" F-Ups than you, and therefore can handle a lot.
By recognizing a misconception that people have at a certain skill level you can guess their skill level quite acurately. Beginners usually want to solve the biggest of problems, and be done after the next weekend. Mid-levelers usually have specific questions about a method that must be the one true best solution in their eyes, but somehow they struggle with topic X. High skilled people usually ask questions that can't be googled, and even other experts need to look into the problem more deeply to figure it out together.
It's also hard to fake, since you need have some experience in the area to recognize how your current believe is limited. You cannot ask a ungoogleble question if you don't know already most of what can be googled about that topic.
Choose OpenBSD for your Unix needs. OpenBSD -- the world's simplest and most secure Unix-like OS. Creator of the world's most used SSH implementation OpenSSH, the world's most elegant firewall PF, the world's most elegant mail server OpenSMTPD, the OpenSSL rewrite LibreSSL, and the NTP rewrite OpenNTPD. OpenBSD -- the cleanest kernel, the cleanest userland and the cleanest configuration syntax.
https://azure.microsoft.com/en-us/pricing/member-offers/bizs...
Also do apply for things like BizSpark https://bizspark.microsoft.com/
if you have a static marketing page, you can also host it for free ( almost ? ) on https://firebase.google.com/docs/hosting/
Edit: a bunch of downvotes for trying to be helpful, how nice.
The cost/benefit analysis is ALWAYS positive in favor of Heroku until you hit super massive scale (minimum 2-3 years out for most startups, if ever). It's super easy to use. Their feature set is increasing monthly and they can handle a lot of different types of setups.
In most cases though (brace yourself for an unpopular opinion) it's enough to setup a simple dedicated server for about $20-$60 per month.
Now I did read the comments that mentioned how getting a dedicated server is a waste of valuable time, but honestly you'll most probably be able to get it setup in a day, you'll also learn how web servers work along the way and you won't have to depend on third-party cloud services (yet).
Here's a great guide from DigitalOcean on how to setup a modern dedicated HTTP server with MYSQL: https://www.digitalocean.com/community/tutorials/how-to-inst...
Strongly recommend to go for something simpler and lightweight to reduce the time waste as lots of other comments suggest.
At the end of the day you don't even know if anyone wants your product or what first user's opinion is, why waste time on shiny host set-up?
Heroku is easiest and relatively cheap until you scale. (Great problem)
Lots of people seem to use AWS. My limited understanding is that it is marginally more difficult to implement than heroku.
You could also go with someone like Linode. I would only go that route if you have implemented before. There is a learning curve and if you are trying to get the site up quick, I would go with a different option.
[0] https://developers.openshift.com/getting-started/index.html?...
Full disclosure: I work on Google Cloud, but it's unclear you need a cloud provider.
currently i'm hosting a golang web + restful api + websocket server + sqlite3 db + redis + nginx all on a single micro AWS server, but my marketing hasn't really started yet, we're talking about <100 hits thus far per day.
At https://mnx.io (my company) we offer various options with reliability, and performance at our foundation.