Skip to content

Heroku pricing in 2026: what it really costs

Nick Potts, who builds Ployz. Published .

TL;DR: Heroku's cheapest always-on dyno is $7 a month, and a database adds $5 or more. A typical app with a web dyno, a worker, Postgres and Redis costs $26 a month small, $190 medium and $920 large; the same three apps run on a rented server for $7, $11 and $36.

  • Stay on Heroku if your app fits on Basic dynos and an Essential database, and the bill is under $30.
  • Leave if you've crossed into Standard or Performance dynos, Standard Postgres or Premium Redis. That's where Heroku's RAM prices bite.
  • Pick Render if you want the closest Heroku-style platform with managed Postgres.
  • Pick your own server if you want the medium app at $11 instead of $190.
  • Pick Ployz, which I build, if you want the Heroku workflow on that server: push to GitHub, zero-downtime deploys and a preview environment per pull request, free.

Heroku is a platform as a service owned by Salesforce: you push code, it runs your app on dynos (its containers) and sells Postgres and Redis as add-ons. You pay per dyno and per add-on plan, prorated to the second. Heroku hasn't shut down, and its prices haven't changed since it moved to "a sustaining engineering model" in February 2026.

Heroku prices at a glance

You needPlanPrice/month
A side project that can sleepEco dyno, 0.5 GB, sleeps after 30 minutes idle$5
An always-on appBasic dyno, 0.5 GB, one per process type$7
Two or more web dynosStandard-1X (0.5 GB) or Standard-2X (1 GB)$25 or $50 each
Dedicated CPU and autoscalingPerformance-M (2.5 GB) and up$250 to $1,500 each
A small databasePostgres Essential-0, -1 or -2 (1, 10 or 32 GB)$5, $9 or $20
A database with its own RAMPostgres Standard-0 (4 GB RAM, 64 GB)$50
RedisKey-Value Store Mini (25 MB) or Premium-0 (50 MB)$3 or $15

Every price is from Heroku pricing, checked 2026-10-08. Bandwidth has no per-GB price; it's "soft limited at 2TB per app per month" (Heroku limits), so the bill is dynos plus data add-ons.

What would your Heroku app cost?

Pick the app closest to yours, or customize the dynos and plans. The server row picks the smallest Hetzner server with enough RAM for the same stack.

RAM the stack needs
3.0 GB
  • Heroku$26/mo

    List prices, running all month. Basic allows one dyno per process type, so more than one is priced as Standard-1X. No bandwidth charge under 2 TB.

  • Your own server + Ployz$7/mo

    Smallest Hetzner CX23/CX33/CX43/CX53 with that RAM (1 GB added for the OS, 1 GB counted for Essential Postgres), $0.60 IPv4 each. Ployz is free. Shared vCPUs, not dedicated.

Prices checked 2026-10-08. Pick the closest app, then customize.
LineSmallMediumLarge
Web dynos1 × Basic, $72 × Standard-2X, $1002 × Performance-M, $500
Worker dynos1 × Basic, $71 × Standard-1X, $252 × Standard-2X, $100
PostgresEssential-1 (10 GB), $9Standard-0 (4 GB RAM, 64 GB), $50Standard-2 (8 GB RAM, 256 GB), $200
Key-Value StoreMini (25 MB), $3Premium-0 (50 MB), $15Premium-3 (500 MB), $120
Heroku monthly$26$190$920
RAM the stack usesabout 3 GBabout 7.5 GBabout 16.5 GB
Your own server + Ployz$7 (Hetzner CX23)$11 (CX33)$36 (CX53)

These are three app shapes I picked as typical, not anyone's invoice. The RAM figure adds up what Heroku gives each piece, counts 1 GB for an Essential database (those share RAM) and adds 1 GB for the operating system. It's a sizing rule of thumb, not a benchmark.

The jump from small to medium is mostly a scaling rule. You can't add a second Basic web dyno, so growing past one means Standard at $25 to $50 each. Standard-0 at $50 is the first Postgres plan with dedicated RAM. The hidden costs of PaaS prices the same stack on Render, Railway, Fly.io and Vercel.

How much do Heroku dynos cost?

Heroku's regular dynos cost $5 to $1,500 a month (Heroku pricing). Billing is prorated to the second.

