Ops
If something breaks
Human-level map of what is running, what to restart, and where the truth lives when a page is wrong.
There is one Next.js app. npm run dev is the whole product in demo. Production is the same code on Vercel plus whatever you plugged in (Postgres, Redis, Stripe, Supabase). proxy.ts is the front door (throttle, security headers, session). It is not middleware.ts.
What you are looking at
| Symptom | Likely cause | What to do |
|---|---|---|
| Site 404 / blank on the domain | DNS or Vercel domain not Valid | /docs/deploy — A/CNAME from the Vercel dashboard, wait for the cert |
| 401 on /owners or /admin | Not signed in — branded unauthorized page | Login: owner@ / driver@ / admin@gigrentals.com + 8+ character password |
| 403 Wrong door | Signed in as the wrong role | Use the matching demo email |
| Listings or CMS vanished after deploy | Vercel disk is ephemeral | Need DATABASE_URL / Supabase. Demo cookies do not follow the next serverless instance |
| Google/Apple login fails | Supabase not configured | Use email demo logins until keys exist |
| Insurance will not bind | INSURANCE_API_URL unset | Default is simulated binders. Live Lula/Tint/ABI is an env + partner |
| Money / payouts missing in admin | By design | Open Stripe. The desk has no wallet |
| Process died locally | next dev timed out or crashed | npm run dev again. Logs: the terminal that started it |
Where the truth lives
- Code and history — GitHub. git log is the trail.
- What’s live — Vercel deployment SHA.
- Cards and Connect — Stripe Dashboard only.
- Accounts (production) — Supabase Auth / Postgres.
- Demo listings/photos — .data/ on that machine, not on Vercel.
- How a trip is allowed to move — backend/modules/pvsp (lease) and backend/modules/trips (dispatch).
Restart order (local)
- npm run dev — website + /api/v1.
- Optional: npm run dev:realtime (sockets :4001), npm run dev:worker (dispatch tick).
- Optional: npm run dev:infra (Docker Postgres/Redis) only if DATABASE_URL/REDIS_URL are set.