Lovable

Your Lovable app is published. Does the funnel still complete?

The preview and the published app are not the same environment. A green preview can hide a missing secret, a test price id, or a route the last publish overwrote.

Lovable is good at getting a page in front of you. The break usually shows up one step later: the button that should open Stripe, the auth email that should arrive, or the webhook that should mark an order paid.

FunnelWatch pings the public URL on the free plan. Pro replays the path you describe, then writes a fix prompt you can paste back into Lovable.

What usually breaks

Env vars that exist only on the preview

A key added in the chat or in the preview settings is easy to forget when you publish. The published function then 500s, or Stripe returns “no such price,” while the preview still checks out.

A test price id left in the live app

The session that worked in the demo used a test-mode price. Live mode rejects it. The button looks the same. The server log is the only place the mismatch is obvious.

Stripe webhook secret from the other endpoint

The signing secret in the published env belongs to an old endpoint, or to test mode. Stripe delivers the event, the signature check fails, and the order stays unpaid.

Auth redirects still aimed at the preview host

Supabase or your auth provider still allows the lovable.app preview URL and not the custom domain. The email link sends people back to a host that does not have their session.

A publish that overwrote a hand-fixed route

The checkout route was repaired once, then a later prompt regenerated the page and dropped the link. The homepage still returns 200.

Edge or server function timeouts

The webhook handler does too much work before it returns. Stripe times out, retries, and eventually stops. The homepage never notices.

Watch the next break before a customer does.

Free checks the public URL. Pro replays the path after you verify the domain.

Related