Live setup

Env configured: no · Ops ready: no · Checkout: no · Route Maps: no

  • Supabase URL + anonNEXT_PUBLIC_SUPABASE_*
  • Service roleSUPABASE_SERVICE_ROLE_KEY
  • App URLNEXT_PUBLIC_APP_URL
  • Stripe keysSTRIPE_* + publishable
  • Stripe webhookSTRIPE_WEBHOOK_SECRET
  • Google MapsGOOGLE_MAPS_API_KEY
  • Resendoptional email
  1. Copy `.env.example` → `.env.local` (and Vercel env for production).
  2. Apply Supabase migrations; run `npm run bootstrap:owner`.
  3. Stripe: webhook → `/api/stripe/webhook`.
  4. Google Cloud: enable Geocoding (+ Distance Matrix); restrict key to server IP / none for Vercel.
  5. Set `NEXT_PUBLIC_APP_URL` to the live domain before checkout.
  6. Turn `PUBLIC_QUOTE_CHECKOUT_ENABLED=true` only after prices/legal are ready.