Skip to content

Node.js hosting from package.json to live.

Push to GitHub. We read package.json, pick your Node.js version and package manager, run your build, and start your app with the command it already has. Every deploy waits for the new version to answer before visitors see it.

  • Node.js22 and 24
  • FrameworksNext.js, Nuxt, Express and more
  • Port8080, in PORT
  • Priced byWhat it uses

We read your code, so you don't write a build script.

Every build shows what we found and each command we ran, line by line. Anything we found, you can change in the app's settings.

FileWhat we do with it
package.jsonYour framework from its dependencies: Next.js, Nuxt, Remix, SvelteKit, Astro, NestJS, Express, Fastify, Koa or Hono. Its build and start scripts, and the Node.js version in its engines field.
.nvmrcThe Node.js version you use. Without it, the version in package.json, or the newest we offer.
package-lock.jsonnpm ci. A pnpm-lock.yaml means pnpm, and a yarn.lock means Yarn. Dev dependencies are installed too, because builds need them.
tanzahost.jsonOptional: the version, system packages, and the install, build and start commands.

It starts the way you start it.

Your app listens on the port in PORT, which is 8080. NODE_ENV is production, for the build and for the app.

  • A start script first

    With a start script, we run it, like npm run start. Next.js without one starts with next start, and Nuxt with its built server.

  • Or the file that starts it

    Otherwise the main field of package.json, or server.js, server.mjs, index.js, app.js or main.js.

  • A site with no server

    A package with a build script and nothing to start is a static site: we build it and serve what it made.

Deploys that never take you down.

The new version starts beside the old one. Visitors switch only once it answers its health address, “/” unless you choose another.

  • Before going live

    One command per deploy, like npx prisma migrate deploy, run before the switch. If it fails, the old version keeps serving.

  • Variables at build time too

    Variables are encrypted and given to the build as well as the app, so Next.js and Vite can build them in.

  • Roll back in one click

    The build before the live one, deployed again without downtime.

Workers, tasks and a database next door.

Add what a real app needs beside its web process, each with the app's code and variables.

  • Up to 5 workers for queues and background jobs, and up to 10 scheduled tasks, as often as every minute.
  • PostgreSQL with connection pooling, MySQL or Valkey in the same project: attaching one adds DATABASE_URL or REDIS_URL to your variables.
  • Logs live, a terminal in your browser, and the numbers for memory, processor and requests.

Node.js 22 and 24.

We use the newest version that meets what your code asks for, or the one you pick in the app's settings. The next build uses it.

  • Node.js 24Recommended
  • Node.js 22Supported

Node.js 22 gets security fixes until 30 April 2027. A version past its end of life shows a warning and the date it's removed.

A Node.js app, priced in the open.

Say an Express API holds 0.15 GB of memory and uses 2% of a processor, awake all month. You pay for that use, hour by hour, from your wallet. The limits you set cost nothing by themselves.

reading today's prices

Reading the prices
Do I need to change my code?
Usually not. Listen on process.env.PORT, commit your lock file, and keep .env out of your repository. Next.js's start already reads PORT.
Can I use Bun?
Not yet: with a Bun lock file, we install your packages with npm, and the build says so.
Does my app keep files it writes?
Only in its permanent folders, which you choose in the app's settings. Everything else is fresh on each deploy, so keep data in a database.
Can it sleep when nobody visits?
Yes, if you turn it on: after 15 minutes without visitors it sleeps, and the next visit wakes it. Keep a business website always on.