Confirm the production URL
Preview and production can return different routes, headers, and environment values.
Fix prompt
Plain http requests to this app do not redirect to https. Turn on the force-https option in your hosting dashboard, or add a permanent redirect at the server. Verify with curl -I on the http address.
Run the primary journey from a clean session
A working first screen does not prove the main task completes.
Fix prompt
Run the main user journey from a clean browser. Record each request, state change, failure path, and final result.
Enforce authorization on the server
Hidden buttons do not stop a direct request to a protected action.
Fix prompt
List every protected read and write. Enforce identity and ownership on the server for each one, then test a second account against them.
Validate every server input
Browser validation can be skipped by direct requests.
Fix prompt
Add strict server-side validation and length limits to every public or authenticated mutation. Return clear errors without internal details.
Keep private keys out of browser code
Anyone who opens the page can read this key and use it directly against the service it belongs to, with your account paying for it.
Fix prompt
A server-side secret ({pattern}) is inside the JavaScript sent to browsers. Rotate it at the provider now, move the code that uses it to your server, and remove it from any frontend environment variable.Test the main failure path
Timeouts and rejected requests need a truthful, recoverable interface.
Fix prompt
Force the main external request to time out and fail. Show a truthful error, preserve user input, and provide a retry that cannot duplicate work.
Rollback and recovery
Whether you can put the previous version back, and how long that takes.
A URL cannot verify this. A Launch Review can.
Fix prompt
Deploy a trivial change, then roll it back, and time how long the app is wrong for.
Error monitoring
Whether a failure in production reaches a human rather than sitting in a log nobody opens.
A URL cannot verify this. A Launch Review can.
Fix prompt
Trigger a deliberate error in production and see whether anything alerts you within five minutes.
Rate limiting and abuse controls
Whether a script can hammer your forms, sign up loop, or paid endpoints without being slowed down.
A URL cannot verify this. A Launch Review can.
Fix prompt
Send the same form fifty times in a minute from one address and see whether anything stops you.
Make Stripe webhooks idempotent
Stripe can deliver the same event more than once.
Fix prompt
Verify Stripe webhook signatures, store processed event IDs, and make repeated delivery leave access and records unchanged.
Separate Stripe test and live keys
Mixed modes can create records without granting the matching production access.
Fix prompt
Keep Stripe test and live keys in separate deployment environments. Confirm the production checkout, webhook, and price IDs all use live mode.
Test every payment outcome
Whether payment events are verified, replay safe, and matched to the right customer record.
A URL cannot verify this. A Launch Review can.
Fix prompt
Replay a payment webhook twice and confirm the customer is only granted access once.
Test Firebase rules with two accounts
Client SDK checks do not replace deployed Firestore or Storage rules.
Fix prompt
Use the rules emulator or a test project to verify anonymous, owner, other-user, and administrator reads and writes for every collection and storage path.
Sign in and account flows
Whether sign in, password or code reset, and session expiry behave under real use.
A URL cannot verify this. A Launch Review can.
Fix prompt
Sign in as two different accounts in two browsers and try to open the other account's pages by address.
Test personal-data deletion
Whether stored personal details are limited, deletable on request, and out of your logs.
A URL cannot verify this. A Launch Review can.
Fix prompt
Search your logs for an email address you know is in the database and see whether it appears.
Keep personal data out of logs
Email addresses and other personal details can spread into long-lived logging systems.
Fix prompt
Trigger each customer-data flow, search the resulting logs for known personal values, then redact fields at the logging boundary and repeat the test.