Everything works in the Lovable preview. You open the live URL and something is off: an old version, a white screen, a login that loops, empty lists, or a button that does nothing. The preview and the published site are not the same copy of your app, and nearly every "works in preview, broken live" problem comes from one of the differences below.
Why preview and live behave differently
Lovable's docs describe the preview as your staging environment: it always runs your latest work. The published site is a snapshot that only changes when you publish again. Both share the same backend and data, so database changes affect both. Live, your app also runs on a different address, for visitors who aren't logged in as you, in browsers that may have cached old files.
Step 0: look at the live site properly
Open the live URL in a private window and open DevTools (F12): Console for red errors, Network for failed requests (4xx/5xx). Note exactly what you see, then match it below.
1. You haven't published the latest version
Symptom: the live site shows older text or design.
Edits in chat update the preview only. Click Publish, then Publish changes. Lovable shows a small dot on the Publish button when there are unpublished changes. Accepting a draft is not publishing: its edits join your unpublished changes until you publish.
2. Your browser is showing old files
Symptom: it works in a private window or on your phone, but not in your usual browser.
Do a hard reload (Ctrl+Shift+R, or Cmd+Shift+R on Mac) or clear site data for that address. Nothing in the app needs to change.
3. A secret or setting only works in one place
Symptom: a feature that calls an outside service (Stripe, email, an AI API) errors only live. The console or the function logs show an auth or "missing key" error.
Check the secret is saved, then republish. For Stripe, make sure live keys and live price IDs are used together, not a leftover test key. More in Lovable Stripe checkout not working.
Prompt to paste into Lovable:
This works in preview but fails on the published site. Console error: [paste]. Check which secrets and settings this feature needs, confirm they're set for the published app, and tell me if anything only works in preview.
4. Login sends people back to the wrong address
Symptom: sign-in with Google or a magic link "works", then drops you on the homepage logged out, or on a localhost / preview URL.
The auth provider has to allow your live URL as a redirect. Add the published lovable.app URL and your custom domain to the allowed redirect URLs (Supabase: Authentication → URL Configuration). Step-by-step in Supabase auth broken after deploy.
5. Database rules hide data from real visitors
Symptom: pages load but lists are empty, or saving fails, for anyone who isn't you.
In the preview you're usually logged in as the owner. Real visitors are anonymous or ordinary users, and Row-Level Security policies decide what they can read or write. Test live while logged out and as a normal test user, and ask Lovable to review the policies for the affected table.
6. It works on lovable.app but not on your custom domain
Symptom: the *.lovable.app link is fine; your own domain fails at login, payments or API calls.
Every service with an allow-list (auth redirects, CORS origins, Stripe success/cancel URLs, OAuth apps) needs the custom domain added too. Also check any hard-coded URLs in your app still point to the old address.
Still a white screen?
A blank page means the HTML loaded but JavaScript crashed or didn't load. The console error tells you which. See blank page after deploy; the causes (missing env vars, failed asset loads) apply to Lovable apps too.
How FlowCanary's free check helps
FlowCanary checks your live, published URL from the outside, like a first-time visitor, not the preview. In about 30 seconds it reports:
- whether the homepage loads, its status, speed, redirects and HTTPS
- JavaScript console errors and failed requests on load
- whether key pages (signup, login, pricing, checkout) exist or return errors
- blank renders, broken links and what Google sees (not showing on Google?)
Each finding comes with a paste-ready Lovable prompt. The check is passive: it never logs in or submits forms, so it won't test the logged-in steps of causes 4 and 5.
Run the free 30-second check → No signup needed.