DynoPrice/monthRAMWhat you get
Eco$5 for 1,000 hours, shared0.5 GBSleeps after 30 minutes idle, personal accounts only
Basic$70.5 GBAlways on, one dyno per process type
Standard-1X$250.5 GBHorizontal scaling, preboot and zero-downtime deploys
Standard-2X$501 GBSame, double the CPU share
Performance-M$2502.5 GBDedicated compute, autoscaling
Performance-L$50014 GBDedicated compute, autoscaling
Performance-L-RAM$50030 GBDedicated, memory-heavy
Performance-XL$75062 GBDedicated
Performance-2XL$1,500126 GBDedicated

Private and Shield dynos, which run in a Private Space, cost $125 to $1,800 a month, and the newer Fir dynos also need a Private Space (Heroku pricing). Most apps run on the regular dynos above.

The prices are a monthly maximum. Heroku "prorates all costs to the second" and counts "wall-clock time, not CPU time", so any dyno scaled above zero bills whether it gets traffic or not (Usage and billing). A Basic dyno works out to about a cent an hour.

The scaling rules matter more than the prices. Eco and Basic allow "only one dyno per process type", and Eco caps you at two running dynos in total (scaling limits). The moment you need a second web dyno, you jump from $7 to $25 per dyno. Memory is the expensive part: going from 1 GB (Standard-2X) to 2.5 GB (Performance-M) takes you from $50 to $250.

Two other limits shape apps on Heroku: a web request has 30 seconds to start responding, and detached one-off dynos are cycled every 24 hours (Heroku limits).

How much does Heroku Postgres cost?

Heroku Postgres starts at $5 a month for Essential-0 (Heroku pricing). Standard-0, the first dedicated plan, is $50 with 4 GB of RAM, and high availability starts with the Premium plans.

PlanPrice/monthRAMStorageConnections
Essential-0$5Shared1 GB20
Essential-1$9Shared10 GB20
Essential-2$20Shared32 GB40
Standard-0$504 GB64 GB120
Standard-2$2008 GB256 GB400
Standard-3$40015 GB512 GB500
Standard-4$75030 GB768 GB500
Premium-2 (high availability)$3508 GB256 GB400

Essential plans allow "max downtime 4 hour per month" and a 4,000-table limit. Standard plans add rollback up to 4 days and a 1-hour monthly downtime target (Heroku pricing). Every tier includes scheduled backups: Essential keeps 7 daily and 1 weekly, Standard 7 daily and 4 weekly (Heroku PGBackups). That's real value. On Ployz, you keep a mirror of the database on another of your servers and sync it when you ask.

Heroku now calls these plans "Classic". In October 2026 it added Postgres Advanced, which scales compute from 4 GB to 1,536 GB of RAM separately from storage, with "the first 100 GB" included and extra storage "billed at $0.20 per GB" (Heroku Postgres add-on). Its compute prices aren't published there, and the add-on page says you request access through Heroku Support.

How much does Heroku Key-Value Store (Redis) cost?

Heroku Key-Value Store, the Redis-compatible add-on, starts at $3 a month for 25 MB (Heroku pricing). Per megabyte, it's the most expensive thing on the bill.

PlanPrice/monthMemoryConnections
Mini$325 MB20
Premium-0$1550 MB40
Premium-1$30100 MB80
Premium-2$60250 MB200
Premium-3$120500 MB400
Premium-5$2001 GB1,000
Premium-7$7507 GB10,000

Premium plans come with high availability and failover. Still, $200 for 1 GB of Redis is roughly 28 times what a whole 4 GB server costs.

Why is Heroku no longer free?

Heroku ended its free plans on 28 November 2022: "we plan to stop offering free product plans and plan to start shutting down free dynos and data services" (Heroku blog). The cheapest option today is Eco at $5 a month plus a $5 Essential-0 database.

Eco's $5 buys 1,000 dyno hours a month, shared by every Eco dyno on your account (Usage and billing). A month is about 730 hours, so one Eco dyno can run all month. It sleeps after 30 minutes without traffic, though, so the first visitor after a quiet spell waits for it to wake up. For anything people pay you for, Basic at $7 is the real starting price.

Is Heroku shutting down?

No. On 6 February 2026 Heroku said it is "transitioning to a sustaining engineering model focused on stability, security, reliability, and support." Heroku has still shipped features since then: fine-grained access control in August 2026, team-owned API tokens in September and Postgres Advanced in October (Heroku blog). Heroku says customers "can continue to rely on Heroku for their production, business-critical workloads."

The source is Heroku's own post, An Update on Heroku, by Nitin T Bhat, Heroku's CPO:

WhatWhat Heroku said
Credit card customers, existing and new"can continue to use Heroku with no changes to pricing, billing, service, or day-to-day usage"
Core platform"applications, pipelines, teams, and add-ons, is unaffected"
Enterprise Account contracts"will no longer be offered to new customers"
Existing Enterprise contracts"will continue to be fully honored and may renew as usual"
Where the investment goes"helping organizations build and deploy enterprise-grade AI"

