It is better to avoid the giants (Amazon, Microsoft, Google etc.) for small projects as they are too much of a hassle (trying to figure out what you will be billed for) and even expensive. Someone on HN had mentioned once that these large providers make sense, and are affordable, only if you are spending more than $5000 on your existing hosting already. I feel that is a very apt advice.

As for which host to choose, this was the advice I had got 10+ years back, and it still holds true:

1. Check how long they have been in business: You want to look for stability in a hosting company. Older hosts means they have a more stable business and more experience.

2. Check their reputation and support: Do they take their security seriously, have they ever been breached? How is their support - will they respond quickly to your needs?

3. Verify if they run their own data centres: Many small webhosting companies are resellers that just hire servers or instances from other larger providers and manage the software. Or some just resell a white label service while everything is managed by the larger host company.

4. Check if they "oversell": A server can serve only so many instances of a VPS or website. Many webhosting companies oversell the resources they have on the gamble that not all their clients will use the full resource they are buying. If you are running a business you don't want that kind of uncertainity when you expect to scale.

5. Check if they offer the tech you need: FreeBSD servers used to be really popular once, now Linux servers are the rage. Or you may prefer Windows for your .net app. Or even an Oracle DB (if you have money to burn unnecessarily). Or you may prefer a specific version of an OS / DB / software for a particular web app or SaaS you have developed. Different hosts offer different technology. Verify your requirement with the webhost before you commit to them.

Apart from these, other things one may want to consider - if you want "managed service" (where the hosting company manages your software - installation and updation of system software, monitoring your servers etc.) or "unmanaged services" (where you are the system and db admin and monitor and manage the server instance). Or if you want data centres in a particular geographical location. Or if they offer the kind of billing cycle you want and so on. You may also want to find out how generous they are when you hit the server limits of your paid plans - do they shut down your instance without warning, or do they allow an exception for the rare unexpected peak in traffic and resources when your website is slashdotted or appears on HN?

The usual US based hosts that were then highly recommended, based on these ideas, for small projects were:

- Pair (www.pair.com - one of the oldest competent small-to-medium webhosting companies)

- Rackspace (www.rackspace.com - medium-to-large).

- Linode (www.linode.com - came much later, but gained a lot of reputation with their affordable unmanaged VPS hosting services and the easy platform they offered to manage them.)

Having tried all 3, I still personally prefer and recommend Pair and Linode.

Later Digital Ocean (www.digitalocean.com) and Vultr (www.vultr.com) arrived on the scene with more competitive pricing and better hardware and tech than Linode (for a while). DigitalOcean is also good and seems to have gained a good reputation so far. Rackspace lost the interest of the hobbyist crowd when they started focusing more on corporate clients.