cupadev.json

Add a cupadev.json file at the root of your repository to control how CupaDev builds and runs your project.

Reference

FieldTypeDescription
buildCommandstringCommand to compile your project. Overrides dashboard setting.
installCommandstringCommand to install dependencies. Default: npm install.
startCommandstringCommand to start your server (Node.js only). Overrides npm start.
portnumberPort your server listens on. Default: 3000.
outputDirectorystringOutput directory for static builds. Default: dist or build.

Templates

Next.js

{
  "buildCommand": "next build",
  "port": 3000
}

React / Vite (static)

{
  "buildCommand": "npm run build",
  "outputDirectory": "dist"
}

Express / Node.js

{
  "buildCommand": "npx tsc",
  "startCommand": "node dist/index.js",
  "port": 3000
}

NestJS

{
  "buildCommand": "npm run build",
  "startCommand": "node dist/main.js",
  "port": 3000
}

Express monorepo (backend + frontend)

When your repo has a backend/ folder with TypeScript and a frontend/ folder with React/Vite:

{
  "buildCommand": "npm run build:frontend && cd backend && npm run build",
  "port": 3000
}

pnpm monorepo

{
  "installCommand": "pnpm install --frozen-lockfile",
  "buildCommand": "pnpm run build",
  "startCommand": "node dist/index.js",
  "port": 8080
}

Priority

Values in cupadev.json override settings configured in the dashboard. If a field is absent from the file, the dashboard setting is used.

Tip: The port field is the most common cause of CrashLoopBackOff. If your app listens on a port other than 3000, always set it explicitly.