Vibe Unstuck

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.

1

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.

2

Hardcoded localhost

API calls, auth redirects, webhooks, or images work on your laptop and fail (or loop) in production.

3

Auth callback URL mismatch

Google/GitHub login works locally, then in production it bounces home, shows an error, or "redirect URI mismatch."

4

CORS / 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.

5

Secrets 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).

6

Database 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.

7

Stripe 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.

See the unstuck pass