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.
Not a sponsored post
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.
This section has been updated as per the new updates provided by Heroku
Heroku is a PaaS i.e Platform as a Service, you can deploy your backend applications very quickly and easily on Heroku. They
have had a free tier however recently Heroku announced that they are going to sunset their free services.
Moreover, they won't be grandfathering the existing free instance i.e your existing free services would either have to be upgraded to PRO plan or they would cease to exist post-November 2022.
With this in mind, I have updated this blog to remove Heroku from this list 😔
Workers from Cloudflare allows you to deploy serverless code to global infrastructure within seconds (literally! 🚀).
With the help of Wrangler CLI, developing and deploying with workers becomes very easy.
You can read more about how Cloudflare workers work here. A short TL;DR would be that consider Workers like mini browsers running on V8 environment on an edge infrastructure and executing your serverless code using standard Web APIs.
This allows you to essentially have a serverless code running with ~0ms of cold starts, which is a pretty crazy thing if you think about it in a serverless world. Also, the pricing plans are way better to prototype on free plans and move to pro plans for serious stuff.
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.
Railway is another PaaS service provider in town which have amazing features and generous free tier. You can use Railway pretty much to do anything, be it hosting backend services or frontend applications (I would still prefer to use the services mentioned below for frontend though) and even databases.
The most loveable feature about Railway according to me would be the ease at which you can deploy your services. Also, their starters section is an awesome way to have 1-click deployments for well-known services.
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.
Pages by Cloudflare is another great way to deploy JAMStack applications on Cloudflare infrastructure.
They support a variety of frameworks so you are pretty much covered on that end.
What I missed the most was deploying Next.js site with server-side code (which was earlier not present). However, very recently Cloudflare announced support for that next on pages with the help of the Next.js Edge runtime.
Plus a very big plus point for me was the specs where they provide Unlimited requests and Unlimited bandwidth which was the main reason why I moved "How to professionally say" app from Vercel to Cloudflare pages.
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.
This is a new addition to the list and I totally love their product. I am using Supabase in production for the self-hosted analytics tool and I've had no troubles with it at all.
Supabase is basically an open-source firebase alternative. They are jam-packed with loads of features like Postgres Database, Authentication, APIs, Real-time subscriptions and Storage.
I have been using Supabase majorly for the Postgres database as of now but it sure can do a lot of stuff. It is technically an MBaaS (Mobile Backend as a Service) at this point.
Off-topic here, reading all these terms like PaaS, IaaS and now MBaaS always reminds me of this clip from the Silicon Valley show
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.
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 test things out.
They have a dedicated page to explain why they choose vitess to scale the MySQL performance at PlanetScale.
I haven't had a chance yet to explore more about PlanetScale myself but I have given it a try once and it definitely has some amazing features like Powerful CLI, Git-based workflow for managing your database and of course the performance offered by Vitess. Once I try it a bit more I'll update this section if new information becomes available.
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 Vercel and AWS for deploying most of my backend applications
- For the frontend, I mostly choose between Netlify and Vercel from the mentioned options, but all of these options provide very similar kinds of services so in 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. 😊