What Node.js Apps Need from Hosting
Node.js hosting differs fundamentally from PHP hosting. Node applications run as long-lived processes that bind to a port, maintain state in memory, and handle connections asynchronously. This means your host needs to support process management (PM2 or similar), custom port binding, reverse proxy configuration, and SSH access for deployment — features absent from traditional shared hosting.
This guide is based on 90-day testing of Node.js hosting providers with Express.js APIs, Next.js SSR sites, and WebSocket applications, measuring response times, build performance, and uptime.
Process Management
Unlike PHP (where each request spawns and terminates a process), Node.js runs continuously. If your app crashes, it needs automatic restart. PM2 is the industry standard — it monitors your process, restarts on failure, handles log rotation, and can run your app in cluster mode across CPU cores. Hosts that pre-install PM2 or provide equivalent process management save significant setup time.
SSH and Git Deployment
Node.js deployment typically involves SSH access, Git pull, npm install, and process restart. Hosts without SSH access (most shared PHP hosts) cannot run Node.js applications properly. Some hosts offer Git-based deployment pipelines that automatically run npm install and restart your app on push — Cloudways, Kinsta, and DigitalOcean App Platform all support this workflow.
WebSocket Support
Many Node.js applications use WebSockets for real-time features (chat, notifications, live dashboards). The host must support persistent WebSocket connections through their reverse proxy. Nginx handles WebSockets natively with proper proxy_pass configuration, but some shared hosts and CDNs terminate WebSocket connections after 60 seconds. For Socket.io or ws-based apps, verify WebSocket support before committing.
Memory and CPU Allocation
Node.js is single-threaded by default, making CPU clock speed more important than core count for single-instance performance. However, PM2's cluster mode can utilize multiple cores. Memory is critical — Node.js defaults to a 1.5GB heap limit, but hosting plans with 512MB-1GB RAM require setting --max-old-space-size appropriately. Next.js SSR builds can consume 2GB+ during compilation, requiring hosts with sufficient build-time resources.
Top 7 Node.js Hosting Providers
1. Cloudways — Best Overall Node.js Host
From $14/mo | Response: 28ms | Uptime: 99.99% | Rating: 9.3/10
Cloudways is the top pick for Node.js because it provides managed cloud servers with full root access, Nginx reverse proxy pre-configured, and SSH deployment out of the box. You can run Node.js 18, 20, or 22 alongside PHP applications on the same server. PM2 can be installed via SSH, and the Nginx configuration supports WebSocket proxying. The vertical scaling option means you can bump RAM/CPU without migration when your Node.js app's traffic grows.
Pros: Full root access, Nginx pre-configured, any Node.js version, WebSocket support, scalable resources
Cons: $14/mo minimum, requires SSH comfort, no built-in CI/CD pipeline
3. Kinsta — Best Managed Node.js Platform
From $7/mo (Application Hosting) | Response: 35ms | Uptime: 99.99% | Rating: 9.0/10
Kinsta's Application Hosting platform supports Node.js with automatic Git deployment, built-in build pipelines, and Google Cloud infrastructure. Push to GitHub, and Kinsta automatically runs npm install, executes your build command, and deploys. WebSocket support, custom environment variables, and auto-scaling are included. The Hobby tier starts at $7/mo for low-traffic Node.js apps, with pay-as-you-scale pricing for production workloads.
Pros: Git auto-deploy, built-in CI/CD, Google Cloud, WebSocket support, $7/mo Hobby tier
Cons: Pay-per-use billing can spike, limited server customization, no SSH to underlying server
2. ScalaHosting — Best Node.js VPS Value
From $29.95/mo (VPS) | Response: 32ms | Uptime: 99.98% | Rating: 8.6/10
ScalaHosting's managed VPS provides dedicated resources ideal for Node.js applications. With 4 CPU cores and 8GB RAM on the entry VPS, you can run multiple Node.js apps in PM2 cluster mode. SPanel includes a Node.js app manager for basic deployment, and full SSH access lets you configure Nginx reverse proxy exactly as needed. The no-cPanel-fee advantage makes it cheaper than equivalent cPanel VPS options.
Pros: Dedicated VPS resources, SSH access, SPanel included, multiple Node.js apps, good RAM allocation
Cons: $29.95/mo minimum for VPS, shared plans don't support Node.js, SPanel Node.js manager is basic
4. Hostinger — Best Budget Node.js VPS
From $5.49/mo (VPS) | Response: 42ms | Uptime: 99.97% | Rating: 8.5/10
Hostinger's KVM VPS plans start at just $5.49/mo with 1 vCPU, 4GB RAM, and full root access. You install Node.js yourself via SSH, configure Nginx as reverse proxy, and set up PM2 for process management. The 4GB RAM is generous at this price — enough for a medium-traffic Express.js API or Next.js site. The AI-assisted VPS setup helps configure firewall rules and basic Nginx.
Pros: $5.49/mo VPS, 4GB RAM, full root access, KVM virtualization, multiple data centers
Cons: Unmanaged (DIY setup), no Node.js-specific tooling, shared hosting plans don't support Node.js
5. DreamHost — Best Node.js with DreamCompute
From $4.50/mo (DreamCompute) | Response: 45ms | Uptime: 99.97% | Rating: 8.2/10
DreamHost's DreamCompute cloud offers hourly-billed instances ideal for Node.js applications. The 1GB instance at $4.50/mo provides full root access, SSD storage, and OpenStack-based infrastructure. You can snapshot instances, create load balancers, and manage floating IPs. The 97-day money-back guarantee on shared plans and pay-as-you-go DreamCompute billing reduce financial risk.
Pros: Hourly billing, OpenStack flexibility, snapshots, load balancers, 97-day guarantee on shared
Cons: Fully unmanaged, no Node.js tooling, US data centers only, smaller community than AWS/DO
6. Hosting.com — Best Node.js Shared Alternative
From $2.99/mo | Response: 55ms | Uptime: 99.97% | Rating: 7.8/10
Hosting.com is one of the few traditional hosts offering Node.js on shared plans via cPanel's Node.js Selector. You can run Node.js 14-20 applications through Phusion Passenger without SSH. While not as flexible as VPS hosting, it works for simple Express.js APIs and Next.js static exports. The Turbo plan's NVMe storage helps with npm install speed.
Pros: Node.js on shared hosting (rare), cPanel Node.js Selector, no SSH required, affordable entry
Cons: Limited to Passenger (no PM2), no WebSocket support on shared, restricted npm packages, performance ceiling
7. InterServer — Best Price-Lock Node.js VPS
From $6/mo (VPS) | Response: 48ms | Uptime: 99.97% | Rating: 8.0/10
InterServer's VPS slices start at $6/mo with price-lock guarantee — your Node.js VPS hosting never increases in cost. Each slice includes 1 core, 2GB RAM, and 30GB SSD. You can combine slices for more resources. Full root access means complete Node.js environment control. While the VPS interface is dated, the pricing predictability is unmatched for long-term Node.js projects.
Pros: Price-lock VPS from $6/mo, combinable slices, full root access, unlimited bandwidth
Cons: Dated VPS panel, US-only data centers, self-managed, 2GB RAM per slice is modest
Full Comparison Table
| Host | Price | Type | Response | Uptime | Node Versions | SSH | WebSocket | Best For |
|---|---|---|---|---|---|---|---|---|
| Cloudways | $14/mo | Managed Cloud | 28ms | 99.99% | 18/20/22 | ✅ | ✅ | Overall Node.js hosting |
| Kinsta | $7/mo | App Platform | 35ms | 99.99% | 18/20/22 | ❌ | ✅ | Managed deployment |
| ScalaHosting | $29.95/mo | Managed VPS | 32ms | 99.98% | Any | ✅ | ✅ | VPS value |
| Hostinger | $5.49/mo | VPS | 42ms | 99.97% | Any | ✅ | ✅ | Budget VPS |
| DreamHost | $4.50/mo | Cloud | 45ms | 99.97% | Any | ✅ | ✅ | Hourly billing |
| Hosting.com | $2.99/mo | Shared | 55ms | 99.97% | 14-20 | ✅ (Turbo) | ❌ | Shared Node.js |
| InterServer | $6/mo | VPS | 48ms | 99.97% | Any | ✅ | ✅ | Price-lock VPS |
Node.js Deployment Tips
1. Use PM2 for Process Management
Always run Node.js in production with PM2: pm2 start app.js -i max --name myapp. The -i max flag enables cluster mode across all CPU cores. Configure PM2 to auto-start on server reboot: pm2 startup and pm2 save. Use pm2 monit to watch memory usage and restart loops. Set max_memory_restart: '1G' in your ecosystem.config.js to prevent memory leaks from crashing your server.
2. Configure Nginx Reverse Proxy Correctly
Set up Nginx to proxy requests to your Node.js port. Key configuration: proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; for WebSocket support. Add proxy_read_timeout 86400; for long-lived WebSocket connections. Enable proxy_cache for static API responses that don't change frequently. Always serve static files directly from Nginx — never through Express.js static middleware in production.
3. Set Up Zero-Downtime Deployment
Use PM2's reload command instead of restart: pm2 reload myapp. This gracefully cycles workers one at a time, maintaining availability during deploys. Combine with Git hooks: post-receive hook runs npm install --production && npm run build && pm2 reload ecosystem.config.js. Kinsta and Cloudways handle this automatically through their deployment pipelines.
4. Optimize for Production
Set NODE_ENV=production — Express.js serves cached template files and reduces logging. Use --max-old-space-size=1024 to limit heap size to available RAM. Enable gzip compression at the Nginx level (not Express.js). Use Redis for session storage instead of in-memory stores to support cluster mode. Monitor with pm2 plus or self-hosted Prometheus + Grafana for production metrics.
5. Handle npm Install Efficiently
Use npm ci instead of npm install in production — it's faster and uses the lockfile exactly. Cache node_modules between deploys with PM2 deploy or rsync. For Next.js, use standalone output mode (output: 'standalone' in next.config.js) to reduce deployment size from 200MB+ to 20-30MB. On memory-constrained VPS, set NODE_OPTIONS='--max-old-space-size=512' during builds.
FAQ
Bottom Line
Frequently Asked Questions
Can I run Node.js on shared hosting?
Very few shared hosts support Node.js properly. Hosting.com offers Node.js via cPanel's Passenger integration, but with significant limitations — no WebSocket support, restricted npm packages, and limited memory. For serious Node.js applications, you need at minimum a VPS (Hostinger $5.49/mo) or managed cloud (Cloudways $14/mo) with SSH access and PM2.
How much RAM does a Node.js app need?
A basic Express.js API uses 50-100MB. A Next.js SSR site uses 150-300MB in production. During npm install and build, consumption spikes to 1-2GB+. For production, 1GB RAM handles most single-app deployments. For Next.js with ISR or multiple Node.js apps, use 2-4GB. Always set --max-old-space-size to 75% of available RAM.
What Node.js version should I use?
Use Node.js 20 LTS (supported until April 2026) for production. Node.js 22 is the current release with the latest features but enters LTS in October 2024. Avoid odd-numbered versions (19, 21, 23) in production — they have shorter support windows. Major framework compatibility: Next.js 14 requires Node 18.17+, NestJS 10 requires Node 16+.
Cloudways vs Kinsta for Node.js — which is better?
Cloudways ($14/mo) gives you more control — SSH access, custom Nginx config, any Node.js version, PM2 cluster mode. Kinsta Application Hosting ($7/mo) provides easier deployment — Git push, automatic builds, zero-config. Choose Cloudways for WebSocket apps, custom configurations, and running Node.js alongside other stacks. Choose Kinsta for Git-based deployment simplicity and auto-scaling.
Do I need a separate host for Node.js backend and frontend?
Not necessarily. For Next.js (which combines frontend and backend), a single host works perfectly. For separate Express.js API + React frontend, you can run both on one VPS with Nginx routing /api to Node.js and serving React static files directly. Only separate hosts when your API and frontend have very different scaling needs.
How do I handle Node.js app crashes in production?
Use PM2 with automatic restart: pm2 start app.js --max-restarts 10 --restart-delay 5000. This restarts your app up to 10 times with a 5-second delay between attempts. Set up PM2's monitoring to alert on restart loops. For critical apps, use PM2's cluster mode so other workers handle requests while one restarts. Kinsta's platform handles crash recovery automatically.
The Bottom Line
Best Overall
Best Value
Best for Easy Deployment
For Node.js hosting, Cloudways ($14/mo) offers the best combination of control, performance, and manageability. Budget-conscious developers should start with Hostinger VPS ($5.49/mo) for full root access at a fraction of the cost. For the easiest deployment experience, Kinsta Application Hosting ($7/mo) provides Git-based auto-deployment with zero server management.
More guides: Best Python Hosting 2026 • Best Docker Hosting 2026 • Cloudways Review 2026