# Best Node.js hosting

Canonical: https://inetgeek.com/stacks/nodejs/

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

8 providers on this site publish their own Node.js documentation. Ordered by how they document it — a dedicated guide first, a generic path second. There is no score: the ordering is the evidence.

## Where you can deploy it

| Provider | Documented | Deployment | Entry paid plan |
| --- | --- | --- | --- |
| Fly.io | Dedicated guide | Docker | Not documented |
| Google Cloud Run | Dedicated guide | Git · Docker | No plan fee and no minimum commitment. Cloud Run bills per vCPU-second, GiB-second and request once the monthly free allowance is used, so there is no entry price to compare, only a rate card. Recorded without a magnitude for that reason. |
| Heroku | Dedicated guide | Git · Docker | $5 per month (Eco dynos plan, 1000 dyno hours shared across the account) |
| Railway | Dedicated guide | Git · Docker | $5 / month (Hobby) |
| Render | Dedicated guide | Git · Docker | Not documented |
| AWS Amplify | Generic path | Git | No monthly minimum — Amplify Hosting is billed per unit. A representative month for one small app, priced at Amplify's published rates: 100 build minutes ($1.00), 5 GB stored ($0.11), 100 GB served ($15.00), with SSR requests inside the free 500,000 — about $16.11. Our arithmetic on Amplify's rates, not a price Amplify quotes, and it moves with traffic: egress is 93% of it. Recorded without a magnitude for that reason. |
| Netlify | Generic path | Git | $9/month for 1,000 credits/month |
| Vercel | Generic path | Git | $20 per developer seat / month (Pro) |

## The detail

### Fly.io

Runs Docker images as lightweight VMs in chosen regions, billed on provisioned resources rather than plan tiers.

- Documentation: https://fly.io/docs/js/
- Provider profile: https://inetgeek.com/hosting/fly-io/
- Node.js on Fly.io: https://inetgeek.com/stacks/nodejs-on-fly-io/
- background_workers: Supported ([source](https://fly.io/docs/blueprints/work-queues/))
- ssh_shell_access: Supported ([source](https://fly.io/docs/flyctl/ssh/))

### Google Cloud Run

Google Cloud service that runs container images as request-driven services, scaling instances automatically and down to zero between requests.

- Documentation: https://docs.cloud.google.com/run/docs/deploying-source-code
- Provider profile: https://inetgeek.com/hosting/google-cloud-run/
- Node.js on Google Cloud Run: https://inetgeek.com/stacks/nodejs-on-google-cloud-run/
- websockets: Supported ([source](https://docs.cloud.google.com/run/docs/triggering/websockets))
- configurable_request_timeout: Supported ([source](https://docs.cloud.google.com/run/docs/configuring/request-timeout))
- background_workers: Supported ([source](https://docs.cloud.google.com/run/docs/deploy-worker-pools))

### Heroku

Managed application platform that runs apps in containers called dynos, deployed from Git or Docker images, with add-on services such as Heroku Postgres.

- Documentation: https://devcenter.heroku.com/articles/deploying-nodejs
- Provider profile: https://inetgeek.com/hosting/heroku/
- Node.js on Heroku: https://inetgeek.com/stacks/nodejs-on-heroku/
- websockets: Supported ([source](https://devcenter.heroku.com/articles/node-websockets))
- background_workers: Supported ([source](https://devcenter.heroku.com/articles/background-jobs-queueing))
- configurable_request_timeout: Not supported ([source](https://devcenter.heroku.com/articles/request-timeout))
- ssh_shell_access: Supported ([source](https://devcenter.heroku.com/articles/exec))

### Railway

Application platform that builds services from a repository or Dockerfile and bills plan fees that include usage credits.

- Documentation: https://docs.railway.com/guides/deploy-node-express-api-with-auto-scaling-secrets-and-zero-downtime
- Provider profile: https://inetgeek.com/hosting/railway/
- Node.js on Railway: https://inetgeek.com/stacks/nodejs-on-railway/
- websockets: Supported ([source](https://docs.railway.com/networking/public-networking/specs-and-limits))
- background_workers: Supported ([source](https://docs.railway.com/guides/cron-workers-queues))
- ssh_shell_access: Supported ([source](https://docs.railway.com/cli/ssh))

### Render

Managed cloud platform that builds and runs web services, background workers, static sites and databases from Git repositories or Docker images.

- Documentation: https://render.com/docs/deploy-node-express-app
- Provider profile: https://inetgeek.com/hosting/render/
- Node.js on Render: https://inetgeek.com/stacks/nodejs-on-render/
- websockets: Supported ([source](https://render.com/docs/websocket))
- background_workers: Supported ([source](https://render.com/docs/background-workers))
- ssh_shell_access: Supported ([source](https://render.com/docs/ssh))

### AWS Amplify

AWS service for hosting full-stack web applications with a Git-based continuous deployment workflow, server-side rendering support, and delivery via the AWS content delivery network.

- Documentation: https://docs.aws.amazon.com/amplify/latest/userguide/deploy-express-server.html
- Provider profile: https://inetgeek.com/hosting/aws-amplify/
- Node.js on AWS Amplify: https://inetgeek.com/stacks/nodejs-on-aws-amplify/

### Netlify

Platform for building and deploying web projects from Git to a global CDN, with serverless and edge functions.

- Documentation: https://docs.netlify.com/build/frameworks/framework-setup-guides/express/
- Provider profile: https://inetgeek.com/hosting/netlify/
- Node.js on Netlify: https://inetgeek.com/stacks/nodejs-on-netlify/
- background_workers: Limited ([source](https://docs.netlify.com/build/functions/background-functions/))

### Vercel

Frontend cloud platform for modern web applications, with Git-driven deployments and a framework-aware CDN.

- Documentation: https://vercel.com/docs/functions/runtimes/node-js
- Provider profile: https://inetgeek.com/hosting/vercel/
- Node.js on Vercel: https://inetgeek.com/stacks/nodejs-on-vercel/
- websockets: Limited ([source](https://vercel.com/docs/functions/websockets))
- configurable_request_timeout: Supported ([source](https://vercel.com/docs/functions/configuring-functions/duration))
- background_workers: Limited ([source](https://vercel.com/docs/queues))
