There are A LOT of web hosting solutions these days.
Let's jump into a few of them, and I'll explain some of our setup at Arbington.com along the way.
There are different types of hosting. Some places give you a little space in a partitioned hard drive, some give you an entire server.
This largely depends on your budget. But you can host a website for as little as $2/month, or as much as thousands per month.
And that also, largely, depends on the complexity of your application.
Personally, I like these options. These come in the form of:
- AWS EC2
- Digital Ocean
There are plenty of other providers out there but those are the three most common in my circles.
You basically get an entire server for as little as $5/month. It's not actually an entire server, is a slice of a server called a "virtual machine".
EC2 is, honestly, amazing! It's very powerful and very affordable. But a lot of people are trying to stay away from Amazon because EC2 hosts like, what, 30% of all websites?
But if you're an Amazon fan, EC2 is the way to go!
I'm a big fan of Digital Ocean. Simple interfaces, simple billing, powerful tools, and an overall solid company 👌
We use Kubernetes and Docker with an Nginx load balancer all hosted on Digital Ocean. That's pretty advanced, so don't feel like you need to learn everything in this paragraph to get started with Digital Ocean. They have pre-made "boxes" (virtual machines) to get you up and running with services like Django and WordPress super quickly.
I know A LOT of people that use Linode. Personally, I don't use them anymore. They are good! I just prefer Digital Ocean, that's all.
Heroku is the odd ball here. They are incredibly powerful, very simple, with an intermediate level interface.
Less command line skills needed, less server management needed, and you can connect GitHub to it to automatically push new updates to your site. It's a dream for people that absolutely hate dealing with servers.
You typically need to setup everything on your own, including updating Linux (minus Heroku). But with that, you get almost unlimited access to do whatever you want (minus Heroku, again).
Again, this does mean you're going to learn some server ops skills. And everything is done over the command line.
So while it's only $5/month, it also means you're in full control - that's both good and bad for most people.
If you want something a little easier, I would highly recommend looking into Heroku.
It's an easier learning curve, cheap and you don't have to worry about setting up your own versions of Linux and upgrading them all the time.
The down side to Heroku is the lack of storage space - so you can't just upload all your photos and hope they'll stay there forever. You'll need something like AWS S3, Cloudflare R2, or Cloudinary to host your images.
Whereas other services like AWS or Digital Ocean give you the option to select your hard drive size (called a "disk"). If you only need 8gb, great, you only pay for 8gb. If you need 1TB, you can pay for that too (although I would suggest looking at "object stores" like AWS S3 or Digital Oceans equivalent)
On the other hand we have "easy" providers. These players are often cheap, but very limited in what you can do.
And they'll often charge for extras, like SSL certificates (even though they are free to generate using Let's Encrypt
And often, these websites are slow to load. These are second tier businesses renting out their hardware.
But they do come with basic support in most cases. Places like GoDaddy, BlueHost and WPEngine let you easily spin up WordPress sites, for instance.
And they sometimes come with a cPanel, which is your control panel for your website.
More often than not, they don't tend to come with any command line support, so you're stuck using SFTP/FTP to upload your files. And if you host an application using Python, this can get REALLY tricky. But it works VERY well for PHP applications.
Most developers these days prefer to use Git to update their website with a few simple commands, line:
ssh firstname.lastname@example.org cd YourFolder/ git pull origin main
But these smaller hosting providers, again, often don't support command line or git integration.
If you've never hosted a website before, I would suggest two things:
- If your site needs a backend language, try one of the easier providers that only use FTP. It's less the learn, and gets you up and running faster.
But once you have that all figured out and you feel comfortable with the basic sites, I highly recommend looking into a self hosted solution with AWS or Digital Ocean.
If you want a free $100 credit with Digital Ocean just to try things out, use our referral link.
You'll need to learn more command line, operating system and dev tools like git... but you'll also gain A LOT of experience that's super useful in "the real world", where companies are looking for these skills.
The command line is not to learn at first. But it's POWERFUL! And in most cases, it's faster than learning how to use a GUI (graphic user interface).
Check out these 5 command line courses on Arbington.com. Don't forget, Arbington comes with a free 14 day trial so you can try all of these courses completely risk-free.