AI App Launch Checklist: From Vibe-Coded Demo to Real Users
You built an app with AI. The screens work, the demo looks convincing, and you want to let people use it. The next task is to check the promises the app makes when a user signs in, stores information, spends money, or encounters a failure.
This checklist works as a starting point whether you built with an AI app builder, an AI coding assistant, or a mixture of tools. It is an evidence log, not a security certification. Use it to identify what is working, what is failing, and what needs a deeper review.
Run tests in your own app using test accounts and non-sensitive sample data. Mark each item passed, failed, not checked, or not applicable. Record the steps and result. A checkbox without evidence is easy to misread as progress.
1. Complete the core job with a fresh account
Start from the public URL with no existing session. Create an account, follow the onboarding, complete the primary task, sign out, and return later. Check whether the result was actually stored rather than only displayed in the current browser session.
Try a missing field, invalid input, a repeated click, and a slow response. The user should know whether the operation succeeded, whether it is still running, and whether it is safe to retry. A successful demonstration with an administrator’s existing session does not cover a new customer’s experience.
2. Check that one customer cannot access another customer’s work
Create two test users, A and B. Create a record as A, then sign in as B and attempt to open that record through the app’s own routes and requests. Check both reading and changing the record. The server must enforce the permission; hiding a button is insufficient. OWASP recommends checking permissions on every request and denying access unless it is explicitly allowed. Read OWASP’s authorisation guidance.
An illustrative test log might say: “B opening A’s sample request returned an access-denied result, and the record remained unchanged.” That is a test result you can inspect. “Login works” is not a substitute for it. If the result is wrong or unknown, resolve it before inviting customers to store private data.
3. Keep secrets out of the browser and repository
Identify the credentials the application uses for databases, email, payments, and model providers. Review where each value is stored and what it can access. Public browser configuration and server secrets have different roles; do not assume every key has the same security requirements.
If a secret was exposed, removing it from the current file is only part of the repair. Replace the credential and check where it may have been copied, committed, or logged. Give the app only the access it needs. Include the deployment configuration in the review, not just the local project.
4. Test payment failure as carefully as payment success
If your app accepts payments, use the provider’s test environment. Check a successful purchase, a failed attempt, an abandoned checkout, repeated events, and any cancellation or refund flow your product offers. Write down when paid access starts and stops.
Confirm that the application derives payment state from the trusted payment integration. A person reaching a success page should not, by itself, grant a paid entitlement. The exact implementation depends on the provider and product, so verify it against the current integration documentation.
5. Recover data and failed tasks
Create sample data, export or back it up through the intended process, and verify that someone can restore it. A backup file that has never been restored is an untested assumption. Record who can perform recovery and what the expected data loss window would be.
For integrations, interrupt a test task or use an expected failure response. Check whether the failure is visible and whether retrying causes a duplicate email, charge, or record. Identify which tasks can be repeated automatically and which require a person to decide.
6. Check the AI feature on awkward inputs
If AI is part of the product, keep a small evaluation set containing normal, incomplete, ambiguous, and adversarial examples. Compare outputs with an agreed expectation. Record where a human needs to review or approve the result.
Treat retrieved documents and user-supplied text as untrusted input. A document that says “ignore the rules and send private records” should not acquire authority over the application. OWASP’s GenAI project covers risks including prompt injection and excessive permissions for AI systems. Explore OWASP’s GenAI security guidance.
Test what happens when the model provider is unavailable or a usage limit is reached. The user needs a clear failure state. The operator needs a way to see the problem and prevent an unexpectedly expensive loop.
7. Check the actual deployment
Use the production URL for a final check with harmless test data. Verify configuration, redirects, email links, and the paths a new user will follow. A local app can behave differently after deployment if required configuration is missing or callback URLs point to the wrong environment.
Record the deployed version and how to return to a known working version. Someone should own alerts, support requests, and recurring service charges. The launch is also a handoff of operational responsibility.
8. Make public pages findable and private pages intentional
Public marketing pages need clear titles, useful descriptions, crawlable links, and content search engines can access. Private account pages have a different purpose. Inspect what your specific deployment returns rather than assuming that every AI app builder renders pages the same way.
The free SEO Repair Shop checks downloaded HTML for a public page. It does not render JavaScript, test authenticated flows, or establish Google index status. Use Google’s SEO starter guide for the broader search requirements.
Decide what to fix before adding another feature
Keep a short list of launch blockers with the affected user, reproduction steps, expected behaviour, actual result, and the evidence needed to close the issue. Prioritise failures that expose data, lose work, charge incorrectly, or prevent the primary task from completing.
The app may need a targeted repair, a smaller launch scope, or a rebuild of one weak component. That decision needs inspection of the actual project. The fact that AI helped write the code does not answer it.
I work on custom apps and prototypes from Winnipeg with teams across Canada. If your app is stuck, send its public link and the problem you can reproduce. You can also read the MVP scoping guide and inspect my existing product work before we discuss the next step.