Where can you host a Node.js or Express app?
On a Frontend pack: connect the GitHub repository, the Node app is detected from package.json, and it runs as a long-lived server with its own CPU, memory and disk. Because it is a real server and not a function, WebSockets, background timers, queues and long requests all work. One flat price covers the pack; traffic is not metered and each push to the branch deploys.
Step by step
- 1
Check the start script
package.json needs a start script, and the server must listen on the port in the PORT variable and on all interfaces, not only localhost.
server.js
const port = process.env.PORT || 3000; app.listen(port, "0.0.0.0"); - 2
Deploy the repository
Dashboard → Deployments → New: select the repository, a branch and a pack. The order creates an invoice and the build starts once it is paid.
From an agent over MCP
deploy → price + approval link, then get_status until the site is running - 3
Add variables and a database
Set secrets on the Environment tab. If the app needs PostgreSQL, MySQL, MongoDB or Redis, create a database pack and set its connection string on the site.
Variables are read at build time, so the site rebuilds after you change them; the current version keeps serving until the new build is ready.
- 4
Attach the domain and check the API
Site → Domains tab → enter the domain and create the DNS record it shows. Then call one endpoint; http_check over MCP does it and reads the logs if it fails.
What breaks, and the fix
- 502 after deploy
- The server is listening on a different port or only on localhost. Listen on PORT and 0.0.0.0, or set the port with set_app_port.
What it costs
- A Frontend pack from $1/mo; $5/mo for the pack most production apps pick (1 vCPU / 4 GB / 25 GB).
- A database, if you need one, from $10/mo.
App
$1/mo
Starter Frontend pack, 1 vCPU / 1 GB RAM / 10 GB
Database, users and files
$5/mo
Smallest dedicated Supabase pack; several projects fit on one
Questions
Do WebSockets work?+
Yes. The app is a long-lived server, so socket.io and plain WebSocket connections stay open.
Does the app sleep when idle?+
No. The pack runs all the time.
Can I control the Node version or the image?+
Yes. Add a Dockerfile to the repository and it is used for the build instead of the detected setup.
Can I run a worker beside the API?+
Deploy the worker as a second site from the same repository, or use a Cloud Instance when you want several processes on one server.
Can I use Bun, NestJS or Fastify?+
Yes. Anything that starts from package.json and listens on the given port deploys the same way.
What does it cost?+
From $1/mo, flat for the term.