I have used many, many hosting options over the years, so I decided to condense my experience into an article so you can make a somewhat informed decision without having to try every single service yourself.

Platform-as-a-Service

Heroku

Heroku is the industry standard in Platform-as-a-Service (PaaS). They have tons of supported languages (including Docker if your favorite isn’t on the list), great documentation, automatic deployment from Git, and even support add-ons, like databases and additional logging. As per their pricing charts, they have a free tier which offers between 550 to 1,000 “dyno” hours per month of free uptime for your application. Heroku charges based on what they call “dynos”, which is basically their term for an application thread. To get upped to 1,000 hours, you just have to add a credit card to your account, even if they don’t charge anything to it. By default, free applications sleep after 30 minutes of inactivity, so you don’t have to worry about spending all your hours if all you’re working on is a toy project or isn’t ready for production anyways. The cold start times of a sleeping app is a little slow at 30 seconds, but its fine for development. Free dyno apps also get support for custom domain names, though without SSL unless you upgrade to a paid dyno. The performance of their free tier is lacking, but should be fine for small projects. Their many of the add-ons seem to be a little over-priced, charging you for convenience more than actual usefulness or performance, though you can always connect to a third party database. Heroku is really easy for beginners, allowing you to set up automatic deploys from GitHub right from the Heroku Dashboard, but scaling can get expensive fast. I recommend Heroku for anyone who wants an easy way to get up and running quickly, just remember that the apps do go to sleep unless you are paying for them.

Fly.io

Fly.io is a newer player in the Platform-as-a-Service space. They have a significantly more generous free tier, offering a whopping 2,340 shared CPU hours per month. Unlike Heroku, they do have a limited amount of bandwidth, limiting you to 160GB per month before you get charged for overages. They also offer up to 10 free SSL certs for custom domains. The one disadvantage is that you are forced to enter a credit card to use Fly.io at all, but as long as you don’t use up your bandwidth or your CPU hours you won’t get charged. Their main selling point over Heroku and other PaaS competitors is that they have automatic global deployment, allowing you to specify what regions to deploy to when deploying your application. When you deploy your app to multiple regions, you will get charged CPU hours for each region individually. For example, if I wanted to run my app here in the United States and in the EU in Germany, I would get charged for two CPU cores. They don’t offer any sort of automatic deployment as of writing this article. They also offer multi-region PostgreSQL database hosting, though it is not offered as a free tier option. Also of note, as of today they do not offer any sort of automated deployment, instead requiring you to install their CLI tool to deploy your applications. Their dashboard is also a little clunky and lacking in features, but I can forgive them since they are a newer service. I recommend Fly.io to anyone who’s okay with spending time updating their application manually every time they change their codebase and are really tired of Heroku’s cold start-up time for free dynos.

Vercel

Vercel primarily focuses on hosting front-end applications based on Javascript, even going as far to develop their own framework on top of React, called Next.js. They also have serverless function hosting, which currently has support for NodeJS, Python, Go, and Ruby. Serverless functions are to be placed in a folder at the base of your repo called api/, and should be bundled with some sort of front-end application. Their documentation is top-notch and should always has the answers you need about the platform. Vercel has the best Git integration I’ve seen yet, with support for automatically deploying branches and even pull requests to custom permanent domains, so changes can be previewed instantly. You get unlimited custom domain names and free SSL certificates. You can even set up preview branches that will always deploy to specified domains or subdomains. They are working on support for add-ons, but as of right now their functionality and support is limited. Did I mention that all of this is free for individuals? Yep, as long as you are not an organization and are in fact a developer account on any of their supported deployment platforms, you can get free unlimited (within reason) web hosting, and free serverless functions (provided they do not run for more than 3 seconds). To add team members, you do need a Vercel Teams Pro or Enterprise organization. Their pricing is very reasonable, and definitely worth it if you need the features. Vercel is my favorite host for my React projects, and I recommend it to all developers who want a fast, easy, and free way to host their React, Vue, or Svelte applications.

Deta.sh

Deta.sh is the newest player on this list. The word “free” is painted all over their website. While I hope they keep their promise of being “Free forever”, I really wasn’t a fan of their platform. Sure I can see the use case, but their platform, at least as of writing, seems a little limited. If your project fits within the confines of Deta’s restrictive nature, by all means, use it. Like they said, it really is free. They do offer a paid tier, but its also quite reasonably priced, and supporting them is the least you could do if you’re making some money on the side on their platform. A few months ago when I tried them out they had pricing listed on their homepage but now I can’t seem to find a page with them anywhere. They offer three services, Deta Micros (serverless functions), Deta Bases (NoSQL Databases), and Deta Drives (Object Storage), all with generous free offerings. The catch, at the time of writing, is that they only offer support for two languages, which are at least two of my favorites: NodeJS and Python. They are also in the process of adding support for Go, which is another language I quite like. I think that I’m going to give them the benefit of the doubt and try them out in another few months just to see where they are, because they lack support that many other PaaS services have, like automatic deployments, custom domain support, robust documentation, and a good web UI, but again they are a very new company. If you can fit your application into their confines, go for it. They don’t even require a credit card to reap the full benefits.

Database

MongoDB

MongoDB is both a company and a database. They are the defacto standard in NoSQL Document Database, making their database easy to use and easy to develop for. For those of you who aren’t familiar with a document database, data is stored in JSON “documents” that can be found inside of collections, which are in tern found in different databases within the database server. They also offer free hosting to get you started with developing with MongoDB. I quite like MongoDB, and is (usually) my database of choice, so having it hosted in the cloud is quite nice. You get one 512MB database per project with up to 20 simultaneous connections, with upgraded shared and dedicated hosting options starting at $9/month. You can also host your own MongoDB server, as it is an open source database, with an easy to set up Docker Container available as well. MongoDB also supports all of the popular languages, including but not limited to Python, NodeJS, Go, and Rust. I recommend MongoDB to anyone starting a new project who needs a fast and reliable database, and would like to scale that database easily.

Cloud

Oracle Cloud

This is the one service on this list that I haven’t actually used, but I’m going to mention it briefly because its almost too good to be true. I first heard about Oracle offering an “always free tier” in a CNX Software Article. They are offering up to 4 ARM-based virtual machines (or a single quad-core ARM VM), a NoSQL Database with 25GB of storage, 10 GB of Object Storage, 10GB of Archive Storage, 200GB of Block Storage (mountable drives for those previously mentioned virtual machines), and a bunch of other management and network related services for free. You can check their official website for more details. I don’t have an opinion of this since I haven’t tried it, but I do plan on making an account when I have time and trying it out, so I may write an update article comparing it to other hosting providers like AWS, Linode, and Vultr.

And that’s really it! Hosting can get expensive fast, luckily these services will help you get up and running fast and free!