How to Deploy a Node.js App for Free in 2026 (No Credit Card)
You've built a Node.js app. It works on localhost:3000. Now you want it on the internet with a real URL and HTTPS — without renting a server, configuring nginx, or handing over a credit card for a "free" trial. This guide walks through exactly that: a Node.js app deployed from GitHub to a live URL in about five minutes.
What you need
- A Node.js app in a GitHub, GitLab or Bitbucket repository
- A
package.jsonwith astartscript - An Abasthan account (the first app is free — no card required)
Step 1: Make your app deployable
A production platform starts your app differently than your laptop does. Two small things make any Node.js app cloud-ready. First, a start script in package.json:
{
"scripts": {
"start": "node index.js"
}
}Second, listen on the port the platform gives you instead of a hardcoded one:
const port = process.env.PORT || 3000;
app.listen(port, "0.0.0.0");That's it. Express, Fastify, NestJS, Hono — the same two rules apply to all of them.
Step 2: Connect your repository
Sign in to the Abasthan dashboard, click Create App → Web Service, and connect your Git provider. Pick the repository and branch. The platform detects Node.js and picks a runtime (Node 18, 20 or 22 — your choice).
Step 3: Choose the Free plan
Select the Free instance. Your first app on Abasthan costs $0 — a real deployment, not a trial that expires. When the project grows, plans scale from $2/month with per-second billing, so you only ever pay for seconds your service actually runs.
Step 4: Deploy
Click deploy and watch the build logs stream live. Under the hood the platform clones your repo, builds a container image with BuildKit, pushes it to a private registry, and rolls it out — you just see your app come up. A minute or two later you get a URL like your-app.abasthan.app with SSL already working.
Step 5: Environment variables and auto-deploy
Add secrets like API keys under Environment Variables — never commit them. Auto-deploy is on by default: every push to your branch rebuilds and redeploys. Need a database? Managed Postgres, MongoDB and Redis are one click, and the connection string drops straight into your env vars.
Common gotchas
- Crash on boot: almost always a hardcoded port. Use
process.env.PORT. - Works locally, fails in build: a dependency in
devDependenciesthat your production code imports. Move it todependencies. - Slow cold start: heavy work at import time. Defer it until after
listen().
FAQ
Is the free Node.js hosting really free?
Yes — every account's first app runs on the Free plan at $0, with a free subdomain and SSL. No credit card is needed to sign up or deploy.
Can I use a custom domain?
Yes, on any plan including Free — add your domain, point a CNAME, and verification plus SSL are automatic.
What Node.js versions are supported?
Node 18, 20 and 22. Pick the version in your app settings; rebuilds pick it up.
Where does my app actually run?
On bare-metal servers we own and operate — not resold hyperscaler instances. Here's why that matters.
Deploy your Node.js app now
Connect your GitHub repo and get a live HTTPS URL in minutes. First app free, no credit card, per-second billing when you scale.
Deploy Free