Back to Blog

How to Deploy a Node.js App for Free in 2026 (No Credit Card)

Kumar Saha
May 20, 2026
7 min read

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.json with a start script
  • 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 devDependencies that your production code imports. Move it to dependencies.
  • 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

KS
Kumar Saha
Abasthan