You may have heard that Heroku will be discontinuing free plans and removing inactive apps from their platform. This news was announced just recently and you can read more about it in my post from few days ago - No More Free Heroku Plans. Heroku has made a business decision, and I hope it works out for the platform as intended. I do like Heroku and will continue using its paid plans. It is super easy to use and has been reliable so far. However, I have no plans to upgrade some of my apps running on a free plan to a paid one yet. Instead, I want to see what other alternatives are available, and it looks like there is no shortage of alternatives.
The first alternative I came across is Render. I am planning to try other alternatives as well, just to see how various platforms compare in regards to difficulty of app deployment, initial configuration, and how reliable they are. The reason I chose to try Render first is because it looked like it was designed to compete with Heroku. They do offer free plan with limited bandwidth, and also offer paid plains. They claim their paid plans are more affordable than Heroku and we can get more computing power for less. Interesting.
My initial goal is to move all apps running on Heroku free plan, before they stop working. I was surprised to see how the moving apps from Heroku to Render is super easy. No additional configuration was needed. Just like on Heroku when deploying apps we need to connect to the GitHub repository where all the code is.
First we need to sign up on Render, which takes about a minute or less. Once verification is done and account is created, we are ready to deploy an app. On Render dashboard there is a big button - [New +]. Clicking new give multiple options for the app we are trying to deploy. The one we are interested in is Web Service, because we want the app to run on a web browser. The next step is connecting to the GitHub repository. After connecting to our Github repo, we are ready to deploy the app. We choose a unique name, can be the same name used on Heroku, if available. The last thing we need to do before building and deploying the app is provide Start Command. I didn't have to do this on Heroku. Instead the command would be stored in a procfile in GitHub project. I just copied the command from the procfile and used the same. It worked without any issues.
I tried two different start commands and both worked without any issues:
- sh setup.sh && streamlit run myapp_streamlit.py
- streamlit run myapp_streamlit.py
After the app is built Render provides a link to the app, it would be something like this myapp.onrender.com. I have not tested a lot yet. Some of the apps I already migrated are working ok. It does seem like Render apps a little bit slower, but not too noticeable. Render offers four regions to choose from: Oregon for US West, Frankfurt for EU Central, Ohio for US East, and Singapore for Southeast Asia. I chose the one closest to my location.
So, far I like how easy it was to deploy apps on Render and how they offer free plans. I will explore more how this platform works as well as exploring other alternatives. Have you used Render? What are your experiences with it. Let me know in the comments.