Graceful Shutdown in Node.js - Safer Restarts and Deploys
Stop dropped requests and half-finished jobs when a Node.js app restarts - handle SIGTERM and SIGINT, close the server, drain connections and close pools.
· 5 min read
Node.js Hosting
Deploy APIs, background services and full-stack apps built on Node.js straight from GitHub. Choose your Node.js version and start file, and the platform installs, builds, runs and restarts your app, with TLS on your domain.
Express, Fastify, NestJS, Nuxt and plain Node.js servers, or a static site built with your build script.
Pick the runtime per app and change it with a redeploy.
Every push to your branch deploys, with a live build log; roll back to an earlier commit in one click.
Apps run under the server's Node.js manager and are restarted on every deploy.
Run deployments or call a URL on a cron schedule, in South African time.
Create databases next to your app and get signed events for deployments, payments and domains in your own systems.
Every plan deploys from GitHub on each push, with build logs, rollbacks, environment variables, free SSL and databases. Pay monthly or yearly; no VAT is added.
For side projects and portfolios.
R79/month
or R790/year. No VAT is added.
Git-driven workflow for freelancers.
R199/month
or R1 990/year. No VAT is added.
Production workloads and small teams.
R479/month
or R4 790/year. No VAT is added.
Host all your clients, white-labelled.
R1 199/month
or R11 990/year. No VAT is added.
| Plan | StarterR79/month | DeveloperR199/month | BusinessR479/month | AgencyR1 199/month |
|---|---|---|---|---|
| Apps | 1 | 3 | 10 | 30 |
| RAM | 512 MB | 1 GB | 2 GB | 4 GB |
| vCPU | 0.5 | 1 | 2 | 4 |
| NVMe storage | 5 GB | 20 GB | 50 GB | 150 GB |
| Traffic | 100 GB | 500 GB | Unmetered | Unmetered |
| Databases | 1 | 3 | 10 | 40 |
| Push to deploy from GitHub | Yes | Yes | Yes | Yes |
| Preview deploys per branch | No | Yes | Yes | Yes |
| Rollbacks and redeploys | Yes | Yes | Yes | Yes |
| Backups | Weekly, 28 days | Daily, 7 days | Daily, 30 days | Daily, 30 days |
| Team seats | 0 | 0 | 3 | Unlimited |
| Priority support | No | No | Yes | Yes |
Sign in with GitHub and allow NewHost access to your repositories; GitHub's permission covers public and private ones (an organisation may need to approve NewHost first). The token is stored encrypted, and you can revoke it on GitHub at any time.
Pick the repository and branch, the framework and Node.js version. Install, build and start commands are filled in for the framework; change them if your project differs.
Add your secrets (database URL, API keys) before the first deploy. Values are encrypted at rest and only the names are shown after saving.
NewHost creates your site, fetches the commit, installs dependencies, runs your build script and starts the app, with a live log of every step and your build output.
Every push to the branch deploys again; GitHub shows the deployment status on the commit. Pushes to other branches can deploy as previews on plans that include them.
Use the free app address or connect your own domain; a free Let's Encrypt certificate is issued during the deploy.
NewHost uses your GitHub access only to list your repositories, add the push webhook to the ones you connect, fetch your code and show deployment statuses. It never changes your code.
A push to your production branch queues a deployment. One runs at a time per app; if several pushes arrive while one runs, the latest one is deployed next.
On plans with previews, a push to any other branch deploys to its own address (branch--app on the platform domain). Idle previews are removed automatically.
Every deployment has a step-by-step log with timestamps and your npm output, updated live in the dashboard. Secrets are kept out of the log.
Roll back to the commit of any earlier successful deployment, redeploy the current one, or cancel a deployment that is still queued.
Encrypted with AES-256-GCM at rest and passed to your app on each deploy; values are never shown again after saving.
A free address on the platform domain from the first deploy, or your own domain with a free Let's Encrypt certificate.
Create MySQL or PostgreSQL databases on your app's server from the app's page (the engines that server offers), up to your plan's number.
Deploy an app or call one of its URLs on a cron schedule or once, in South African time.
Paste a repository URL instead of connecting GitHub: deploy from the dashboard or on a schedule, and GitLab pushes deploy through a signed webhook per app.
Next.js
Runs on Node.js 24, 22, 20. Default start file server.js, build script "npm run build".
Node.js
Runs on Node.js 24, 22, 20. Default start file index.js, no build step.
Express
Runs on Node.js 24, 22, 20. Default start file app.js, no build step.
Nuxt
Runs on Node.js 24, 22, 20. Default start file .output/server/index.mjs, build script "npm run build".
Static site
Built with your build script (optional) and served as files from the output folder, e.g. dist; no Node.js process runs.
Any Node.js server: Express, Fastify, NestJS, Nuxt or plain Node.js, on Node.js 20, 22 or 24. Set the start file your app runs (for example app.js or dist/main.js).
Connect GitHub once and pick your app's repository and branch; NewHost adds a webhook to the repository. Each push to that branch queues a deployment: the code is fetched, dependencies installed, your build script run and the app restarted, with a live log of each step.
Yes, per app. Values are encrypted at rest, passed to your app on each deploy, and only the keys are shown after saving.
Use scheduled tasks to deploy an app or call an endpoint in your app on a cron schedule. How often depends on your plan: every 5 minutes at most with an app plan, more often with an automation plan.
Apps run under the server's Node.js process manager, which starts your app again when needed, and every deploy restarts it.
Open the app's deployments and roll back to the commit of any earlier successful deployment, or redeploy the current one. A deployment still waiting in the queue can be cancelled.
Dependencies are installed with npm, so commit a package-lock.json. yarn and pnpm install commands are accepted and run as an npm install; the build command must be a script in your package.json.
Yes. Create databases next to your app from its page, up to your plan's number, or add a database plan for more. Put the connection details in your app's environment variables.
Yes. Every app gets a free address; connect your own domain and a free Let's Encrypt certificate is issued.
Stop dropped requests and half-finished jobs when a Node.js app restarts - handle SIGTERM and SIGINT, close the server, drain connections and close pools.
· 5 min read
Host an Astro site in South Africa - static or server-rendered with the Node adapter - with build and start commands, environment variables and Git deploys.
· 5 min read
How to build a correct sitemap.xml and robots.txt in Next.js - what to list, honest lastmod dates, keeping previews out of Google and submitting it.
· 6 min read
Connect GitHub, pick a repository and branch, and every push builds and deploys your app. Questions about your stack? Talk to us first.