Heroku

Container platform for building and running apps

Categories

Visit Website

Heroku is compared in:

Web
  • Ship with a single command and no infrastructure config
  • Free and hobby plans were retired in November 2022
  • Hundreds of managed data and monitoring add-ons
  • Language support through buildpacks for Node, Python, Ruby, Go and Java

Pricing

No free tier since November 2022. Eco and Basic plans suit small apps at a low fixed monthly cost, while Professional plans charge per dyno type and hour with additional fees for private spaces, managed Postgres tiers and add-ons. Current figures are published on the vendor pricing page.

Tags

  • paas
  • hosting
  • deployment
  • dynos
  • addons
  • postgres
  • salesforce

Key Features

Dynos and Buildpacks

Run processes in managed containers with language support chosen by buildpack.

Managed Data Services

Provision Heroku Postgres, Kafka and Redis without operating them yourself.

Release Pipelines

Promote code through review, staging and production with review apps per pull request.

Overview

Heroku is the platform that taught a generation of developers how to deploy software. Launched in 2007 and acquired by Salesforce in 2010, it established the pattern of pushing code to a Git remote and having a working application appear, with the operating system, runtime, scaling and process supervision handled by someone else. Its vocabulary entered the industry: dynos for the containers that run your processes, buildpacks for the language detection and compilation layer, and a config-var approach to environment-specific settings that anticipated the twelve-factor app methodology Heroku's own engineers wrote down.

The execution model is still the core idea. An application is a collection of process types declared in a Procfile, such as web, worker and clock. Each process type runs in one or more dynos, which are containers on Heroku's infrastructure. A git push, or a build triggered from CI, or a container image pushed to Heroku's registry, produces a new slug or release that is rolled out with zero-downtime deployment and can be rolled back instantly. Dyno types differ in memory and CPU, and there are dedicated options for compute-heavy workloads. Scaling is a matter of changing the number and size of dynos, either manually, through an API, or automatically based on metrics.

Language coverage comes from buildpacks. Official buildpacks exist for Node.js, Python, Ruby, Go, Java, PHP, Scala and Clojure, and a large community supplies others. This makes Heroku unusually polyglot for a platform-as-a-service, and it means an application can be written in whatever language the team knows without a container migration project. Docker support exists for teams that prefer to build images themselves.

The add-on marketplace is the other half of the value proposition and arguably the part that has aged best. Heroku Postgres is a genuinely well-regarded managed database with tiered plans, continuous protection, point-in-time recovery, read replicas, connection pooling through PgBouncer and a data cloner for copying production data to staging. Heroku Redis and Heroku Kafka provide managed caching and streaming. Beyond first-party services, the marketplace includes third-party add-ons for monitoring, logging, search, email delivery, payments, machine learning and DNS, all billed on the same invoice as the platform. Consolidated billing across infrastructure and a dozen SaaS tools is a real administrative benefit for a small company.

Operations tooling includes release phases that run migrations before a new version takes traffic, review apps that spin up an isolated instance of the application for each pull request so changes can be tested against real data structures, runtime log drains to any aggregation service, metrics endpoints, one-off dynos for running rake tasks or debugging sessions, and an app-level scheduler for cron-style jobs. Access control integrates with GitHub and with organisational teams, and enterprise tiers add private spaces with network isolation, IP allow-listing, single sign-on and compliance certifications.

The competitive landscape has moved considerably. Render, Railway and Fly.io offer modern container-based platforms with faster build systems, more predictable pricing and, in Fly's case, global distribution and persistent volumes. AWS Elastic Beanstalk, App Runner, ECS and Lambda cover the same ground inside the largest cloud, with more knobs and lower unit costs. Google Cloud Run and Vercel serve the serverless and frontend end. Platform.sh, Coolify, Dokku and CapRover appeal to teams that want to self-host the platform layer. Kubernetes is what Heroku avoids entirely, and for many organisations that avoidance remains worth paying for. Heroku's differentiator today is maturity, the Postgres offering, the add-on marketplace, Salesforce ecosystem integration and the sheer volume of documentation and community knowledge about how to run something there.

Pricing is the most important thing to understand, because it changed fundamentally in November 2022 when Heroku removed its free tier and its low-cost hobby plans. There is no free way to run an application on Heroku any more. Eco and Basic plans offer cheap entry points for small applications with limits on dyno hours and features, and applications on Eco sleep when idle. Professional plans charge per dyno per hour based on dyno type, so a web process running continuously is a predictable monthly cost multiplied by the number of dynos. Heroku Postgres is billed separately by plan tier, and add-ons are billed separately by their own pricing. Private spaces, which provide network isolation, carry a substantial additional hourly cost. The consequence is that Heroku is no longer the cheapest way to learn deployment, and a continuously running production application with two web dynos, a worker, a mid-tier Postgres and a few add-ons costs meaningfully more than the equivalent on a newer platform. Current figures are published on the vendor pricing page.

The limitations are worth stating plainly. The absence of a free tier removes the on-ramp that made Heroku ubiquitous in tutorials and student projects. Dyno filesystems are ephemeral, so anything written to disk disappears on restart, which forces external storage for uploads. Continuous dyno pricing at scale becomes expensive relative to containers on your own infrastructure or to newer platforms with different billing granularity. Cold start behaviour on Eco plans and the sleeping of idle applications makes the cheapest tier unsuitable for latency-sensitive production use. Build times for large applications can be slow compared with modern caching build systems. The platform is opaque about underlying infrastructure, which limits tuning. Being part of Salesforce means the roadmap is oriented toward Salesforce customers, and independent developers have less influence than they once did. And the interface and workflow, while stable and well documented, feel dated next to competitors.

Heroku fits small and mid-sized teams that want to run a polyglot application without operating infrastructure, companies already inside the Salesforce ecosystem, products where Heroku Postgres quality and its tooling justify the premium, and organisations that value an established platform with compliance certifications and a large add-on marketplace over the lowest unit cost. It fits internal tools, prototypes with a budget, and applications where developer time is much more expensive than compute. It does not fit hobbyists and students who need free hosting, high-traffic services where per-dyno pricing dominates, teams that need persistent local storage or long-running processes, or anyone who wants fine control over networking and infrastructure.

In the closing comparison, choose Heroku when you value operational maturity, a strong managed Postgres, consolidated add-on billing and a workflow that has been stable for well over a decade, and when you accept paying for it. Choose Render or Railway when you want a modern platform-as-a-service experience at a lower price with a free or cheap entry point. Choose Fly.io when global distribution and persistent volumes matter. Choose Cloud Run, App Runner or containers on Kubernetes when your traffic volume makes unit cost decisive and you have the engineering capacity to operate it. Choose Vercel or Netlify when the workload is frontend and edge. Heroku is no longer the default first place to deploy, but for a team that wants a boring, well-documented platform with excellent Postgres and one invoice, it still earns its price.

Slava Shevchenko
Reviewed by Slava Shevchenko Frontend developer ยท Updated October 2026

Affiliate disclosure: This page may contain affiliate links. If you purchase through an affiliate link, ToolDB may earn a commission at no additional cost to you. Affiliate relationships do not change our ratings. Learn more