The post gives no end date, and it doesn't promise prices will stay where they are forever. Anyone who tells you when Heroku will close is guessing. I think the useful question is whether you want your app on a platform its owner has moved to sustaining engineering, and that one you can answer today.

"Maintenance mode" also names an app feature. heroku maintenance:on serves a static maintenance page to every visitor while your dynos keep running, and keep billing: "Dynos continue to accrue billing hours while in maintenance mode" (Heroku docs). Worker dynos and Scheduler jobs keep running too. It's how you freeze writes during the migration below.

Is Heroku cheaper than your own server?

No, not at any of the three sizes. The small app is $26 on Heroku and about $7 on a Hetzner CX23, with Ployz free on top. Heroku sells dyno RAM at $14 to $100 per GB a month, and a rented server sells it for about $1 to $2.

ServerSpecsPrice/monthSource
Hetzner CX232 vCPU, 4 GB RAM, 40 GB NVMe, 20 TB traffic$6.49Hetzner price adjustment, Cost-Optimized plans
Hetzner CX334 vCPU, 8 GB RAM, 80 GB NVMe$9.99Same
Hetzner CX438 vCPU, 16 GB RAM, 160 GB NVMe$18.49Same
Hetzner CX5316 vCPU, 32 GB RAM, 320 GB NVMe$34.99Same
Netcup VPS 5002 vCPU, 4 GB RAM, 64 GB SSD, traffic included€8.26 incl. VAT (12-month term)netcup VPS
Netcup VPS 10004 vCPU, 8 GB RAM, 128 GB SSD€14.50 incl. VAT (12-month term)Same

Hetzner prices are after its 15 June 2026 price change, before VAT, plus about $0.60 a month for an IPv4 address. The CX line is in Germany and Finland only. If your Heroku app runs in the US region, Netcup's Manassas datacenter is the cheap option.

The comparison leans my way in three places. Hetzner's CX vCPUs are shared, while Performance-M dynos are dedicated. Heroku Postgres comes with scheduled backups, rollback on Standard and a downtime target; with Ployz you get a mirror that you sync when you ask. And one server is one machine: if it dies, you restore the database from its mirror on another server. Even so, at the medium size you could rent two CX33s and still pay about a ninth of the Heroku bill.

I've paid for convenience before: about $600 for my first month on Laravel Cloud, then $500+ a month on Railway, mostly for a busy database. Today one dedicated server at €80 a month runs more than I ever ran on Railway.

How to move a Heroku app to your own server

Rent a server, install Ployz, recreate each Procfile process as a service, then copy the database behind heroku maintenance:on and switch DNS. For a small app with a few GB of data, the downtime is the length of a pg_dump and restore. Everything else happens while Heroku is still serving.

  1. Write down what you run. heroku ps shows your process types, heroku addons your data services, and heroku config --shell your config vars. The Procfile tells you each process's start command, and a release: line is your migration step.

  2. Set up the server. Rent a Netcup or Hetzner server and run this from your laptop:

    ployz up --server root@your-server

    It installs Ployz over SSH on any Linux server with systemd, builds your app and gives it an HTTPS address. It needs a Ployz Cloud sign-in.

  3. Turn the Procfile into services. Each Procfile line becomes a service built from the same GitHub repo. Node, Python, Ruby, PHP, Go, Rust, Java and Elixir build without a Dockerfile. If a process needs a different start command than your build picks, set the service's Start command, like bundle exec sidekiq. Your release: command becomes a pre-deploy command, which runs migrations before each deploy. Add a health check to the web service so deploys are zero-downtime.

  4. Add Postgres and Redis. Both are one click. They're regular services with a volume, reachable from your app by private DNS name. Treat Redis as disposable: start empty if it's a cache, and let the workers drain the queue on Heroku before cutover if it's a job queue.

  5. Copy the config vars. Paste them into the dashboard as variables or sealed secrets. Set DATABASE_URL and REDIS_URL as references to the new services, like ${{ postgres.DATABASE_URL }}. If your app forces SSL on the database connection, check that setting against the new database.

  6. Copy the database. Turn on heroku maintenance:on, scale your workers to zero, then run the commands from Heroku's import and export guide:

    heroku pg:backups:capture --app example-app
    heroku pg:backups:download --app example-app
    pg_restore --verbose --clean --no-acl --no-owner -h <host> -U <user> -d <db> latest.dump

    The new database has no public address, so forward a port first with ployz service port-forward postgres 5432:5432 and restore to 127.0.0.1; the docs show how to get the password. Use a pg_restore at least as new as the Postgres version on Heroku, or the restore fails with an unsupported-version error. --no-owner and --no-acl drop Heroku's role names, which don't exist on your server.

  7. Swap review apps for preview environments. Heroku review apps bill like normal apps, prorated to the second, charged to whoever connected GitHub (review apps docs). Ployz gives every pull request a preview environment with its own HTTPS address on your servers, with no per-preview charge.

  8. Switch DNS. Lower the TTL a day ahead, add your domain in Ployz (custom domains are free), and create the DNS record the docs list. Keep the Heroku app around for a few days before you delete it.

