One of our readers checked out “Helping a Beginner Understand Getting a Website Live” and had some follow up questions specifically about hosting providers. Here’s what they asked:
What’s the difference between hosting providers? For example, what is the difference between GoDaddy and Hostgator, which seems like “traditional” web hosting providers, to others like Heroku, Digital Ocean, AWS, and Firebase?
When would I use one over the other?
They were hoping for detailed thoughts, so I’m going to oblige!
Choosing a plan
You mentioned GoDaddy first, so let’s take a peak at GoDaddy’s hosting offerings as I type:
To be honest, I’m already confused. (Sorry, I promise I’ll try to be more helpful as we go on.) Why is WordPress hosting one dollar more expensive than the Web Hosting plan? If you buy the $5.99 Web Hosting plan are you prevented from installing WordPress on it? Or is it just convenient in that if you pick the WordPress hosting it comes pre-installed and configured? WooCommerce is just a plugin for WordPress, so are you prevented from installing that on the WordPress hosting plan until you upgrade to the WordPress Ecommerce Hosting plan? (To be fair, WordPress.com unlocks WooCommerce at the highest plan as well, so it’s trod territory.) Why is the VPS Hosting plan the cheapest? I don’t blame you if you also find this as confusing as I do, especially as this is just one of many different charts of hosting options they offer.
GoDaddy makes a billion zillion dollars a year, so I’m sure they’ve got this stuff figured out, but I’ll tell ya, after a couple of decades of web development experience, I’d be totally guessing at choosing a plan from options like this. Cynically, it feels like confusion might be a sales tactic.
I do know this: these plans are for PHP / MySQL sites. That means WordPress, Craft, Perch, Ghost, Drupal, Joomla, etc. This is the LAMP stack which has all the big CMSs covered. Just the way it is. This is going to be the case at Media Temple, Hostgator, Bluehost, and lots of hosts like that. I think a “traditional” web host, as you put it, isn’t a bad way to think about it.
Do you wanna run PostgreSQL or MariaDB instead of MySQL? Or you wanna run ASP instead of PHP? I’ll bet you all these hosts have some kind of answer for those things. The answer is going to be something like “Don’t use our shared hosting product, use our raw VPS (‘Virtual Private Server’) product which has direct root access, and you can install it yourself.” I guess that’s fine, but just know those things aren’t first-class citizens of their hosting. If you have trouble, I’d worry you’ll have a hard time getting good support.
Which leads me to my point: you should go with the happy path offerings from hosting providers.
Say I want to write a Python app. I’m not going to buy a Hostgator server. I’m sure you can get it to work, but it’s not something they really promote. It doesn’t feel like it’s on a happy path. Whereas if I look around at Heroku, they make it a first-class citizen of what they offer:
I can’t vouch for it directly as I’ve never used Heroku, but I’ve heard lots of good things and they’ve been doing this for a good 15 years.
Happy paths are about friendly pairings
Heroku reminds me of another divide in hosting providers that I think is significant. Those “traditional” web hosts don’t lift a finger to help you get your websites over to them. It’s more like: here’s your FTP credentials, good luck. With a host like Heroku, they are giving you a CLI to like
heroku container:push to deploy your local code to production. Better, it will deploy right from your GitHub repository. Why every single web host in the world doesn’t help with that is a mystery to me. A web host that helps you with deployment is a valuable thing.
We were talking about happy paths, right? Heroku calls themselves a “Cloud Application Platform.” The happy path there is those server-y languages. Node, Ruby, Python, Go. What if you don’t need any of that? Say you’re building a static site, using a static site generator (like Eleventy) at the core (Jamstack, as it were). Do you pick Heroku? Probably not. While surely you could pull it off on Heroku, static site hosting isn’t core to Heroku, and so not a happy path.
Where should you host a static site? That’s Netlify’s whole ball game. Netlify is a super happy path for static sites.
In fact, Netlify nailed the Jamstack-style hosting thing so strongly that lots of companies have been trying to provide similar offerings. I think of Azure’s Static Web Apps as an example. So why use Azure over Netlify? If it feels like a happy path, and it might if you’re using other Azure products, assuming their products play well together. Azure is a massive cloud platform with loads of other offerings. Or you might just have more experience and developer muscle memory for Microsoft products. We’ll get to that later.
Jamstack (essentially meaning static hosting + services) is available in lots of places now. Cloudflare has Cloudflare Pages, which you might take advantage of because of the unlimited promises (unlimited sites, unlimited requests, unlimited bandwidth, and even unlimited team seats).
You might choose Cloudflare Pages because your Cloudflare products like access or workers that are important to you and it feels like the happy path to keep it all together.
Vercel has Jamstack hosting, but they’ll run servers for you if you need them. Their popular framework, Next.js, prebuilds pages, but can also deliver server-side rendered pages with a Node back end. Vercel gives you that back end.
Next.js on Vercel is a very happy path. “Deploy on the platform made for Next.js,” they say. Hard to beat that.
AWS Amplify is ultimately Jamstack hosting, and the happy path there is using Amplify to stitch together other AWS services. That’s literally the point of AWS Amplify.
Need auth? It’s Amazon Cognito under the hood, but Amplify helps you stitch it into what you are doing. Need storage? S3 is an industry standard, and Amplify helps you integrate it. Need a database? Amplify helps you model it and build APIs.
Firebase has Jamstack-style hosting, and the happy path is leaning into the Firebase framework.
Firebase has lots of very useful features, like real-time data storage, authentication, and RUM analytics. If I wasn’t using any of those things, I’m not sure I’d pick Firebase hosting. Like for a basic Jekyll blog, can it be done? Absolutely. Would I personally do it? Probably not. It’s not really leaning into the Firebase offerings, making it way less of a happy path.
It’s worth talking about 💪 developer “muscle memory” for a moment. You build muscle memory for the things you do a lot. If you’ve got five sites on Netlify already, and you’ve gone through those motions over and over, it makes sense that your sixth site is on Netlify as well — even if some other host might be a slightly better fit. Knowing your tools well and feeling comfortable is a big deal. You can compare pricing and features and all the bits and bobs, but muscle memory is one of the most powerful choice influences, and I think that’s perfectly fine.
Your host should take care of your core needs
Remember how I mentioned a web host that helps you with deployment is a valuable thing? All of these hosts do that: Netlify, Vercel, AWS Amplify, Google Firebase, Cloudflare Pages, Azure Static Sites. That’s become table-stakes for hosting providers. There are more table-stakes as well.
The table stakes of modern web hosts.
Beyond, ya know, hosting the website.
- HTTPS. The host should give my site an SSL certificate. Probably automatically, and probably for free (since Let’s Encrypt is free).
- CDN. The host should help serve as much as my site as is practical from a CDN, even if it’s a paid feature or requires configuration.
- Deployment. The host should connect to Git repositories and move files from the main branch to the production site.
- Staging. The host should provide staging environment(s).
I should circle back to the WordPress (and other PHP/MySQL CMS) thing. That’s what this site is. Traditional hosts serve this market. WordPress is 35.2% of all websites, which is bananas, and means there are wheelbarrows full of money in that hosting market. But in my experience, the traditional hosts do almost none of what I just called table stakes in hosting. A lot of times, you’re on your own for HTTPS. You’re on your own for integrating a CDN. You’re on your own for deployment. Staging just means buy another server. It’s just a weird time for hosting right now, with such a wide gap in modern web hosts doing so much and traditional web hosts doing so little.
That’s not true of all WordPress-specific hosts though. Using a WordPress-specific host for hosting WordPress is about as happy path as you can get. I’m on Flywheel now and appreciate all they do. They cover that entire list of table stakes, and go further still, helping with local development.
You asked about DigitalOcean specifically…
I feel the least qualified to explain DigitalOcean, but I think it’s fair to say that DigitalOcean has a lot of happy paths. They have this concept of a “Droplet” (it’s a server) which is spun up from “containers.” I wouldn’t worry terribly much about the idea of containers at this point, but suffice it to say, they are pre-configured servers that can run any sort of combination of technologies. If you want to fire up a LAMP stack thing in a Droplet, that’s a first-class citizen. But so are lots of other technologies. Consider Strapi, a CMS that is Node, Nginx, and PostgreSQL. DigitalOcean has a Droplet for that’s ready for it out of the box.
Droplets also start at $5/month, so they are just as economical as other hosts, if not more so. You might find hosting products that are actually DigitalOcean under the hood! For example, the WordPress hosting tool SpinupWP allows you to quickly create configured WordPress hosting environments, but it doesn’t do the hosting itself, you “bring your own” host, which is likely DigitalOcean or AWS (Amazon Web Services).
It only gets more complicated from here
If DigitalOcean seems complex, wait until you hear about AWS. We talked about AWS Amplify earlier, but that’s like AWS designed for individual developers like you and me to scaffold apps quickly. It’s very cool, but it’s a small wedge of what all that is AWS.
AWS is this massive cloud services provider, meaning that, sure, you can spin up web servers, but there are also hundreds of other services for things, like databases, storage, serverless stuff, APIs, logs, heck — you can rent a damn quantum computer there, which is like sci-fi stuff. It’s not that a normal developer can’t use AWS for a web host, it’s just like, not really designed with that kind of DX in mind. This guide on installing WordPress makes me sweat. AWS is super powerful, has solutions for everything, and is priced as low as it gets. Perhaps it’s useful to think of AWS as like down-to-the-metal web infrastructure, designed for large-scale operations. Web hosts might even be built on top of AWS, for example.
Matching your needs to what’s available
Let’s do some quick hits of needs matched to options. This is in no way comprehensive. I just slapped it together with things that popped to mind that feel happy path aligned.
|WordPress||MediaTemple / GoDaddy||Flywheel or WP Engine|
|Other PHP + MySQL (e.g. Craft CMS)||Bluehost||Cloudways or fortrabbit|
|Ruby on Rails||Linode||Heroku|
|Node.js||Put in in a Lambda||DigitalOcean|
|Jamstack||GitHub Pages||Netlify or Cloudflare Pages|
|GraphQL API||Hasura||AWS Amplify / AppSync|
It’s worth re-iterating that there is a lot of commonality in hosting. Say you’ve got an
index.html file you want to host and that’s your entire website; literally any web host will do that. These are all web hosts, after all. They serve files and run code. They aren’t that different. We’re largely talking about DX here: do they run what I need to run? Is it straightforward? Do they help make it easy? Do they clearly offer support for it?
Is it the happy path?
Then there’s pricing
We haven’t really talked much about price. I know that’s a major consideration for a lot of people and I don’t want to downplay it. But it’s hard to talk about without knowing your needs. I also don’t want people to make major web hosting decisions based on something like a few dollars difference in monthly cost. If you spend half an hour troubleshooting you otherwise wouldn’t have had to, those savings are blown.
I find that web hosting is somewhat of a commodity market. The prices are fairly stable. If a host seems expensive, it’s probably because they offer a lot. If a host seems cheap, it’s probably because they cut costs in a way you’ll eventually feel. If you’ve got a little baby site, chances are, you’re going to be hosting it for free. And if and when the site grows up, the hosting costs will feel minimal and fair.
🛠 Does all this seem kinda fun and exciting to you? If it does, you might think about a career in DevOps dealing with servers, deployment, infrastructure, and supporting developers doesn’t have to be a side-job to other development work, it can be a whole job.
Happy happy pathing.
Missing on the list: Kinsta.com :-)
The one thing that I’ve yet to understand is how to do email with places that do Jamstack hosting. If I go with a solution like GoDaddy or Hostgator they come packed with email services. But I’ve not found such services on places like GitHub Pages, Netlify, or Heroku.
That’s because hosting a mail server is an absolute monster if you want to send mail from your own mail service and have it be received by other mail servers like Gmail, and not end up with your domain shadow banned into everyone’s spam filter. It’s definitely not something you can run on a static host. If you really want to stick with your static host for your site, but use your domain name for mail, you’ll have to set up a mail server somewhere else and point your
mail.mysite.comsubdomain to that server from your domain registrar.
You either setup your own smtp server or buy an email hosting separately
I just love your hype-killer vibes.
Good summary of the differences between types of hosting providers, Chris. But I think you should at least give a passing mention to reliability and support. They’re kind of important. :)
Super important! But also so hard to evaluate. Everyone has anecdotal answers to those things, but there are too many variables involved to really know.
My favorite combo is DigitalOcean paired with serverpilot.io
faster than WPengine/Flywheel
firewall / security updates
Excellent article with great information. I personally like github’s jekyll for blog, and firebase for OAuth
I’m currently searching for an alternative to my Dreamhost VPS, so the article is very timely. Thanks as usual, Chris!
I do mostly WordPress, with a little PHP API action. Some static sites with Hugo.
An key variable for me is sustainability, ie, “do these servers cause an awful impact in the world, or are they optimized for saving energy, and are powered by green, renewable sources?
I’m going to give kualo.com a go.
Just deployed a working version of my website at https://fredrocha.net, using Kualo.com. I am impressed that I had to do exactly nothing for my SSL certificate to start working. The cache system (LiteSpeed Cache) is impressive, my site is blazing fast now.
Also, their cPanel is very feature rich. Recommended!
From someone who worked as a senior DevOps engineer for quite some time at the corporate level I can say this is a pretty good breakdown. Unless you really do want to get down and dirty with deployment the “happy path” is the way to go.
In the end focus on the parts you enjoy and let the people that enjoy the other parts have their fun. There is always plenty of work to go around and this can get far more complicated than most people realize when you really get into the nitty gritty.
Want to support everyone’s code? Work from the ground up and control everything. Just realize the amount of work and continual learning that this involves can be staggering at the best of times.
I use Dreamhost for my static portfolio. It’s Jamstacked and $3.00/month. I have my own domain too. I’m a code newbie in technical college at the moment http://www.lauraristoff.com
The most important, don’t buy any cheap hosting. If you want to save money and going to buy a cheap hosting for your website, so you will lose and damage your blogging career.
Thanks for great content and helpful ideas
Thank you so much for writing an entire article to respond to my queries. It is an incredibly confusing and often times, overwhelming world out there. This is such a great read. Thanks so much
Great article, an eye opener indeed. Henceforth I have a reference to where to get best hosting based on the stack I choose to build my apps. Thanks Chris! ❤️
Love your approach of the “happypath” – it’s such a clear way of explaining how to choose the best hosting for your project’s needs.
Re Table Stakes: you mentioned that traditional WP hosting doesn’t cover those parameters, but the new, less traditional way of hosting and publishing WP, static WordPress, does cover these bases. In the case of Strattic, for example, we configured the following for our users out-of-the-box:
HTTPS. Yup, out of the box for all sites on Strattic – both staging and static (see below re staging)
CDN. The static WordPress site in its entirety is served via CDN.
Deployment. Our customers use Git with third-party tools like DeployHQ.
Staging. Strattic customers get one WP site which is the source of truth, more staging WP sites if necessary, and a staging static site!
Thank you for the fantastic post, Chris! I heard on Shop Talk Show you’d posted it so I was overjoyed to find it. My question is: at least half my sites are basically just html/CSS pages with sometimes PHP includes, but I also run a WordPress blog and I have more WP/Craft projects. Should I prioritize choosing hosting that can run my WP sites (let’s say Digital Ocean) and anyone I chose that way can also display my little HTML pages? If not, how do I choose? Thanks!
Sometimes it’s nice to have everything on one host, but for “little HTML pages”, I feel like you won’t regret chucking something like that on Netlify. The DX is super good, it’s probably just hooked up to your Git repo so it’s minimally different than what you already do, and the “little” part means it’ll probably be free.
Very comprehensive and helpful, thank you, this is my first comment on CSS-Tricks after using it for so many years :)