Good Node.js hosting in South Africa gives you a long-running Node process on a current LTS version, enough RAM for your app, Git-based deploys, environment variables, a database nearby and servers close to your users. You can get that three ways: managed app hosting, a VPS you run yourself, or a shared cPanel plan with a Node.js selector. Which one fits depends on how much server work you want to do, and this guide lays out the differences so you can choose with your eyes open.
Why Node.js hosting is different from web hosting
Classic web hosting was built for PHP: the web server starts a short-lived script for each request, and nothing runs between requests. Node.js works the other way round. Your app is a long-running process that listens on a port and handles many requests itself.
That means a Node.js host must:
- start your process with the right command (
npm start,node server.js) - keep it running and restart it if it crashes
- route HTTP and HTTPS traffic from your domain to the port your app listens on
- give it enough memory for its whole lifetime, not just one request
- let you set environment variables without editing code
Hosts that were designed for PHP often bolt this on, which is where the limits appear.
The three options
Managed app hosting
You connect a Git repository, set your install, build and start commands, add environment variables and deploy. The host handles the server, Node.js runtime, process restarts, SSL and routing.
Best for: most business apps, APIs, Next.js, Nuxt and Express projects, agencies running several client apps. Trade-off: less low-level control. You cannot install arbitrary system packages or run non-HTTP services on odd ports.
VPS
A virtual server where you have root access. You install Node.js, a process manager (PM2 or systemd), Nginx as a reverse proxy, Certbot for SSL, a firewall and your backups.
Best for: custom stacks, background daemons, Docker setups, teams with someone who enjoys server administration. Trade-off: every security patch, Node.js upgrade and 2am outage is yours. We break this down in Node.js on a VPS vs managed hosting.
Shared hosting with a Node.js selector
Some cPanel hosts offer a "Setup Node.js App" tool, typically running your app through Phusion Passenger inside your shared account.
Best for: small hobby apps and experiments.
Trade-off: memory and process limits are usually tight, the app may be started on demand rather than kept running, and heavy build steps (like next build) may fail or need to run on your own machine first. Check the limits before you rely on it for production.
Comparison at a glance
| Managed app hosting | VPS | cPanel Node selector | |
|---|---|---|---|
| Setup effort | Low | High | Low to medium |
| Ongoing maintenance | Host | You | Host (within limits) |
| Git push to deploy | Usually built in | You build it | Rarely |
| Root access | No | Yes | No |
| Memory per app | Set by plan | Whatever the server has | Often tight |
| Suits production apps | Yes | Yes, if maintained | Small ones only |
What to look for in any Node.js host
Current Node.js LTS versions
Production apps should run on a Long Term Support release. Node.js 24 is the current Active LTS, Node.js 22 is in maintenance, and Node.js 20 has reached end of life. The schedule is published on nodejs.org. Ask a host which versions it offers and how quickly it adds new LTS releases. Pin yours in package.json:
{
"engines": {
"node": ">=24"
}
}
RAM that matches your app
Node.js keeps everything in memory for the life of the process: caches, open connections, loaded modules. A small Express API uses little; a Next.js app doing image optimisation or server rendering big pages uses a lot more. Measure it locally with process.memoryUsage() or your host's metrics before you pick a plan, and leave headroom for traffic peaks.
Git deploys and configurable commands
You want to control install (npm ci), build (npm run build) and start (npm start) commands. Anything that asks you to upload a zip of node_modules is going to hurt.
Environment variables
Database URLs, API keys and secrets should live in the host's settings, stored encrypted, never in your repository.
A database close to the app
Every query crosses the network between app and database. If both sit in the same South African data centre, that hop is short. If your app is local and the database overseas, or the other way round, each query pays for the long trip.
Scheduled tasks
Most apps eventually need a job that runs every few minutes or once a night: sending reminders, clearing expired sessions, syncing an external system. Check whether the host supports cron-style tasks. See scheduled tasks and cron jobs for Node.js.
SSL, backups and support
Free, auto-renewing SSL is standard now. Ask how often backups run, how long they are kept and how restores work. And check that support is available during South African business hours.
Rand billing and VAT invoices
Paying in rand avoids exchange-rate swings and foreign transaction fees, and a local VAT invoice keeps your accountant happy.
Node.js hosting on NewHost
NewHost is managed app hosting with servers in Johannesburg, built for Node.js, Express, Next.js, Nuxt and static sites. See Node.js hosting for details.
- Connect GitHub or GitLab; a push to your chosen branch deploys automatically.
- Configurable install, build and start commands, and encrypted environment variables.
- Managed MySQL databases on every plan (PostgreSQL or MS SQL on request).
- Scheduled tasks, as often as every 5 minutes.
- Free Let's Encrypt SSL, automatic backups and on-demand backups.
- Branch preview deploys from the Developer plan.
| Plan | Price (excl. VAT) | Apps | RAM per app |
|---|---|---|---|
| Starter | R99/month | 1 | 512 MB |
| Developer | R249/month | 3 | 1 GB |
| Business | R599/month | 10 | 2 GB |
| Agency | R1,499/month | 30 | 4 GB |
Pay by card, instant EFT, bank EFT or a prepaid rand wallet. Full plan details are on the pricing page.
Frequently asked questions
Can I run Node.js on normal shared hosting?
Sometimes. Some cPanel hosts offer a Node.js selector, but memory and process limits are usually tight and the app may not stay running between requests. It is fine for experiments; for production, use app hosting or a VPS.
Which Node.js version should I use in production?
Use an LTS release. Node.js 24 is the Active LTS today, and Node.js 22 is still in maintenance. Avoid odd-numbered "Current" releases in production, because they never become LTS.
How much RAM does a Node.js app need?
A simple API can run on 512 MB. Server-rendered frameworks, image processing or large in-memory caches need more. Measure your app under realistic load and choose a plan with headroom.
Is it better to host a Node.js app in South Africa?
If most of your users and your database are in South Africa, yes. Each request and each database query travels a shorter distance, and you can pay in rand with a local VAT invoice.
Do I need Docker to host a Node.js app?
No. Managed app hosting builds and runs your app from its package.json scripts. Docker is useful on a VPS or for complex setups, but it is not required.
Want a Node.js host that handles the server for you? Explore NewHost Node.js hosting and deploy your first app from Git today.