So you have developed a full-stack web application and now you are wondering how to take it online?
Is it just a side project that you want to showcase or a small scale project to test it out with real users and get some feedback?
One question you must be having is how can I get it done in the least cost possible right? Today we will see a list of amazing top services, using which you can easily go live with your project for FREE!
We will see services for Back-end, Front-end, and even Databases 🤯. In the end, I'll drop in my personal choice and views regarding the same.
I am not being paid or sponsored by any of these services. This is just advice based on my experience as a freelancer, and on how I host my web applications.
Heroku is a PaaS i.e Platform as a Service, you can deploy your backend applications very quickly and easily on Heroku. They have a free tier where you can run up to 100 backend apps at the same time for free. One catch is that you collectively have only 1000 free dyno/app-hours per month but its more than enough for a hobby or side project.
Also, Heroku has a wide variety of add-ons which makes this entire ecosystem very easy to use and setup.
Vercel or Formerly known as Zeit is another great option to deploy both Backend and Frontend applications, It uses serverless architecture to set up their infrastructure for deployment. Most people use vercel to deploy frontend applications but you can also deploy backend apps with vercel. This guide shows you how to deploy Node.js API with MongoDB on vercel.
Vercel has a very generous free tier with these specs
|Serverless Functions Created per Deployment||12||24|
|Serverless Functions Created per Month||160||640|
|Serverless Function Duration (Seconds)||10||60|
Firebase is not just a hosting service but a google backed product that provides lots of features along with hosting. Firebase gives you functionality like analytics, databases, messaging and crash reporting, etc.
Along with hosting, many of the other services are also available in free tier and as you scale up, you can go ahead with their Pay-as-you-Go model.
You can host serverless functions called Cloud Functions, however recently google has announced that to create functions that use Node.js version 10 and above, you have to enable billing for the account.
Fly.io is a relatively new platform (founded in 2017) which has a free tier to test out the platform or host small side projects. They give each user $10/mo of service credit that automatically applies to any paid service.
You can easily follow along with their quickstart guide to set up the deployment workflow using their CLI tool.
I have clubbed together AWS, GCP, and Azure into this category. All three of these provide a free tier with a basic machine to set up for a year.
Read more about their services in the free tier at
These all are indeed good but sometimes can become too overwhelming for beginners by looking at their vast number of services and interconnection between them.
Netlify is an amazing service for hosting you static websites, you can easily host unlimited projects, invoke serverless functions, add a custom domain with HTTPS, Store large files, Preview Deploys and many more for free.
Recently Netlify also released Plugins Ecosystem which allows you to customize your build process.
Vercel as mentioned above, not only can be used to deploy backend APIs but in fact has a better ecosystem built to deploy static frontend applications. They have solutions for Next.js, Gatsby, React, Vue, Angular, Nuxt out of the box with Zero Configuration.
Vercel also provides Edge Network or Content Delivery Network and has multiple layers of caches to ensure that your Vercel deployments are fast around the world. You can read more about it on their docs section which in my opinion is nicely structured for better understanding.
If you are a heavy user of GitHub and just want to quickly have a deployed version of your project then Github Pages is the best choice for you. Github Pages host your code directly from your GitHub repository, so any changes/edits you make and push it to the repository are automatically pushed to your live website.
Follow this amazing guide by github to set up your next project using Github Pages.
Surge.sh is one of the simplest static site publishing providers. You can use their CLI tool to publish any project directly from the terminal or you could use its integration with various build tools like Grunt, Gulp, Travis CI and many more.
Try out surge free tier which is more than enough for any small to medium size front end application.
Render is another great service to host your both front end and back end applications and database, Although they don't have any free tier for back end and databases (as of now) but they have a really good free tier for static web hosting.
The services are more or less similar to the other services mentioned above, so in the end, it all depends on your experience as a developer using these services.
The company MongoDB itself created this service called MongoDB Atlas and provides a really good free tier with 512 MB of Storage, Shared RAM and Highly available replica sets, end-to-end encryption, automated patches, REST API.
Previously, I was using mLab as Database-as-a-Service for most of my projects, but a few months back mLab was acquired by MongoDB and for the greater good, as MongoDB provides additional services and better security rules for your shared MongoDB Databases. There is no doubt that Atlas is the best Cloud Database you can get for rapid prototyping and small to medium-sized projects.
When I am not using a NoSQL database like MongoDB and need an RDBMS database for any project, I mostly use PostgreSQL. Elephant SQL is a great PostgreSQL as a Service for the cloud. Although they have a variety of plans for their service but their free tier is great for getting started with the PostgreSQL database in the cloud.
As I have mentioned above in the Heroku section about the additional add-ons that Heroku provides, one of them is Heroku Postgres. This is what I was using previously before I discovered about elephantSQL and I am pretty much satisfied with the services that Heroku Postgres provides.
Moreover, it's not just great but also completely free, you don't even need to add credit card details to verify your account to use this (as for some other service like Heroku Redis).
Most of my side/client projects involve tasks where I require a fast, in-memory datastore either for caching, rate limiting or session management, for that, I mostly go with Redis. For the cloud Redis database, I use Redis Lab. You can signup for an account and get 1 database with 30 MB storage for free. This is more than enough for me for prototyping and testing things out.
So these were most of the services that I have personally used and would recommend to others as well. My final thoughts are
- I mostly use Heroku and Vercel for deploying most of my backend applications
- For frontend I mostly choose between Netlify and Vercel from the mentioned options, but all of these options provide very similar kind of services so at the end it boils down to our own experience while using them, my suggestion would be to try each one out and choose for yourself which is your preference
- For Databases, I have laid down all the services I use for different types of databases, there may be other service providers but these are the ones I tend to choose.
Let me know if something is missing in the list which you would've liked to see. 😊