Backend deploy guide for Railway and Render
foolish-bandit documented the Express backend deployment in three commits: a 124-line `backend/DEPLOY.md` covering build settings, env vars, and host-specific steps, a removal of `backend/bun.lock` to stop Nixpacks from provisioning Bun, and a one-line fix adding `NEXT_PUBLIC_SUPABASE_URL` to `backend/.env.example` because Railway needs it.
The DEPLOY.md is the useful artifact here. It covers Railway and Render specifically, maps out the build pipeline (root dir: backend, install: npm install, build: npm run build, start: node dist/index.js, Node 22.x), and lists LibreOffice as a required system package - already declared in backend/nixpacks.toml for Railway; Render needs a Docker service or an explicit apt-get step. The env-var table distinguishes required from secret, notes which keys stay backend-only, and calls out which must never reach the frontend Worker bundle.
The bun.lock deletion is the same trap that bit the frontend: Cloudflare's, Railway's, and Render's framework detectors all provision Bun when a Bun lockfile is present, even if package-lock.json is the live lockfile. Removing it forces npm. The backend/package-lock.json is unaffected.
The one-liner adding NEXT_PUBLIC_SUPABASE_URL to backend/.env.example is worth flagging before copying it anywhere. NEXT_PUBLIC_* is a Next.js convention for build-time client-bundle variables. A backend env var using that prefix almost certainly means something in routes/workflows.ts is reading the wrong name - the DEPLOY.md itself acknowledges this: "set both until that is unified." It works, but it's technical debt, not a design decision.
Spotted something wrong? Or know the PR text has fresher detail than the writeup above?