Ship from anywhere
CI / CD
GitHub Actions checks every PR. Vercel ships main. A Deploy workflow is the phone-tap backup when secrets exist.
| Path | What | Where |
|---|---|---|
| CI | prisma generate, tsc, vitest, lint, next build | .github/workflows/ci.yml |
| Vercel Git | Preview on PR, production on main | Vercel dashboard → Git |
| Deploy Action | vercel pull/build/deploy --prod | .github/workflows/deploy.yml |
| Env example | Knobs, no secrets | .env.example |
First production
- Create the GitHub repo. Push main.
- Import the repo in Vercel (Next.js). Set NEXT_PUBLIC_SITE_URL to the prod host.
- Add DATABASE_URL when state must survive. Add Stripe/Supabase when you want live auth/money — still leave GO_LIVE=false until counsel.
- Optional GitHub secrets VERCEL_TOKEN, VERCEL_ORG_ID, VERCEL_PROJECT_ID so Actions → Deploy works from a phone.
Namecheap DNS → Vercel (no env yet)
- GitHub: new repo, git remote add origin …, git push -u origin main.
- vercel.com → Add New → Project → import that repo. Framework: Next.js. Do not add env vars. Deploy.
- Wait for the *.vercel.app URL. Open it on your phone. Demo logins still work (owner@ / driver@ / admin@ + any 8+ character password).
- Vercel → Project → Settings → Domains → Add yourdomain.com and www.yourdomain.com. Copy the A / CNAME values Vercel shows (they can change; do not guess).
- Namecheap → Domain List → Manage → Advanced DNS. Delete Namecheap parking/URL-redirect records that conflict. Add the records Vercel listed. Typical shape: A @ → Vercel IPv4 (dashboard), CNAME www → the vercel-dns host they print. TTL automatic.
- Optional: Namecheap → Nameservers → Custom, paste Vercel’s ns1/ns2 if you would rather hand the whole zone to Vercel. Then you do not maintain A/CNAME at Namecheap.
- Back in Vercel, wait until the domain is Valid and the certificate is Issued (often a few minutes, sometimes up to an hour). HTTPS is automatic.
- Later (not now): Vercel → Settings → Environment Variables → NEXT_PUBLIC_SITE_URL=https://yourdomain.com and anything else. Redeploy.
GO_LIVE remains a legal switch, not a deploy switch. You can host the demo on Vercel at $0 vendor APIs.