28 November 2022 was a sad day for developers. If you haven't heard, Salesforce (Heroku’s parent organization) has phased out its free tier plan on this date.
For many years, Heroku has been the de facto standard platform as a service (PaaS). So many students and developers deployed their first web application on Heroku. Anecdotally, Heroku has been pivotal for my career.
A lot has happened
For context, a lot has happened in the year 2022 for Heroku. The two most notable events are:
- On April 2022, Heroku had a security breach (incident) where CI and Review App secrets were compromised. GitHub Actions integrations on Heroku were down for a couple of months. Comms from Heroku were objectively bad. I experienced this firsthand when I had to resort to using a GitHub CI Action for my app deployments.
- On August 2022, Heroku announced the removal of their free product plans.
If you have been keeping an eye on the Internet, you would see people expressing concerns about how Heroku is losing its magic. Ever since the security breach incident, I see more talks about Heroku alternatives taking place.
Though things started to look bad, whatever Heroku had to offer was still great and I decided to stick to it. Until now, that is.
For the past couple of weeks, I have been moving my demos and tiny projects out of Heroku.
While there are a bunch of blog posts and recommendations scattered on the Internet now, free-for.dev provides the best coverage. The list comes with a brief description of what each Heroku alternative does.
What I was looking for
Do note that my use case is mostly for small-scale personal projects. So, whatever I have written may not be ideal for your use case.
- Equivalent free tiers in terms of CPU and RAM. (spoiler: none of them were as good)
- Support for Cron jobs out of the box. Ideally, no weird workaround is required
- Custom domain
- GitHub integration
- Support for basic logging and monitoring (i.e. CPU, memory, disk, network metrics)
The bandwidth cost and supported region of each PaaS were not my primary concerns.
Heroku Postgres — since May 2022, I have migrated from Heroku Postgres to Railway. So far, I have no complaints about it. Another alternative that I was looking at was PlanetScale. However, I didn’t go for it because it isn’t Postgres-compatible.
Heroku Dynos apps — Burplist was migrated to Koyeb. Having tried out other notable Heroku alternatives like Fly.io, Northflank, and Railway, I can safely say that the migration from Heroku to Koyeb required the least amount of effort and kinks. It just works in my case.
Heroku Scheduler — for my Cron jobs, I opted for Northflank. Their support for Cron jobs is by far the best. Pricing aside, the developer experience is much better than Heroku Scheduler.
Heroku Add-ons — not applicable to my case. I was relying on Heroku Add-ons for monitoring and logging. Thankfully most of the modern PaaS today support that out of the box.
Woefully, most Heroku alternatives’ free plans aren’t as good as Heroku. For example, most of the free compute instances provided are 1 shared CPU and 256 MB RAM (Heroku Free Dynos started at 512 MB RAM). Not considering the limited number of apps allowed yet.
To my surprise, most of these PaaS still don’t support running Cron jobs natively. Shoutout to Northflank again for providing such capability with great developer experience.
For Koyeb, the supported regions for free tiers are quite limited at the time of writing this.
Lastly, render.com is another popular alternative out there in the market. You may want to check them out.
Updated as of 1 Dec 2022.
|GitHub Integration for CD
|Yes, but through GitHub Actions
|Free tier before 28 November
|Up to 3 VMs
|Based on $5/mo free credit
|$2.7/mo based on $5/mo free credit
Free tiers aside, most of these Heroku alternatives bill you for the resources you use by the second/minute/hour.
|$5 for 1000 dyno hours/mo— $500/dyno/mo
|$1.94/mo — $558.16/mo; 1 shared — 8 dedicated
|$20 / vCPU / mo
|$2.71/mo — $480.00/mo; 0.1 shared — 20 dedicated
|$2.7/mo — $85.7/mo; 1 — 8
|Same as CPU; 512 MB — 14 GB
|Same as CPU; 256 MB — 64 GB
|$10 / GB / mo
|Same as CPU; 256 MB — 40.96 GB
|Same as CPU; 256 MB — 8 GB
|Price differs for jobs
One thing that I did not cover here is bandwidth cost (inbound + outbound). This is something you might want to seriously consider for bigger projects.
They feel… different
Perhaps I am biased. There aren’t any obvious drop-in replacements for Heroku free tiers (at least not on par with Heroku’s generosity). Throwing free plans aside, most of them don’t offer the same kind of developer experience as Heroku.
Heroku free tiers are one of the best things that have ever happened to software engineering in my opinion.
I really appreciated Heroku’s free dyno hours. I didn’t mind the fact that dynos goes to sleep and only gets woken up when it’s needed — this means I could host multiple demos at once and only consume my free limits on demand.
Need to show something to someone quickly? Simply send them your URL. It’ll be up in a couple of seconds and I am totally cool with the cold start. This developer experience is something all the existing platforms cannot give, at least not with their free plans.
While I’m a happy paying customer, it stings to pay $5/month for something that I do not use 99% of the time.
Sadly, it is how it is. The Internet is a gnarly place. If you are offering free service on the Internet, people will find a way to abuse it. I remember hosting my first URL shortener. On my first day of making it public, the service immediately got spammed. I had to implement CAPTCHA and expiring links to mitigate abuse.
Today, whenever I see something available for “truly free” (if you know what I mean) created by individuals, I can’t help but wonder how are they going to keep the lights on sustainably out of goodwill. I just hate to see someone’s good intentions fail. Maybe we should start paying for Internet stuff.
Though I use cloud services like AWS almost every day, PaaS like Heroku always holds a special place in my heart.
Heroku was amazing. I think it did a great job of raising the bar in the PaaS field besides indirectly advocating free education (in one way or another).
Hats off to you Heroku.