New to Rust? Grab our free Rust for Beginners eBook Get it free →
Best Free Node.js Hosting Providers: Heroku Alternatives

The deploy form asks for a start command, and suddenly “free Node.js hosting” feels less straightforward than the price tag suggests. I wanted to see how much the answer changes when a platform runs a persistent server versus code triggered by a request.
Once you know which kind of work your app does, comparing offers becomes a more useful decision than comparing labels. It helps to begin with what each host actually runs.
What free Node.js hosting means
A Node.js host runs your server-side JavaScript process and routes web requests to it. A free plan may run that process continuously, start it only for a request, or host only the generated frontend files, and those are different jobs.
If your app needs Express to stay available between requests, choose a web service. If your app fits short request-triggered functions, a serverless platform may fit. A static host alone cannot run an Express server.
| App shape | What the host runs | Starting point |
|---|---|---|
| Express API or app server | A long-running Node.js web service | Render Free for experiments |
| Next.js routes or short handlers | Serverless functions plus frontend assets | Vercel Hobby |
| Service that needs flexible compute | Metered containers and services | Railway trial, then check the monthly bill |
Choose a host by how your app runs
Before comparing names, identify the runtime your app needs. A continuously running process, serverless function and static site are separate hosting jobs.
const port = process.env.PORT || 3000;
Hosted web services assign a port at runtime. Read it from process.env.PORT, and use a local fallback only for development.
Free Node.js hosting providers worth considering
For a small Express experiment, Render is the clearest place to start because its free web service runs a Node.js app from a Git repository. Vercel fits a different shape, while Railway’s free allowance is better treated as trial credit than a permanent always-on server.
| Provider | Free offer | Best fit |
|---|---|---|
| Render | Free web service with idle sleep and monthly instance-hour allowance | Express experiments and hobby apps |
| Vercel | Hobby plan at no monthly charge, with platform limits | Frontend projects with request functions |
| Railway | Trial credit, then limited monthly usage credit | Trying a metered service before choosing a paid plan |
Render for a conventional Node.js web service
Render Free runs a Node.js app from a connected repository. Its free instances are intended for testing and hobby projects, not production.
The service sleeps after 15 minutes without inbound traffic and takes about a minute to wake on a later request. The filesystem is ephemeral, so store persistent user data in a database rather than a local file.
Vercel for frontend projects and request functions
Vercel’s free Hobby plan targets personal projects and small-scale apps, and its Node.js runtime runs through Vercel Functions instead of a continuously running Express process. Check function-duration limits before moving long jobs there.
A function limit is an execution boundary, not a promise that an arbitrary Node.js server can stay alive.
Railway when a small credit is enough to evaluate
Railway’s free-trial terms provide a one-time $5 credit for up to 30 days. After the trial ends or the credit runs out, the Free plan provides $1 in monthly usage credit, while Hobby costs $5 per month and includes $5 of usage credit.
That makes Railway worth considering when you want to try a container-style deployment and can monitor metered use. It is not a permanent free hosting plan for an app that must stay available without a bill.
Limits that change the choice
Free allowances are bounded by sleep, compute time, execution rules or account eligibility. Match those limits to the app before you point users at it.
- Render: free web services sleep after 15 idle minutes, and the next request can wait about a minute. The workspace gets 750 free instance hours per calendar month, shared across its free web services.
- Persistent data: Render Free services have an ephemeral filesystem. A local SQLite file or uploaded file can disappear after a restart, spin-down or deploy.
- Railway: the free trial credit is one-time, and monthly Free-plan credit is limited to $1. Review metered resource use instead of assuming a service costs nothing.
- Fly.io: its discontinued-plan terms say former free allowances are legacy terms for qualifying older organizations, not a free plan for new customers.
- Cyclic: its official site announces shutdown and disabled signups, so it is not a Heroku alternative to deploy on.
Render does not recommend Free instances for production, so move to a paid service when data persistence, support or availability becomes part of the requirement.
Deploy an Express app without hard-coding a port
Render’s Express quickstart connects a Git repository and asks for build and start commands. The app must listen on the port the platform provides, rather than assuming a development port will be available.
const express = require('express');
const app = express();
const port = process.env.PORT || 3000;
app.get('/', (req, res) => {
res.send('Node.js app is running');
});
app.listen(port, '0.0.0.0', () => {
console.log(`Listening on ${port}`);
});
Render’s deploy instructions let you set a start command such as npm start or node app.js. If deployment succeeds but the service does not answer, confirm the process binds to process.env.PORT and listens on 0.0.0.0, then check the host’s deploy logs for startup errors.
The code above was run locally with Node.js v26.7.0 and Express installed from the current npm release. Local execution checks the app’s startup path, not deployment behavior or any provider’s uptime.
Start with the smallest deployment that fits
Choose a host by its runtime model first, then decide whether its free allowance covers the way your app is used. For a production endpoint, a sleeping service is a requirement to revisit.
- Run npm start to launch the Express process, then open your local URL to check the response.
Frequently asked questions
The remaining choice usually comes down to whether “free” means a recurring allowance or a short trial.
Which free hosting is best for a Node.js Express app?
Render Free can run an Express web service for experiments and hobby projects, but its free service sleeps and Render says not to use free instances for production. Check the current limits before deploying.
Is Railway free for Node.js hosting?
Railway offers a $5 one-time trial credit for up to 30 days, then $1 of monthly usage credit on the Free plan. Its Hobby plan costs $5 per month and includes $5 of usage credit.
Can Vercel host a Node.js server?
Vercel runs Node.js through Vercel Functions. It is a fit for supported request handlers, not an always-running Express process.