What do you give up when you leave Heroku?

Mainly the managed parts: Postgres backups and rollback, autoscaling on Performance dynos, and built-in metrics and alerts. What I'd do for each:

Heroku gives youOn your own server
Postgres backupsA mirror on another of your servers, synced when you ask. Restore from it if a server dies, or move the database there in seconds.
AutoscalingSpare room instead, which is all most apps need. The medium app's 7.5 GB fits on an 8 GB box, and 16 GB is $18.49.
Metrics and alertsAn outside uptime check plus your existing error tracker covers most small apps.

If that's more than you want to own, another PaaS is a fair choice. Railway alternatives prices Render, Fly.io, Heroku and others on one app, Render pricing goes deeper on the closest Heroku-style platform, and Fly.io pricing covers the per-Machine option.

Where Ployz fits

Ployz gives your own server the Heroku workflow, and it's free on your own servers. I built it because I wanted a slick dashboard with no Kubernetes and no control plane to babysit, without being stuck on one server.

What it does for someone leaving Heroku:

  • Push to deploy. Push to GitHub and Ployz builds on your server, or in your own GitHub Actions, with no Dockerfile for most languages and no registry.
  • Procfile processes as services, with pre-deploy commands for your release: step.
  • Zero-downtime deploys once you set a health check.
  • Preview environments for every pull request, in place of review apps, and a staging environment whose changes save back to production.
  • One-click Postgres and Redis with Heroku-style variable names like DATABASE_URL and REDIS_URL.
  • Database backups and moves. Ployz keeps a mirror of the database on another of your servers and syncs it when you ask. Restore from it if a server dies, or move the database there with seconds of downtime.
  • More servers with one command when one isn't enough, with up to 50 replicas per service.
  • A CLI a coding agent can drive. ployz setup agent installs a skill for agents like Claude Code, and every command takes --json.

It has no metrics or alerts yet, and GitHub is the only Git host.

Move your Heroku app to your own server with Ployz, free.

FAQ

What is the cheapest Heroku plan?

Eco dynos at $5 a month for 1,000 shared hours, which sleep after 30 minutes idle. Add a $5 Essential-0 Postgres and the cheapest app with a database is $10. For anything that must stay awake, Basic at $7 is the floor.

Did Heroku raise prices in 2026?

No. Heroku's February 2026 post says credit card customers continue "with no changes to pricing, billing, service, or day-to-day usage."

Can I still sign up for Heroku?

Yes, with a credit card. Only new Enterprise Account contracts stopped.

Does Heroku charge for bandwidth?

No, there's no per-GB price. Bandwidth is soft-limited at 2 TB per app per month.

Is Heroku cheaper than DigitalOcean?

No. A DigitalOcean Basic Droplet with 2 vCPUs and 4 GB of RAM is $24 a month (DigitalOcean pricing), while $50 on Heroku buys one 1 GB Standard-2X dyno. A Droplet is a bare server, though, so you run the app, the database and its backups yourself. DigitalOcean pricing covers its managed databases and App Platform.

What are the best Heroku alternatives?

Your own server for anything past one dyno, Render for the closest Heroku-style platform with managed Postgres, and Railway if your services sit idle most of the day. Heroku itself is still fine for a small app on Basic dynos that you don't expect to grow.

How I checked

I checked every price on 2026-10-08 on Heroku's, Hetzner's, Netcup's and DigitalOcean's own pages, linked next to each number. Prices are USD before tax unless marked; Netcup's include 19% German VAT. The three app sizes are shapes I picked, and the RAM figures are a sizing rule of thumb, not a benchmark. I didn't migrate a Heroku app for this article; the steps come from Heroku's and Ployz's docs. I build Ployz, so weigh its section with that in mind.

Run your Heroku app on your own server with Ployz, free: get started.

Run the same app on a server you rent. Ployz is free on your own servers.

Deploy your app