I was working on a side project and needed a hosting service; Heroku would be my first choice, but since they no longer have free dynos, I had to find Heroku alternatives.
The Heroku era
Founded in 2007, Heroku has been the first choice for small projects, especially hobby, personal, and side projects, mainly because of the free dynos.
For years, we have had a place to deploy pet projects, make tests, and have fun with an excellent CLI interface to manage server resources.
It all ended in late 2022 or early 2023; Heroku stopped offering free product plans, and we (developers) lost the playground.
The requirements
I was building a web app that was planned to be wrapped into a hybrid mobile app.
The tech stack required the following resources:
- ruby on rails web app (any linux based system)
- a PostgreSQL database
- a Redis database
- a free or close-to-free plan available
The Heroku alternatives should have all the items above.
The options
Among the options I found, I ended up with this list of options:
- Vercel
- Fly.io
- Render
- AWS (free tier)
- Supabase (database only)
- Flightcontrol (late contender)
1. Vercel
Vercel has a free tier, and it’s an excellent option to start a small app for free, but it focuses mainly on front-end frameworks.
It may be a good option if you have a JS/Node.js app, but not for my case, which is a Ruby on Rails app.
- Free plan – yes ✅
- A feasible option for my project – no ❌
- Website: vercel.com
2. Fly.io
Fly is a real deal for a Heroku alternative in the “ease of use” category- maybe even better in that category, to be honest.
My app was deployed and running with only two commands: the rails app, the Postgres database, and Redis.
The setup and management are made via a useful CLI tool with good documentation and colorful and fancy feedback on the terminal.
- Free plan – yes ✅
- A feasible option for my project – yes ✅
- Website: fly.io
3. Render
It is not a Heroku-like solution, as I see a different approach to the deployment flow; there is no CLI with magic-like commands, but with some knowledge on how to set up the database, configure the build commands, and set ENV VARs manually, it works very well.
Despite the lack of a CLI, the configuration was easy, and once the first setup was finished, it acted like an excellent competitor.
I liked the sense of knowing what I was doing, and I felt more control over the process, which gave me the confidence that I could migrate any portion of the structure if needed.
- Free plan – yes ✅
- A feasible option for my project – yes ✅
- Website: render.com
4. AWS (free tier)
AWS is a well-known solution, and I have used it many times in other projects. It is probably the most robust and complete option on the list.
However, the tradeoff is the extra effort needed in configuration and maintenance; I would spend more time playing sys admin with no CLI or user-friendly UI for the first steps.
In addition, the free tier is only free for the first 12 months; after that, you usually start paying.
I added it as an option only because I didn’t know if I would find other free options before starting; if not, AWS could be the choice since I have previous experience with this provider.
- Free plan – yes ✅
- A feasible option for my project – yes ✅
- Website: aws.amazon.com
5. Supabase
I’m adding Supabase as an honorable mention because it has a free tier but is a database-only provider.
To make it work, a combined solution would be required, where the app would be running in one provider while the database would be running in another, and so on.
I’m not moving forward with this option for this project, but I found it exciting and thought it was worth mentioning.
- Free plan – yes ✅
- A feasible option for my project – no ❌
- Website: supabase.com
6. Flightcontrol
The cofounder reached me via twitter (x), and I decided to try it, but I believe it lives in another category.
Flightcontrol works as middleware between you and AWS in a way that you need to add your AWS credentials, and they do the service configurations for you.
You have control over all the AWS resources and pay AWS bills separately; that’s why I believe it belongs to a different category.
It doesn’t work like a hosting company but an automation service for AWS.
- Free plan – yes ✅ (but you need to pay the AWS bill separately)
- A feasible option for my project – no ❌
- Website: https://www.flightcontrol.dev
Conclusion for Heroku Alternatives
After researching the 6 Heroku alternatives, I set up the system using two different providers, Fly and Render.
Both providers are outstanding options regarding usability and joy of use, with a slight advantage to Fly.
Both have the same spin-down feature when the server is idle, which means the server will sleep and save energy (usage time) on free plans.
Ultimately, I had to pick one and decided to go with Fly, mainly because of the CLI, which is the “icing on the cake”.
After some time, I realized that the Postgres free plan on Render is only for a trial period so that it wouldn’t be the best option anyway.
Was it useful for you?
If so, consider following me on Twitter at @renatonitta.
And feel free to drop a comment or a question below 👊.