Supported app types
Static sites, React SPAs, and Node.js services — with the exact settings for each.
Static site
- •For plain HTML/CSS/JS or any pre-built static output. No server runs; files are served directly over HTTPS.
- •Build command: leave empty if the files are already committed, or your generator command (e.g. npm run build).
- •Output directory: the folder containing index.html (default: public). Root directory: / (or a subfolder).
- •Example: a repo with public/index.html → type Static, output “public”, no build command.
React app (SPA)
- •For Vite / Create-React-App / any single-page app that builds to static assets. Served with SPA fallback (unknown routes return index.html).
- •Install command: npm ci. Build command: npm run build. Output directory: dist (Vite) or build (CRA).
- •Build-time variables (e.g. VITE_*/REACT_APP_*) are set under the project’s Secrets/variables before building.
Node.js service
- •For Express / Fastify / Nest and other long-running servers. Runs in an isolated container with zero-downtime promotion.
- •Install: npm ci. Build: npm run build (if you compile). Start command: e.g. node dist/main.js. Port: the port your server listens on.
- •Health check path: a route returning 200 when ready (e.g. /health). A new release only receives traffic after it passes the check.

