If you haven't heard the news, Heroku is removing their free plan starting November 28, 2022.
This is bad news for devs since a lot of tutorials courses and bootcamps rely on Heroku to deploy your app to the internet. Once the free tiers are gone, we'll be paying around $16 a month to run a single Dyno and Postgres database.
The good news is there are two services that are cheaper and better than Heroku. We're going to look at their convenience, free tiers, and cost. Let's jump in.
The first service is called Railway. They launched in 2020 and let you host anything from discord bots to full stack apps. They also have native support for Postgres, Redis, MySQL, and MongoDB.
I find Railway much easier to use than Heroku. Instead of navigating pages of configuration, Railway provides a bird's eye view of your app.
Their bulk environment editing feature is something all services should have (Vercel, take notes).
Another huge plus is their builds are the fastest I've ever seen. This is all things to Nixpacks, which was built by railway to reliably and quickly turn your code into a runnable container image.
With their exceptional developer experience, Railway is the most convenient Heroku competitor out there that I know.
Free Tier Benefits: 👍
Railway's free tier gives you $5 of monthly usage and 500 execution hours per month. Your app is stood down once one of these limits is reached.
There are only two scenarios in which you can hit these limits:
- If you intend to run your app for the whole month (~720 hours), Railway will shut your app down on day ~21 (500 hours).
- If your app runs for < 500 hours a month (like a discord bot), railway will shut your app down once you have consumed $5 worth of resources.
The free tier is still being worked on and improved. You can consult their free plan documentation for more details.
Unlike Heroku, Railways pricing is usage based - you're only charged for the CPU and RAM you use. While it's hard to predict how much this will cost, they have calculators to help you guess how much you'll pay. They also offer real time building estimates based off your live resource consumption.
To enroll in a paid plan, simply attach a credit card to your account. This will get you 100 gigabytes of disk and up to 8GB of RAM. This plan also comes with $5 of free credits per month. This means your monthly bill is free if your app consumes less than $5 of resources.
One thing to watch out for is that railway auto scales your app. If it's under heavy load, this means your expenses can rise if your app suddenly becomes popular. They currently don't offer a way to disable this, so keep it in mind.
Render launched in 2018 and they've been positioning themselves as the next Heroku. They have a similar pricing model where you pick your plan based on your RAM and CPU needs. The UI is very similar to Heroku, and they also copied Heroku's auto sleep functionality.
With Render, you can host static sites, web apps, background workers, cron jobs, Postgres, databases and Redis services.
If you're used to Heroku, Render will feel very familiar. They even copied Heroku's auto-sleep functionality; if your app is inactive for 15 minutes, it automatically goes to sleep.
The UI is clean, and deploying is a breeze thanks to its integrations with Github. Like Railway, they provide one-click deployments to easily try out new projects.
One of my favorite features of Render is the ability to ssh into an instance. This lets you easily debug and test out quick changes to your app in real time.
As far as convenience goes, render is a fantastic platform.
Free tier: 👎
Render's free tier limits are easy to understand. They'll let you run an app for free for 750 hours per month, which is exactly 30 days. Be aware that the free tier is limited to web services and databases. If you need to launch any other kind of service, you're going to have to pay.
A frustrating feature of their free tier is that databases are suspended after 90 days, and deleted within two weeks If not upgraded to a paid plan. Data loss on free tiers is a toxic feature which will make many users uneasy.
This developer unfriendly feature makes their free tier feel malicious at best.
Let's move on to the last point - cost. Render has a similar pricing model to Heroku, where you pick your plan based on your RAM and CPU needs. This is great because your costs are fixed - you won't be charged more than the plan you've selected. The simplicity of this approach, despite potentially paying for unused resources, makes cost predictable which is always great.
As you can see here, Render's prices are heavily discounted when compared to Heroku. Their fixed costs and competitive pricing make Render a stellar hosting service.
So that wraps up my analysis of Railway and Render, my two favorite Heroku alternatives. If you're looking for the best developer experience out there, I recommend Railway. If a Heroku clone is more what you're looking for, check out Render.
I encourage you to give these two a try and pick your favorite! If you do, let me know which you prefer 🤓