The signup died on Thursday
A prompt changed a label, the button no longer submits, and nobody noticed until a friend tried to join.
For apps built with Lovable, Bolt, Replit, and Cursor
StillChecksOut acts like a customer. It walks signup, login, and the path up to checkout. It compares who paid in Stripe with who can actually get in. And it reads the public site the way a scanner would, looking for leaked keys.
A prompt changed a label, the button no longer submits, and nobody noticed until a friend tried to join.
Stripe has the customer. Your users table does not. Or the reverse: access is on, and the subscription is not.
sk_live, a Supabase service_role JWT, or an LLM key sitting in a public JavaScript file.
01
Add a DNS TXT record or a meta tag. Scheduled checks do not run against a site you have not claimed.
02
“Sign up with the test user, then open pricing and click the checkout button.” We compile that once.
03
The saved steps run on a schedule in a headless browser. The LLM is not in the daily loop.
04
A screenshot, the step that broke, and a prompt you can paste back into Lovable, Bolt, Replit, or Cursor.
Journeys stop before captchas, email confirmation links, OAuth popups, and real payments. The public checker only reads what a browser already downloads: the page, its scripts, two well-known paths, checkout links, and response headers. It does not log in, fuzz, or attack.