Heroku recently announced that they are ending their free tier plans, due to fraud and abuse of their free plans. From October 26, 2022, they will get rid of inactive accounts and from November 28, 2022, they will start shutting down free dynos and data services.
Our product, engineering, and security teams are spending an extraordinary amount of effort to manage fraud and abuse of the Heroku free product plans. In order to focus our resources on delivering mission-critical capabilities for customers, we will be phasing out our free plan for Heroku Dynos, free plan for Heroku Postgres, and free plan for Heroku Data for Redis®, as well as deleting inactive accounts.
What is Heroku?
Heroku is a cloud platform acting as a Platform-as-a-Service (PaaS) for scalable app deployment and management. It supports several languages including Ruby, Java, PHP, Python, Node, Go, Scala and Clojure. Developers can focus on development and leave the deployment to Heroku's cloud-based managed environment.
Heroku has various subscription plans, including their free plan, which has been used by several thousands of students and hobbyists. Heroku uses lightweight Linux containers called dynos. Each dyno can run one or more web process. Heroku's free plan includes 550 free dyno hours each month, extendible to 1,000 free dyno hours if verified with a credit card. This free plan will be phased out on November 28, 2022.
Show me the Heroku alternatives
For the users who are directly affected - students and hobbyists - this is a list of free alternatives that provide similar service that Heroku currently provides. These alternatives are arranged in no specific order.
Amazon Web Service (AWS)
AWS offers a 12-month free tier for several of their services. Amazon allows students, entrepreneurs, small businesses and big companies to create accounts for their Free Tier plan. Usage does not accumulate and you cannot rollover unused data to the next month. It resets every month.
Personally, I have loved using AWS during my day jobs and contract jobs. The interface is intuitive, and the process of spinning up and running virtual instances is fast.
There are a few cons though. If you are on a budget, watch out for surprise charges on your bill. Not all services are free. Sometimes, you can get carried away and use premium services and get a bill greater than $0.00. To help with this, you may have to close and delete the instances when you're not using them. You can also set Elastic Load Balancing (ELB) to keep a minimum number of EC2 instances running, so you won't go overboard. Amazon S3 and RDS can incur charges that build up; watch out for that.
Amazon has a tutorial on this.
AWS Elastic Beanstalk
AWS Elastic Beanstalk Free Tier is free for one year. For using this service, you can only use micro instances and RDS instance. The scaling of the web server should be set to maximum of 1. You can also set standalone deployment without autoscaling. Storage should be less than 30GB, and do not enable Provision Throughput.
To ensure that you stay within AWS free tier limits, you can go to the Billing menu:
Go to Cost Management Preferences > Receive Free Tier Usage Alerts
The AWS UI and plans change every now and then. So, it's best to check the terms and conditions before signing up.
Google App Engine
Google App Engine (GAE) has been my favorite for a very long time. I used to host custom RESTful web services/API written in the Python bottle framework. For the backend database, I used Google BigQuery.
Google App Engine is scalable, very robust and easy to manage.
GAE supports several languages, including Python, Java, Node.js, Go, Ruby, PHP and .NET. It also supports custom runtimes.
Google App Engine has a pay-per-use pricing model. You get billed for extra services or using beyond their free tier limits.
I am particularly interested in the Ruby on Rails aspect because I used to host Rails applications on Heroku and keep track of them. I used to get my interns to try out and use Heroku, as well. I don't do much Ruby on Rails now.
At my current workplace, I use Flask and NodeJS (ExpressJS) for web development. The array of JS frameworks is very impressive.
The interface of Adaptable.io is well designed and works well across all major web browsers. There are tutorials and Getting Started pages. There is a writeup about building and deploying on FeathersJS. If you're an ExpressJS developer, this ExpressJS guide will help you get started.
Managed databases are supported in the free plan. They include MongoDB, PostgreSQL. The free plan also includes free SSL/TLS certificates. You get 1 container per app with 256 MB RAM and 1 GB database storage, which is more than enough for students and hobbyists.
Even the paid plan of $7/month/app is cheap for thos ewho want to avail more features, including use of MS SQL Server. With a plan, you get to use private GitHub repos. With the $20/month plan, you get to use a custom domain, and there are beta signups for that.
To deploy, all you do is check-in your code to a public GitHub repo the standard way. This is way more straightforward unlike Heroku where you would have to customize a lot of things to deploy your web application.
Give Adaptable.io a try if you're on the fence about which [free] cloud provider to switch to.
Firebase is a good alternative to Heroku. It has a number of features that allow a Heroku developers to transition smoothly. The free tier in Firebase is the Spark Plan.
For paid plans, Firebase has pay-as-you-go model (Blaze Plan).
A few of the features of Firebase are scalability, storage, analytics, realtime database and messaging.
OpenShift is run by Red Hat. I have used it a few times. OpenShift is based on Kubernetes. You can build, deploy and scale containerized applications in the cloud.
You can try OpenShift here.
Netlify is a fully managed PaaS that allows you to deploy easily. You can also rollback to any version instantly. The features include dynamic serverless functions.
You can try Netflify here.
CapRover, previously known as CaptainDuckDuck, is a simple PaaS. It is very easy to get started. It is a web manager server and deployment server.
It supports several programming languages, databases and technologies such as NodeJS, Python, PHP, ASP.NET, Ruby, MySQL, MongoDB, Postgres, WordPress.
Internally, CapRover uses Docker, nginx, LetsEncrypt and NetData. It has a CLI for automation and scripting.
You can try CapRover here.
Render is a PaaS with multiple plans. The free tier includes hosting of static websites and very fast CDN. This plan includes 100 GB/month bandwidth and automatic continuous deployment from Git. You get 512 MB RAM with this plan.
With the free plan, you get to use PostgreSQL free for the first 90 days. You also get to use Redis with 25 MB RAM up to 50 connections. Unfortunately, there is no persistence with the free plan.
With the free plan, free web services can use up to 400 free build hours per month.
If you want more services, you have to upgrade to a higher plan.
You can try Render here.
This is a quick review of the PaaS I have tried with their free plans. Some may be outdated or may have newer offerings. If you do know of any PaaS that you recommend, please contact me and I'll add it here. Thank you.
Adios, Heroku. 👋
If you have any questions, please contact me at arulbOsutkNiqlzziyties@gNqmaizl.bkcom. You can also post questions in our Facebook group. Thank you.