Ask HN: Where should I host my startup?

92 points by akos ↗ HN
I am done with the coding and I would like to shoot my site into the wild and start some marketing. What are some of the best and most reliable options? Possibly cheaper ones.. Thanks so much.

100 comments

[ 2.2 ms ] story [ 156 ms ] thread
Cheap: browse through the listings on lowendbox.com, you will find some amazing deals for both VPS and dedicated servers.

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.

Has DigitalOcean gotten better for reliability? I took my company off of them about 2 years ago specifically because of their frequent downtime.
I haven't dealt with them in a while, but most of the feedback I read about them is great.
I've been using for more than 2 years with 100% uptime.
Seconding this. It's been my experience exactly.
yeah, in last couple of years I cannot remember anything really bad in DO. Biggest issue in DO was slower performance of storage, but after complaining to support about it, it was fixed and everything was fine there.
I have around 20-30 instances there and it is a long time since the last fail.

In the past it failed a lot (~1 instance completely fail per month), but I think it is better now.

Curious, what's your definition of "the cloud"? Under mine, running off a cheap vps is very representative of "running in the cloud". What would the "move to the cloud" entail? Do you mean using more services such as lambda, S3, or a database as a service platform as opposed to doing this "manually" by installing software on a clean OS?

For me: buying a rack/dedicated machine is the "traditional" (though increasingly rare) option and running off a vps is "in the cloud"

To me the cloud means you can start an instance with an API call.
As a 'best of both worlds' option you could use a free tier on one (or more) of the cloud hosts. As far as I'm aware OpenShift, AWS and Azure all offer free tiers. Combine that with a CDN with a free tier like CloudFlare and free SSL certificates from Let's Encrypt and you could be looking at a very low cost to start out (just the domain name cost).
If "$10 / month" counts as cheap in your book, check out a Linode VPS. I've been using them for a couple years now, and I have been extremely satisfied (although I've upgraded to a beefier VPS as my project has grown in popularity).

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.

Another thumbs up for Nearly Free Speech. Excellent value for money and more than capable of dealing with traffic spikes.
Linode has a $10 / month plan as well.
Ah, you're right! Thank you for the correction.

It's $10 and $5, I shall edit accordingly.

If you're considering Linode, you should read up on their history of security incidents and make sure it's a risk you're willing to take.
Indeed - it's always good to be aware of these things. I've been around for most of them and I am still very happy to use them, but of course your own perspective may differ.
I've been with Linode for over six years and the only security incident I've have was my own fault. Follow the guides for securing new VPSs - I recommend that SSH be configured to disallow root logins and only allow certificates for authentication. There are many great guides available.
I think people are disagreeing with you because the parent comment is referring to Linode platform security and not the security of the individual VPSes -- which is a valid point. The security of your individual VPS depends, to a certain degree, on the Linode platform's security.

But I find it disheartening that multiple people chose to just downvote you, and nobody bothered to write a response.

I came to the same conclusion but what good is karma if you don't get down-voted occasionally?

I didn't misunderstand the parent's comment ... I was just providing a data point on the continuum. My experience with Linode has been great. I do realize that there have been security problems with the platform itself.

Not just that, I used Linode way back when and now am between a rock and a hard place. I needed 20 extra GB of space and the only viable alternative was to upgrade to a plan twice what I had, at twice the cost, just for those 20 extra GB. Meanwhile, with DO or AWS, all I had to do was add a volume for $2/mo or something.

I can't get away from Linode soon enough.

