Free fix cards
Seven common reasons an AI-built app works locally and breaks on deploy. Each card has a plain-English cause, a short checklist, and a fix prompt you can paste into your coding agent.
Missing env vars on deploy
App runs locally. On Vercel/Railway/etc. you get blank pages, 500s, or "undefined is not a function" around config.
2Hardcoded localhost
API calls, auth redirects, webhooks, or images work on your laptop and fail (or loop) in production.
3Auth callback URL mismatch
Google/GitHub login works locally, then in production it bounces home, shows an error, or "redirect URI mismatch."
4CORS / split frontend-backend
Browser console shows CORS errors. Frontend is on one domain (or Vercel), API on another (Render/Railway). Works when both run on localhost.
5Secrets in the client / open database
Keys leaked in the repo or browser bundle, or any logged-in user can read/write other users' rows (common with Supabase when RLS is off).
6Database schema missing in production
App boots locally. On deploy you get Prisma / Drizzle / SQL errors like "table does not exist," "column not found," or migrate failures in the build or first request.
7Stripe webhook broken in production
Checkout looks fine (or redirects "success"), but entitlements never unlock, customers get charged twice, or Stripe Dashboard shows failed webhook deliveries. Local CLI / Stripe CLI tests often still pass.
Not on this list?
Send your specific break and get a custom diagnosis, fix prompt, and checklist, usually the same day.