01
A demo is not a product
AI can create a convincing demo quickly. That is useful: you can see an idea, test a conversation, and decide what deserves more work. But a demo can still have broken authentication, exposed data, missing tests, weak deployment settings, unsafe payment logic, or no recovery path.
The goal of this workflow is not to make you afraid of building. It is to replace a reassuring demo with evidence about what works, what has been checked, and what remains unknown.
- A polished screen does not prove the data behind it is isolated.
- A successful build does not prove the deployed app works for real users.
- An AI report that says “done” or “PASS” is not evidence by itself.
- A prototype can be valuable while still needing separate review before real users, money, or sensitive data are involved.
02
Step 1 — Save the current version
Treat a GitHub commit as a save point. Before asking an AI coding agent to make a large change, save the version you understand so you have a known place to return to.
- Check the current branch and working tree before editing.
- Commit a clean, understandable version before a large or sensitive change.
- Use a short commit message that describes the state you are saving.
- Keep the last known-good commit visible before you ask AI to continue.
03
Step 2 — Ask for an audit before edits
Ask Claude Code or Codex to inspect first. Use audit-only prompts before implementation prompts so you can understand the current files, assumptions, risks, and missing checks before anything changes.
- State what must not change and which areas are sensitive.
- Ask the agent to report files, data flows, integrations, and unknowns without editing.
- Review the proposed plan before approving one small implementation step.
- Use the AI Said “PASS” Verification Checklist when an agent reports success.
04
Step 3 — Build a test matrix
Write down the user journeys and the awkward cases before you trust the demo. A small test matrix makes it easier to see what was actually tested instead of relying on a single happy-path click.
- Test the happy path from a new visitor to the intended result.
- Try blank, invalid, long, duplicate, interrupted, and unexpected inputs.
- Use a second test user to check auth and ownership boundaries.
- Test on a phone, narrow viewport, slow network, and delayed response.
- Record the scenario, expected result, actual result, evidence, and unknowns.
05
Step 4 — Check data access
If the app uses Supabase, review the database and storage boundaries separately from the interface. A hidden button is not the same as a database policy that refuses the wrong user.
- List which tables and storage objects are public, user-owned, or admin-only.
- Verify Row Level Security and test reads, inserts, updates, and deletes with more than one user.
- Check storage buckets as well as database rows.
- Keep service-role keys on trusted server-side paths only.
- Confirm private rows cannot be reached through guessed IDs, public links, or alternate API calls.
06
Step 5 — Check deployment
A successful Netlify or Vercel build proves that the hosting process completed. It does not prove the production app works, has the right environment variables, or matches the version you reviewed.
- Check build settings, environment variables, domains, functions, and logs.
- Keep preview and production configuration distinct and understandable.
- Run a live smoke test on the production URL after deployment.
- Test forms, auth, API calls, redirects, and important error states on the live site.
- Keep a known-good commit or deployment so rollback is possible and understandable.
07
Step 6 — Check payments and access
Use provider test mode first. Payment access is a chain between the provider, your webhook, your database, and the user experience; checking only the checkout screen is not enough.
- Verify webhook signatures before accepting an event.
- Test duplicate events, retries, delayed events, failures, refunds, and cancellations.
- Check that user entitlements change only when the application has verified the right event and user.
- Test the access result separately from the payment result.
- Do not enable live mode until provider-side and application-side checks are documented.
08
Step 7 — Prepare launch basics
Before sharing with real users, make the basic expectations visible. This is not a legal certification; it is a practical pass to make sure users can understand the app, contact someone, and see how their information is handled.
- Review privacy policy, terms, and any refund or cancellation wording that applies.
- Provide a support or contact path that someone actually monitors.
- Use clear consent wording for email capture and other personal data.
- Check the sitemap, robots behavior, canonical URLs, and Search Console setup where relevant.
- Run the Non-Developer App Launch Checklist before a public launch decision.
09
Step 8 — Decide: fix, test, or launch small
Do not launch because an AI tool says the work is done. Decide based on the evidence you have and whether the known risks are acceptable for the specific audience, data, and payment flow you plan to use.
- Fix issues that block the main user journey, expose data, or create unsafe access.
- Test again when the evidence is incomplete or the environment changed.
- Launch small when the remaining risks are understood and acceptable for that limited use.
- Keep a rollback plan, a support contact, and a record of what you still do not know.
10
Copy-paste workflow prompt
Give this prompt to Codex or Claude Code before asking for implementation work. It asks for a simple evidence-based plan and prevents an unsupported PASS claim.
Prompt 91
Audit the demo before launch work
Copy-paste prompt
Inspect the current app as an audit-only task. Do not edit files, install packages, deploy, change production settings, or claim PASS without evidence. 1. Identify what is demo-only, mocked, hardcoded, incomplete, or dependent on a local environment. 2. Trace the main user flow, authentication, data access, Supabase/RLS policies, storage, secrets, deployment configuration, payments, webhooks, entitlements, errors, and recovery path. 3. Identify what is missing before a limited launch review. Include privacy, terms, contact/support, email consent, sitemap/Search Console, and rollback considerations. 4. For every risk, link it to one concrete check or manual test. Name the file, dashboard, provider setting, or user flow where evidence should come from. 5. Separate verified evidence, reasonable inference, and unknowns. Do not treat a passing command as proof that the full app works. Return: (a) a plain-English audit summary, (b) a short risk table with severity and evidence needed, and (c) a simple next-step plan ordered as save point, audit, test, data access, deployment, payments/access, launch basics, and launch-small decision. Stop without editing.
Review the report yourself. A generated audit is a plan for checking the app, not proof of security, compliance, revenue, or production readiness.
11
What this workflow cannot prove
This workflow helps you create better evidence and make a more informed next decision. It does not replace qualified review or provider requirements.
- It cannot prove legal compliance or that your privacy and terms cover every situation.
- It cannot prove product-market fit, revenue, or that users will keep using the app.
- It cannot prove full security; new risks can remain outside the checks you ran.
- It cannot replace provider dashboard checks for payments, hosting, email, or authentication.
- It cannot replace app-store review requirements or guarantee approval.
- It cannot turn challenge or workflow completion into production readiness.