Ample vs Heroku: where should a Heroku app move in 2026? | Ample

The short version

Heroku is the safer choice for teams already invested in its add-ons, pipelines and Salesforce ties. For a new app, or a Heroku app a coding agent will look after, Ample is the better fit: a free plan with no card and a hard cap, persistent volumes and buckets, and deploys an agent can run alone.

WHO THIS IS FOR

Before you choose

Heroku moved to a sustaining engineering model in February 2026, so many teams are deciding where their apps go next. Ample runs the same kind of app, a web process plus workers with Postgres and Redis, and adds volumes, buckets and agent access.

SIDE BY SIDE

Ample and Heroku side by side

Ample Heroku
Free plan $0 with no card. 2 apps running at once, 2 vCPU, 2 GB memory, 3 GB volumes, 1 GB bucket storage, 2 buckets. None. A payment method is required to create apps; the cheapest dyno plan is Eco at $5 a month.
Paid plans Custom plans priced on volume (number of apps, limits, spending caps). No public list price; see pricing. Eco $5 a month (1,000 shared dyno hours), Basic $7, Standard-1X $25, Standard-2X $50 per dyno.
Spending limit Free has a hard budget ($5 a month, $2 a day). At the cap, apps stop serving until the account is back under budget; nothing is deleted and nothing is billed. No spending cap or alert found; usage is billed in arrears.
How apps run Each app runs as a normal long-running process in its own microVM with its own kernel. Dynos: hardened Linux containers with an ephemeral filesystem, restarted every 24 hours.
Long-running servers and workers Yes. Web services and background workers (--kind worker) run as ordinary processes. Yes. Procfile process types run web and worker dynos; the router needs a first response within 30 seconds.
Languages Node, Python, Go, Ruby, PHP, Java, .NET, Elixir, Rust and static sites, detected from the repository. Ruby, Python, Java, Clojure, Node.js, Scala, Go, PHP and .NET buildpacks.
Docker images No. Ample builds from source; Dockerfile build steps are not run. Yes on the Cedar generation through the container registry.
Databases Managed Postgres, MySQL, Redis and MongoDB, each in its own microVM, created automatically when the code needs one. Heroku Postgres from $5 a month and Key-Value Store (Valkey) from $3; other databases through add-ons.
Object storage S3-compatible buckets, optionally published through Ample's CDN. None first-party; add-ons or external S3.
Persistent disk Persistent volumes attached to the app. None; the filesystem is wiped on every restart.
Custom domains and TLS Custom domains with automatic TLS. Custom domains with automatic certificates, included on all plans.
Regions No region choice. US and EU on the Common Runtime; more regions only in Private Spaces.
Scheduled jobs Scheduled jobs: a command or HTTP request on a cron schedule (any time zone) or interval, with retries and run history (ample job create). Heroku Scheduler add-on: every 10 minutes, hourly or daily, best effort.
Agent access CLI, remote MCP server (OAuth), A2A endpoint and agent skills. Deploys are synchronous and return JSON with an exit code: 0 live, 1 failed, 2 needs input. Remote MCP server at mcp.heroku.com with OAuth, and a local MCP server in early development.
Agent signup without a person Yes. ample auth signup creates an account with no browser, card or CAPTCHA; a person claims it by email within 48 hours. No. Account verification with a card is required to create apps.

Competitor facts come from that company's own pricing pages and documentation, checked on the date shown in the sources. Plans change; follow the source links for current numbers. Heroku announced its sustaining engineering model on February 6, 2026.

FIT CHECK

Which one fits

Choose Ample when

Choose Heroku when

STEP BY STEP

Move a Heroku app to Ample

  1. Export config vars

Save them to a file kept out of git. Drop Heroku-managed ones such as DATABASE_URL and REDIS_URL; Ample creates and injects its own.

   heroku config -s -a <app> > .env.production
  1. Translate the Procfile

The web: line becomes the start command, each other process becomes a worker service (--kind worker), release: becomes --release-command, and Heroku Scheduler jobs become Ample jobs (ample job create).

  1. Deploy

Ample detects the runtime from the repository and creates Postgres or Redis when the code needs them.

   ample deploy . --name <app-name> --public --start "<web command>" --env-file .env.production
  1. Move Postgres

Capture and download a backup, then restore it into the Ample database with pg_restore --no-acl --no-owner.

   heroku pg:backups:capture -a <app> && heroku pg:backups:download -a <app>
  1. Point your domain

Add the domain to the app, update DNS to the target Ample prints, and keep the old app running until the new one answers on the domain.

   ample domain add <app-name> www.example.com

QUESTIONS

Frequently asked questions

Is Heroku shutting down?

No. On February 6, 2026 Heroku said it is moving to a sustaining engineering model focused on stability, security and support, with no new enterprise contracts. Existing customers keep their service and pricing.

Does Ample have a Heroku free tier replacement?

Yes. Ample's Free plan runs 2 apps at once with managed databases, volumes and buckets, needs no card, and stops at a hard budget instead of billing.

Does Ample read my Procfile?

Not directly. Copy the web command into --start (or the plan), and give each worker its own service. The Heroku migration recipes have tested commands for Django, Rails, Express and more.

SOURCES

Where these facts come from