by

John Yoost on

Recommendation

For small start-ups/teams Render or Railway are recommended. Support and onboarding assistance were of a higher quality than I experienced with the other managed hosting solutions. Even if you are already a Heroku user, give them a try.1

For medium-sized start-ups/teams the recommendation is for the Digital Ocean App Platform (DOAP) or Fly.io. Both now offer better value than Heroku, and are sufficiently well-documented that a team with a DevOps / managed services ace won’t be flummoxed for an unreasonable amount of time. If you are a medium to large team/start-up with Heroku experience then these might be less of a slam dunk unless your focus is on savings, DOAP, or app performance, Fly.io.

Either way, for most Heroku users I recommend you consider Render, Railway, or DOAP to get better support and save money. They all work the same way, and if you understand Heroku, the learning curve will be gentle. If you are using AWS, GCP, or Azure you’ll wonder why you haven’t tried one of these options earlier.

Editor’s Note: For startups with a lot of credits to AWS, GCP, or Azure2 these can be worth some engineering time investment, especially if compute is a major cost, but also offer tradeoffs with lock-in and lost speed as you have to learn a new managed service paradigm. Support will be better if you reach out via the help line provided via the group that got you the credits, and additional discount/free compute can flow if you’re growing and willing to cultivate a relationship with support/solutions teams.

Introduction

It seems like 20 years ago the word hosting brought to mind a party of some sort. Today, for those of us who work with computers, it conjures up a different, less festive idea. Devops have matured. CI/CD pipelines and git auto deploys are here to stay, where one click of a button does what used to take all night or years of saved scripts and playbooks. Although there is a movement towards “self hosting” or a hybrid of cloud and self-hosted infrastructure, it has not quite coalesced in a way that makes it accessible to businesses that lack at least one expert DevOps stakeholder.

This report focuses on the quality and ease of use for setting up continuous integration/continuous deployment (CI/CD) pipelines3 It is the process of getting code that has been written by an engineer tested and then deployed to production. If you are already using one of the big three hosting providers, Azure, Google, or AWS, and are locked in with certified staff and accompanying complexity, then this post is not for you. That said, if you’d like to avoid those platforms and have the luxury of doing so, then read on.

For most start-ups the big three platforms represent significant overinvestment in sys admin time and can be an un-economical choice even with the abundance of credits and onboarding support: remember you still pay in engineering time even if the servers seem free.4 This report evaluates six managed hosting platforms that provide comparable hosting infrastructure and cheaper, reliable, and just-as-accessible platforms that are simple enough for a developer without extensive sys admin experience to use.

All platforms were evaluated on ease of use, documentation, price, speed, and the quality of their support, documentation, and community presence.

Even if you chose one a large enterprise platform to start, and struggle to manage your services with a small or untrained staff, it is not too late to bail and recover some weekly engineering hours/dollars. Larger hosting services have a tendency to increase in complexity as time goes on, due to the incredible still-incredible margins of selling software at scale, platform changes documented or undocumented.5 This complexity can often trigger breaking changes as major engineering adjustments for scale or cost start to emerge. Smaller hosting companies are more responsive to breaking changes6 and their customers.

Methodology

All six platforms were tested by deploying and configuring a Django project 7. It uses close to 512 MB of memory and requires a Postgres database. For added complexity, it also has a NodeJS build step that generates two minified .css files and 2 minified .js files for production. It deployed easily on five of the six platforms with no code changes.

All six platforms have the same basic structure for deployments. You use a dashboard to link to your Github or Gitlab account, provision a database, set your environment variables, and go. If you’re familiar with one managed hosting service you’ll have a basic understanding of them all.

Tools & Comparison

The six managed hosting platforms compared are Heroku, DigitalOcean App platform, Render, Railway, Fly.io, and Porter.

The first four provide similar ease of use and documentation. Fly.io was difficult to use, taking the longest to get an app to deploy. Porter is the only platform that I would not recommend to most teams because of its complexity, however invisible to most it may be.8 Render shines in speed of deployment and provides good support when you need it.

In contrast, Heroku and DigitalOcean, more well-known brands, both offer variable-quality support that leans on community contributions. If you do reach out to corporate you can expect to get involved with at least one clueless tech 9 that doesn’t know the answer to your question and can’t fix your problem. If you use Heroku or DOAP you’ll often end up figuring it out on your own10 before support gets back to you.

If your alternatives are wading through a larger platform's offerings it makes sense to try out any of these five options and run a dev/staging environment alongside your current environment until you feel safe switching to production.

At first, all six platforms have about the same cost structure, however, Heroku costs can jump with a production app. I’ve had experiences where the move from Heroku to DigitalOcean led to a 66% decrease in cost from four to three figures. The new setup also featured faster deploy and resources for higher load.

Heroku

Of the six, Heroku is the oldest and largest managed hosting platform. This gives it an advantage in the way of market recognition and community support. The biggest tradeoff for these advantages is its significantly higher cost.11

Digital Ocean App Platform

As a now public company DigitalOcean has the next best name recognition, and the App Platform is new relative to their Droplet products, so it is not as well documented and lags in community support. However, if you’re willing to wade through thornier web searches to troubleshoot it’s a much better value for the money than Heroku.12

Render

Render is a recent start-up founded in 2019. When doing my test deployment I had a problem running it on the free tier. Support proved its worth when I went to the chat button and my problem was solved within thirty minutes by a knowledgeable professional!

Railway

Railway is another recent start-up (2020). The test deployment was smooth except for a small issue that required support. I was directed to go to the Discord link to get help. Once there I got a quick reply.

Fly

Fly.io seems like it’ll be great if they can resolve some of the onboarding bugs. App deployment on their platform, requires some more steps than just futzing with a dashboard. They require you to use a command line tool that adds a fly.toml file to your project where the managed hosting configuration takes place.

If it were not for the high quality of the community-based support, the contents were well-organized and prompt to answer new questions, I’d have given up before I got the test app deployed. Between setup, editing, and support it took more than 24 hours of elapsed time to get the test app deployed on the platform. A bit better documentation during the onboarding, or help in the form of a savvy chat bot, to resolve issues within minutes, not hours, could significantly improve the overall user experience.

Porter

Porter13 is not recommended because while there are some nifty features to their K8 based setup it will be overkill in terms of time and cost for the vast majority of teams when compared to the other services. The pricing cliff is also meaningful: it’s free for a single user and it jumps to $200/mo for up to three team members. Additionally, you’ll be paying ~$100/month on Digital Ocean resources. Support is slower than the other options, the help chat took twelve hours to get back to me. When they did, I was told that unless I was on their paid plan I had to go to Discord for help. It’s tough to get charged to avoid diving into a deeper rabbit hole! Especially after waiting that long.

For Next Time

Flight Control - currently in closed testing, to be included in a future "PaaS on cloud stacks" article Mass Driver - to be included in a future "PaaS on cloud stacks" article Argonaut - to be included in a future "PaaS on of cloud stacks" article Nullstone - to be included in a future "PaaS on cloud stacks" article Code Now - to be included in a future "PaaS on cloud stacks" article Dokku - to be included in a "PaaS on cloud stacks" article

Further Discussion

This HN Thread on Switching Off Heroku