Skip to content
inetGeek

Node.js on Heroku

Heroku publishes its own guide for deploying Node.js.

JavaScript runtime used to run servers and build tooling outside the browser.

01.

What Node.js needs.

Every host claims to run Node.js, so the claim on its own decides nothing. These are the things Node.js actually requires from the platform underneath it, and what Heroku publishes about each. Heroku documents 4 of the 4.

Persistent processes

Supported

A long-running process is the point: WebSocket connections, in-memory caches and job queues all die with it. A host that only runs functions cannot keep one alive.

Sources (1) →
  • Dynos (App Containers) | Heroku Dev Center ↗

    “Worker dynos are typically used to run background jobs, queueing systems, and timed jobs. You can have multiple kinds of worker dynos in your application.”

    Read 2026-09-05 · official docs

Max request duration

30 seconds (initial window for the web process to return response data)

Anything the process does inside a request — a large upload, a slow query, a streamed response — is bounded by this ceiling.

Sources (1) →
  • Limits | Heroku Dev Center ↗

    “HTTP requests have an initial 30 second window for the web process to return response data. It can be either the completed response or some amount of response data to indicate that the process is active. Processes that fail to send response data within the initial 30-second window see an H12 error in their logs.”

    Read 2026-09-05 · official docs

Docker deployment

Supported

Node apps routinely need a system binary the platform's buildpack does not ship. A Dockerfile is the escape hatch when they do.

Sources (1) →

Scales to zero

Limited

An always-on process bills while idle. Scaling to zero removes that cost and adds a cold start to the next request instead.

Sources (1) →
  • Eco Dyno Hours | Heroku Dev Center ↗

    “If an app has an Eco web dyno, and that dyno receives no web traffic in a 30-minute period, it sleeps. In addition to the web dyno sleeping, if you have a worker Eco dyno, it also sleeps. Eco web dynos do not consume Eco dyno hours while sleeping.”

    Read 2026-09-05 · official docs

The requirement and the reason it matters are ours. Every value beside them was read from Heroku's own pages — expand a source to see the sentence it came from.

02.

What Heroku documents.

Heroku publishes its own guide for deploying Node.js.

This article describes how to take an existing Node.js app and deploy it to Heroku.

Sources (1) →
03.

What it costs to run there.

Entry paid plan
$5 per month (Eco dynos plan, 1000 dyno hours shared across the account)
Pricing model
Usage-based on wall-clock time, prorated to the second
When you exceed a cap
Service sleeps: on the Eco plan ($5/month for a 1000 dyno-hour pool, the cheapest paid tier) exhausting the pool forces every Eco dyno on the account to sleep for the rest of the month, and extra hours cannot be bought
Regions
Common Runtime: us (United States), eu (Europe). Private Spaces: Dublin, Frankfurt, London, Montreal, Mumbai, Oregon, Singapore, Sydney, Tokyo, Virginia
Sources (3) →
  • Eco Dyno Hours | Heroku Dev Center ↗

    “The Eco dynos plan provides 1000 dyno hours for $5 per month. This dyno hours pool is shared by all Eco dynos in your account.”

    Read 2026-09-05 · official docs

  • Usage & Billing | Heroku Dev Center ↗

    “Heroku computes usage from wall-clock time, not CPU time. Any dynos scaled above 0 accrue usage, regardless of traffic or activity. Heroku prorates all costs to the second.”

    Read 2026-09-05 · official docs

  • Regions | Heroku Dev Center ↗

    “eu Europe Common Runtime us United States Common Runtime dublin Dublin, Ireland Private Spaces frankfurt Frankfurt, Germany Private Spaces london London, United Kingdom Private Spaces montreal Montreal, Canada Private Spaces mumbai Mumbai, India Private Spaces oregon Oregon, United States Private Spaces singapore Singapore Private Spaces sydney Sydney, Australia Private Spaces tokyo Tokyo, Japan Private Spaces virginia Virginia, United States Private Spaces”

    Read 2026-09-05 · official docs

04.

Whether it suits you.

Teams that want to deploy by pushing to Git and let the platform handle the runtime, with Postgres, a scheduler and Docker deploys available on the same platform.

Consider something else if…

The dyno filesystem is ephemeral, and a web process must respond within 30 seconds of receiving a request.

Written by Palash Bagchi on 2026-09-05. This is a recommendation, not a sourced fact — it carries no citation because it is an opinion.

Visit Heroku documentation