Is there a VPS provider that _hasn't_ had security issues? Linode has had a few pretty bad ones but they've also been around for a long time and always seem to be improving their systems and processes (lately communication with customers following an incident has improved a lot, and with the DDoS issues they had the improvements they're making to their network are pretty solid). For the price/performance ratio though there's no comparison.

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.

if looking into digitalocean, vultr.com is slightly better in terms of pricing and processors, though it takes much longer (~2-3mins) to spin up a vm instead of <60s in digitalocean
This is not true if you have custom snapshots. DO takes quiet a bit of time if you have custom images. My experience with vultr is that it boots very fast (<1 min)
Does DO even offer custom images? Last I spoke to the owner he said they had other priorities.
I must strongly agree with this one. Just switched from DigitalOcean to Vultr myself. Vultr is the only decent one I'm aware of who'll let me run OpenBSD. No other OS is good enough for me. Strongest security in the world, and no need to update as frequently as with other OSes or distros.

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.

If you're talking about hosting your startup's landing page, stick with Github Pages: https://pages.github.com/. Free, super quick & easy, with custom domains to boot.

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.

Since Github Pages doesn't support SSL/TLS certificates for custom domains, I don't think anyone should be using it. It's simply outdated technology.
You can host static pages on GitLab.com for free, with TLS certificates and custom domains.

You can use _any_ static site generator.

(comment deleted)
Have a look at netlify (https://www.netlify.com). Free plan as well, but we include https, support any build tool (not just jekyll), have integrated CDN support, deploy preview (get a unique URL for each pull request) and much, much more.
Hetzner is another option. But you don't really specify your requirements (geographical region, scalability , etc) so I don't know if this suits you.
Big thumbs up for Hetzner.
Yep, another vote for them here. It's expected that you're 100% capable of admining your own box, but as long as you're happy with that, the price/power ratio is pretty much unbeatable.
earlier we had issues with storage - we had multiple VMs on same box and main storage stopped working properly, and then we had lots of trouble restoring data / moving somewhere else.. :/ after that incident we went to digitalocean . so keep in mind reliability too.
If you are willing to shell out a little more ($40), you can get a pretty powerful DS for a fraction of the cost of what the major cloud providers would cost: https://www.delimiter.com
It depends on how much you want to do yourself.

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.

Depending on your application and stack, you may want to consider Google Cloud or AWS. While I really like DigitalOcean, Linode, Vultr, etc they lack production features like a centralized firewall and IAM security. Additionally AWS and Google have a slew of complimentary services so maybe you don't need raw physical machines. For example, instead you may be able to use Elasticache, RDS, and Elastic Container Service and don't have to manage any servers.
you should check out free tier offered by Amazon

https://aws.amazon.com/free/

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/

Yes, for a site that can just be hosted on the Firebase free tier (https://firebase.google.com/pricing/) you can go a long way (the same is true of the App Engine free tier). The OP stated they had already written something though, so my guess is that rewriting to Firebase wouldn't work (if it's just a SPA front-end app in Javascript, fine, but if there's any backend a rewrite seems more hassle than it's worth).
Personally had bad experience with linode.. I'd go with aws.
Webfaction. I don't do anything with heavy traffic, but very happy with reliability, performance and features.
No one has mentioned Heroku yet. Starting at $7 they are a bit more expensive than DigitalOcean, but with that extra $2 you'll get their platform, their tooling for deploying the app, their database backups. Adding other services later on is also easy with their addons. By choosing Heroku you can save hundreds or thousands of dollars in ops costs over a course of a few months.

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.

Using Heroku puts two levels of bloat between you and the hardware, and locks you into a hosting environment that becomes very expensive quickly. Eschew.
How does it lock you into their hosting environment? The apps I've made I've been able to transfer to and from Heroku without any modifications.
I was referring to cloud-style hosting. I suspect many services are over-engineered by an order of magnitude in order to be cloudy.
Mostly just AWS apps.
I disagree with this wholeheartedly and just posted why above but wanted to reiterate it here. This might just have been a throw-away comment but "bloat", lock-in & cost are red-herrings.

"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.

Built in to your comment is the assumption that you're trying to grow your business big or die.

If you're working in a niche market, costs are important and keeping them low can be the difference between having an independent livelihood and failure.

No it's not, it's really not. In fact I think in a niche market then it's often even more true.

If you're building in a niche then (almost by definition) you're not going to need a lot of infrastructure. There won't be millions of customers and they (usually) won't need tons of infrastructure.

I think the only case is where you're building a business like Pinboard :) Where the CLTV is relatively low but the the bandwidth, storage & compute is relatively high.

Regardless of the market you're in though, if you want to build an independent livelihood or a lifestyle business typically infrastructure costs still shouldn't be a factor.

A good livelihood might be $50k/yr say or $4k/mo roughly. The difference between $5/mo and $500/mo in hosting costs isn't what determines success or failure. It's whether or not you've built, marketed and sold an app to 5 or 500 customers.

I agree with your overall sentiment I think, but there are many side gigs where $5 vs $500 a month is the difference between viable and not viable. Sometimes it's the difference between sticking with an idea long enough to turn it into something viable; something that's bleeding you $500/mo won't have as long a life as something that's only $5 or $25/mo while you're figuring out if there's something worthwhile or not.

A niche market cuts both ways. Sometimes you don't need to worry about scale, but you also can't bet on large numbers of customers coming to cover up inefficient choices.

> Who wants to be patching the OS? Who wants to be dealing with package vulnerabilities?

Choose OpenBSD (and don't install stupid stuff like bash) and you won't have to deal with any of that.

I wouldn't say it locks you. All the configuration is done via env variables, so your app code will have no Heroku-specific parts at all. Since it's a very known and popular platform there are many resources online about how to migrate away. If I were given a task to migrate between hosting providers I would rather deal with Heroku apps than anything custom and bespoke on top of DO, Linode, or AWS: heroku apps are just so predictable.

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

How can you talk about lock-in without more argumentation when the person just above your response gave good reasons why Heroku is not a lock-in?
My tech startup was just a processing server for Stripe payments, of which the static website had a single thing to buy. If its not clear all the money was made from people buying the product itself.

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.

What kind of DB did you have? As I recall, the 7$ offer only supported 10000 rows of PostgreSQL?
Stripe was the DB
I see, and if you were to use your own DB to keep track of users, transactions and sold items. Would you still recommend that same solution?
Unlikely, but Stripe has those features in its Customer object. If you want to make some sort of pre-cognitive recommendations engine, then do what you need to do that. These are premature optimizations I would never need.
Clever cloud is a good option, they're very good at what they're doing. Plans start low, and you can scale easily when needed. They do have plenty of options, and support is top notch.
Since you've provided no details at all for your requirements (does your startup need a flotilla of beefy servers to do real-time facial recognition across thousands of live 4K video feeds?) I'm assuming you have a static HTML site with zero backend required. In that case, a Jekyll/Hugo generated site hosted on Amazon S3 will be really cheap. Throw CloudFlare in front of it for even more cheapness if you expect loads of traffic. Your hosting bill will be measured in pennies per month.
I'd go with GCE. They have a wide suite of services, and because they're the number three player right now, will probably give you a bunch of free credit to play with.
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

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.

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

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.

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.
If you have the docker image ready, hyper.sh is a no-brainer place to host your app.
Do you have any special requirements -- such as location, high memory, io performance, or storage capacity?

At https://mnx.io (my company) we offer various options with reliability, and performance at our foundation.

As people asked, what do you need "today" (host website apparently) and what do you need "tomorrow"? If you just need a simple static-ish web app, and everything else is your offline iOS game that's pretty different from building say a Snapchat competitor.

Full disclosure: I work on Google Cloud, but it's unclear you need a cloud provider.

This highly depends on if your site is dynamic or static. If static, I would go with GitHub Pages or Netlify as they're free/cheap and easy to use. Static sites with this kind of hosting is also great in that they require practically zero maintenance.

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.

Honest question, what does Heroku offer over Elastic Beanstalk other than being more expensive? I switched to EB and it seems more flexible and a lot cheaper, and I haven't wasted hours on admin.
> Honest question, what does Heroku offer over Elastic Beanstalk other than being more expensive? I switched to EB and it seems more flexible and a lot cheaper, and I haven't wasted hours on admin.

I said "something like Heroku" and Elastic Beanstalk is similar.

ElasticBeanstalk is a lot more flexible, since it's basically just a wrapper around existing AWS services.
Don't trust anybody who doesn't start with "it depends". For nothing in this world there is one perfect answer. Context means a lot. What have you coded? Why do you think you are done if it is not running anywhere (I would say you are 20% done if it runs on your laptop)? How many people need to use it to be viable (e.g. a diary service needs only one user who writes texts for himself, a shop needs at least make its hosting and transportation fees, a social network needs thousands of people before it can even start to be successful)?

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.

"skill"? That's bullshit, you can't tell anything about skill from a person's poorly phrased question. Especially since that person's primary language might not be English.
Sometimes the best question is the simplest one. I agree the original has a lot of scope of improvements but I prefer the debate and the range of answers which wouldn't have been the case if the original question was more specific.
In fact you can tell a lot about what questions people ask. The more specific and detailed a question is, the better the person knows the topic. A skilled language learner would never ask "What is the best way to learn English?" because he knows already that there is no best way, in fact there is no single way. He knows that he needs to combine different methods and which are the common methods and how well they work for him.

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.