Railway vs. Heroku

Summary

Railway is a simple and powerful deployment platform that focuses on giving you and your team a deployment plane that radically increases developer efficiency.

We are alike in the following ways:

  • GitHub repo deployments
  • CLI tooling
  • Built-in databases

We differ in the following:

  • We have an outsized focus on support and developer experience. A highly engaged community and the Railway team stand at the ready to help you scale
  • Resource-based pricing, only pay for what you use.
  • Better developer experience. We offer PR deploys, variable management, rapid builds, and local development flows.
  • And much more...

Background

We humbly know that users have a lot of options when it comes to deploying their workloads.

One prevalent option is Heroku. Heroku became known for one of the easiest ways to deploy code, thanks to opinionated CLI tooling, first-class Ruby support, and built-in integrations such as databases and Salesforce.

Railway is a natural replacement for people looking to move on from Heroku or looking for similar alternatives.

However, one of the most common questions we receive is: How are we different or better than Heroku? We owe a lot to the pioneers that were the founders of Heroku. However, in 2007, Heroku's founding, the state of cloud deployments was much different than what they were today. As a result, their product reflects the context of the state of the cloud was then.

Differences

Builds

Part of the limitations faced by the Heroku team during the early 2010s was the question of how to best ship code.

At the time, the idea of unikernels and Docker didn't take hold until much later. As a result: their build solution, Buildpacks, used mostly complex Bash scripts to introspect into code to build your app.

In the current era of software development, we feel that in some respects, needing to know Docker to ship your app is too much boilerplate for the average developer. But, we still want to offer the developer all the benefits of reproducibility, speed, and ease of use when deploying images, hence why we built our builder called Nixpacks. It's open source (https://github.com/railwayapp/nixpacks), and it's also swift. We detect more languages, builds are faster with the help of intelligent caching, and lastly, builds are reproducible. (A common frustration of Buildpacks). Those moving from Heroku to Railway will find that we support the Heroku CNCF Buildpacks.

Product

We offer a single pane of glass for evolving your infrastructure over time. We are proud of the interfaces we provide, and our users report this is one of their favorite platform aspects.

It's possible to go from zero → 3 services in <30 seconds. Adding new services trivially and meshing them together means you don't need to compromise on architecture because of your infrastructure.

Pricing

Pay only for what you use—no need to size dynos.

Containers scale vertically up to 8 GB/CPU Cores (on DevPlan) and 32 GB/CPU Cores (on Teams Plans), and you only pay per minute.

Did traffic spike for an hour? Only pay for that hour, and no manual scaling intervention is required.

For those who prefer to pay upfront. We offer credit-based Developer plans who wish to load their account with credits.

Develop and Deploy

You can use the CLI to run every service locally, hooking in with your cloud infrastructure. Whenever you use e.g. railway run yarn start in a project with Postgres will automagically inject things like DATABASE_URL etc.

If your changes look good, you can even run railway up from the terminal to trigger a new deployment on demand.

Lifecycle Management

We offer guardrails to prevent new deployments from knocking your app offline, such as Healthchecks. For example, by providing an endpoint for Railway to hit, we will make a series of requests, checking for a 200 OK before we switch deploys to the most recent one.

Want to revert a change? Because we image all builds, you can rollback to an earlier working deploy in just one click.

Support + Community

Railway serves tens of thousands of builders who deploy applications that bring tremendous impact to themselves, their friends, and their customers.

We feel no project, big or small- is never not important. This is our guiding philosophy to our users.

As a result, we make great pains to be very communicative in our support channels, optimistically gather feedback, provide informative docs (this place), and enrich our community to help each other.

Join our community of 5k+ users on Discord who can help, and even chat directly with developers if the community can't solve your problem.

Moving From Heroku to Railway

Getting your app hosted on Heroku moved over to Railway is very simple.

All you need to do is connect your GitHub account, create a new project, and then deploy your repo. We even support Procfiles out of the box. (Caveat: only a single process is supported for now)

If you wanna learn in-depth about our product and the feature discussed here, we have a Getting Started guide.

If you run into any issues, we would be more than happy to answer your questions on our Discord or over email at contact (at) railway (dot) app


Edit this file on GitHub