ShipNode auto-detects these frameworks from your package.json.
| Framework | Port | Health Check | Notes |
|---|---|---|---|
| Express | 3000 | /health |
Most popular |
| NestJS | 3000 | /api/health |
Use @nestjs/terminus |
| Fastify | 3000 | /health |
Very fast |
| Koa | 3000 | /health |
Lightweight |
| Hono | 3000 | /health |
Edge-ready |
| Hapi | 3000 | /health |
Enterprise |
| AdonisJS | 3333 | /health |
Laravel-like |
| Feather | 3030 | /health |
Real-time |
| Framework | Port | Health Check | Notes |
|---|---|---|---|
| Next.js (SSR) | 3000 | /api/health |
Use output: 'standalone' |
| Nuxt | 3000 | /api/health |
Vue full-stack |
| Remix | 3000 | /healthcheck |
React full-stack |
| Astro | 4321 | /api/health |
Island architecture |
| RedwoodJS | 8911 | /api/health |
Full-stack |
| Blitz | 3000 | /api/health |
Next.js alternative |
| Framework | Build Output | SPA Routing | Notes |
|---|---|---|---|
| React | dist/ or build/ |
Yes | Vite, CRA, Next.js |
| Vue | dist/ |
Yes | Vite, Nuxt |
| Svelte | public/ |
Yes | SvelteKit |
| Angular | dist/ |
Yes | Angular CLI |
| SolidJS | dist/ |
Yes | Vite |
| Ember | dist/ |
Yes | Ember CLI |
| Qwik | dist/ |
Yes | Qwik CLI |
ShipNode detects frameworks from dependencies:
# Express detection
npm install express
# NestJS detection
npm install @nestjs/core @nestjs/common
# Next.js detection
npm install next react react-domForce a specific preset:
shipnode init --template expressAvailable templates:
expressnestjsfastifynextjsnuxtremixastroreactvuesvelteangular
Override auto-detected port:
BACKEND_PORT=8080Override auto-detected health check:
HEALTH_CHECK_PATH=/api/pingShipNode works with plain Node.js:
APP_TYPE=backend
PM2_APP_NAME=myapp
BACKEND_PORT=3000Add a /health endpoint to your index.js:
app.get('/health', (req, res) => {
res.json({ status: 'ok' });
});