Web hosting solutions in a nutshell
Published: 2021-12-14 23:02:05

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](https://arbington.com/) along the way. 

## Different types of hosting 
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.

## Self hosted options 

Personally, I like these options. These come in the form of:
* AWS EC2 
* Digital Ocean
* Linode 
* Heroku

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

### AWS EC2 
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! 

### Digital Ocean
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. 

### Linode 
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 
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. 

### The common thread

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

For us at [Arbington.com](https://arbington.com/) we use Digital Ocean - if you want a free $100 credit just to try it out, [use our referral link here](https://m.do.co/c/d47ab4f99521). 

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) 

## Other hosting solutions

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](https://letsencrypt.org/)

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:

```bash
ssh user@your.ip.address
cd YourFolder/
git pull origin main 
```

But these smaller hosting providers, again, often don't support command line or git integration. 

## Where should you start? 
If you've never hosted a website before, I would suggest two things: 

1. If your site is a static site (made with HTML/CSS/JavaScript) then look into GitHub pages. 
2. 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](https://m.do.co/c/d47ab4f99521). 

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. 

## Want to learn the command line? 
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](https://arbington.com/search/?q=command+line). Don't forget, Arbington comes with a free 14 day trial so you can try all of these courses completely risk-free.