🔧 Unbreak My AppAll fixesFix KitsSponsor

Fixes for v0 apps

Supabase query returns an empty array (no error)
data: [] — select works in the SQL editor but returns nothing in the app
LovableBoltv0Database / Supabase RLS
Supabase service_role key exposed in frontend code
service_role key found in the JS bundle / NEXT_PUBLIC_SUPABASE_SERVICE_ROLE_KEY
LovableBoltv0CursorEnv vars & leaked keys
OpenAI / Stripe secret key leaked in the browser
sk-... or sk_live_... visible in DevTools network tab or page source
LovableBoltv0ReplitCursorEnv vars & leaked keys
Environment variable is undefined in production
process.env.X is undefined / import.meta.env.VITE_X is undefined after deploy
Cursorv0BoltEnv vars & leaked keys
Magic link / OAuth login redirects to localhost:3000
After clicking the email link or Google login, the browser opens http://localhost:3000
LovableBoltv0CursorAuth
User is logged out after page refresh
After reload, user is null and protected pages redirect to /login
LovableBoltv0Auth
Stripe webhook: No signatures found matching the expected signature
StripeSignatureVerificationError: No signatures found matching the expected signature for payload
CursorBoltReplitv0Payments
No such price / No such customer (test vs live mode mix-up)
StripeInvalidRequestError: No such price: 'price_...'
CursorBoltv0LovablePayments
Vercel build fails: Type error / ESLint errors (works locally)
Failed to compile. Type error: ... / Error: Command "npm run build" exited with 1
Cursorv0BoltDeploys
CORS error: blocked by CORS policy: No 'Access-Control-Allow-Origin' header
Access to fetch at 'https://api...' from origin 'https://...' has been blocked by CORS policy
CursorReplitBoltv0Deploys
Postgres: too many connections / remaining connection slots are reserved
FATAL: sorry, too many clients already / remaining connection slots are reserved
Cursorv0ReplitPerformance
App is slow: dozens of database calls per page (N+1 queries)
Page takes 3–10s; network tab shows many identical requests
LovableBoltCursorv0Performance
Too many re-renders / useEffect infinite loop
Error: Too many re-renders. React limits the number of renders / Maximum update depth exceeded
LovableBoltv0CursorPerformance
Supabase Storage upload fails: new row violates row-level security policy (403)
StorageApiError: new row violates row-level security policy (403 Unauthorized)
LovableBoltv0Database / Supabase RLS
Hydration failed because the server rendered HTML didn't match the client
Error: Hydration failed because the server rendered HTML didn't match the client
v0CursorDeploys
Postgres error: relation "public.xyz" does not exist
ERROR: 42P01: relation "public.profiles" does not exist / PostgREST could not find the table
LovableBoltCursorv0Database / Supabase RLS
Supabase "permission denied for table" (42501) on a new table
{"code":"42501","message":"permission denied for table your_table","hint":"Grant the required privileges to th
LovableBoltCursorv0ReplitDatabase / Supabase RLS