01
Website and landing page
- The headline says what the app does and who it is for
- The main action works on mobile and desktop
- Pricing, limits, and availability are factual
- Contact/support details are easy to find
- Privacy policy and terms links work
- Favicon, title, description, social preview, robots, and sitemap are checked
- No placeholder copy, fake counts, or unverified testimonials remain
02
Account, database, and email tests
- A new user can sign up, verify, log in, log out, and recover access
- Empty, loading, success, and error states are understandable
- User data is isolated from another test user
- Duplicate submits and refreshes do not corrupt records
- Email delivery and failure handling are verified
- Backups and restore ownership are documented
- Production and preview environments use the intended data sources
03
Payments and access
- Test prices, currency, billing interval, and product IDs match
- Provider test mode is separate from production
- Webhook signatures and duplicate events are handled
- Success, decline, cancellation, refund, and delayed-event states are tested
- Access is verified server-side and not granted by a browser flag
- Receipts, support path, and refund wording are clear
- No secret key or private payment data is shipped to the client
04
Mobile and app-store basics
- Main flow works at 375px and on a real phone
- Keyboard, permissions, offline, slow network, and denied access are tested
- Android application ID, signing, version, target SDK, and Play testing are checked
- iOS bundle ID, signing, version, capabilities, privacy answers, and TestFlight are checked
- Store screenshots and descriptions match the real app
- App privacy and data-safety answers are based on evidence, not guesses
05
GitHub, deployment, and recovery
- Working tree and branch are understood
- Last known-good commit is recorded
- Diff contains only intended changes
- No secrets are tracked or printed
- Production environment names and values are reviewed
- Deployment URL, domain, HTTPS, redirects, and error monitoring are checked
- Rollback plan covers code, database, and configuration
- Known issues have an owner and a decision: fix, disclose, or postpone
06
Do not launch until
Pause the launch when any of these is true. “It worked once” is not enough for high-risk behavior.
- You cannot explain who can read or change user data
- Payment success or access is trusted only from the browser
- A secret may be exposed or committed
- You cannot restore the last known-good version
- A core workflow silently loses data
- The privacy or store information is materially inaccurate
- The main error states leave users stuck
- You have not tested with a second user or a fresh install
07
Final launch record
Write down the date, version, deployment URL, last known-good commit, database changes, tests run, known issues, support contact, and rollback steps. Keep unknowns visible; they are more useful than a confident but unsupported “ready” label.