Skip to main content
Pxxl auto-detects most repositories and pre-fills your install, build, and start commands from the lock files and project structure it finds. These recipes let you review, copy, or override those settings for your specific framework. Find your language or stack below, then paste the values directly into the deploy form or your pxxl.toml file.
Pxxl supports all major Node.js package managers and frameworks. Use the recipe that matches your frontend or backend stack.

React, Vue, Svelte, and Astro (Vite SPA)

Best for client-side single-page applications that produce a static dist/ or build/ output.
SettingValue
Install Commandnpm install, pnpm install --frozen-lockfile, yarn install --frozen-lockfile, or bun install
Build Commandnpm run build (or your package-manager equivalent)
Start CommandLeave empty — Pxxl serves the generated static output automatically
package.json
{
  "scripts": {
    "dev": "vite",
    "build": "vite build",
    "preview": "vite preview"
  }
}
If you need the preview server (for example to test SPA routing), set the start command to:
npm run preview -- --host 0.0.0.0 --port ${PORT:-4173}

Next.js

Use the default next build command and make sure your start script binds to all interfaces.
SettingValue
Install CommandPackage-manager install command
Build Commandnpm run build (or your package-manager equivalent)
Start Commandnpm run start when the script invokes next start
package.json
{
  "scripts": {
    "build": "next build",
    "start": "next start -H 0.0.0.0 -p ${PORT:-3000}"
  }
}
For Next.js Standalone output (output: 'standalone' in next.config.js), change the start command to node .next/standalone/server.js.

Nuxt

Nuxt uses Nitro under the hood and reads PORT automatically in most presets.
SettingValue
Install CommandPackage-manager install command
Build Commandnpm run build (or your package-manager equivalent)
Start Commandnode .output/server/index.mjs

Express and NestJS API

Use this recipe for REST APIs and GraphQL servers built with Express, Fastify, Koa, or NestJS.
SettingValue
Install CommandPackage-manager install command
Build Commandnpm run build only when TypeScript or a framework compiler is required
Start Commandnpm run start:prod when present, otherwise npm run start
server.js
const express = require("express");
const app = express();
const port = Number(process.env.PORT || 3000);

app.get("/health", (_req, res) => res.json({ ok: true }));
app.listen(port, "0.0.0.0");
Always bind your server to 0.0.0.0, not localhost or 127.0.0.1. Pxxl’s proxy layer cannot reach a process that only listens on the loopback interface.