guide

How to Test Your AI-Built App Before You Launch It

How to test your app before launch — a vibe coder's checklist: smoke-test every flow, catch broken links, test on mobile, and run simple automated checks.

Caleb NorthBy Caleb North · The ship-it engineerJune 3, 2026
Verified June 2026

Caleb North is a fictional AI persona, not a real person. This article was written by AI and reviewed by a human editor before publishing. How we work →

How to Test Your AI-Built App Before You Launch It

The AI said it's done. The app runs, the page loads, and you're one click away from sending the link to the world. Stop for a second. Knowing how to test your app before launch is the difference between a quiet, confident release and a friend texting you "hey, the signup button does nothing" an hour after you posted it.

You don't need a QA team or a testing background. You need an afternoon and this checklist. Everything below is built for someone who vibe-coded a web app and wants it to not embarrass them — not for a 50-person mobile team shipping to the App Store.

Why testing an AI-built app matters more, not less

AI coding tools are confident. They'll tell you the feature is built, the bug is fixed, and everything works — and a lot of the time it does. But "it runs without errors" is not the same as "it does the thing a real person needs it to do."

The AI only sees what's in your conversation. It doesn't click around your app the way a user will. It doesn't know that the form it just wrote submits to an endpoint that was renamed two prompts ago, or that the mobile layout you never looked at is unusable. That gap between "the code is technically correct" and "the app actually works" is exactly what testing catches.

The good news: small AI-built apps are easy to test by hand because there isn't much surface area yet. You can genuinely click through the whole thing yourself.

Step 1: Smoke-test every flow by hand

A smoke test is the simplest test there is: open the app and use it like a real person, watching for anything that breaks. No tools, no setup. This catches the majority of launch-day embarrassments.

Click every button and walk every path

Open your app in a fresh browser tab and go through it the way a stranger would. Click every button. Open every menu item. Follow every link. The goal is to leave no clickable thing untouched.

Pay special attention to buttons that look clickable but do nothing — a "Save" button the AI styled but never wired up is the single most common dead-on-arrival bug in vibe-coded apps.

Test the flows that actually matter

Some paths matter far more than others. Walk through these end to end, as if it's your first time:

  • Sign up with a brand-new email — not your test account that already exists. New users hit different code.
  • Do the one main thing your app is for — the core action, start to finish.
  • The payment flow, if you have one — use a test card and confirm what happens after payment.
  • Log out, then log back in — session bugs hide here.
  • Password reset, if it exists — almost nobody tests this, and it's almost always broken.

If any of these fail, fix them before anything else. A broken signup means nobody gets in the door. When a flow breaks and you're not sure why, our guide on how to fix AI-generated code walks through the exact recovery steps.

Step 2: Check for broken links and dead buttons

Links rot quietly. The AI may have left placeholder href="#" links, pointed a nav item at a page that doesn't exist, or linked to an external site with a typo in the URL.

Go through every link in your app and confirm each one lands somewhere real:

  • Internal links — every nav item, footer link, and in-page link goes to a real page, not a 404.
  • External links — your social links, docs, and "learn more" buttons open the right site.
  • Buttons that should navigate — a "Get Started" button that scrolls nowhere or reloads the page is a broken link in disguise.

If you have more than a handful of pages, this is the first thing worth automating — see Step 6.

Step 3: Test it on your phone

Most of your visitors will open your app on a phone. Most vibe coders only ever look at it on a laptop. That mismatch is where launch-day "it looks broken on mobile" complaints come from.

Don't just shrink your browser window. That helps, but it lies. Open the actual deployed app on your real phone and check:

  • Does the layout hold together? No text running off-screen, no buttons stacked on top of each other, no horizontal scrolling.
  • Are tap targets big enough? Buttons and links should be easy to hit with a thumb, not pixel-perfect mouse targets.
  • Do forms work with the mobile keyboard? The keyboard shouldn't cover the field you're typing in.
  • Does the menu work? Mobile navigation is often a separate hamburger menu the AI built but never tested.

Browser devtools have a mobile preview (the phone icon in the inspector) — use it for a quick first pass, but always confirm on a real device before launch.

Step 4: Try the edge cases AI forgets

AI writes the "happy path" — the version where the user does everything right. Real users don't. They paste weird text, refresh at the wrong moment, and click twice. These are the cases the AI quietly skipped.

Spend ten minutes deliberately misusing your own app:

  • Submit an empty form — does it warn you, or crash?
  • Enter the wrong kind of input — letters in a number field, a fake email like notanemail, a giant block of text.
  • Refresh mid-flow — reload the page halfway through signup or checkout. Does it recover or lose everything?
  • Double-click submit buttons — does it create two accounts or charge twice?
  • Use the browser back button — apps that hijack navigation often break here.
  • Open a page you shouldn't be able to — try visiting a logged-in page while logged out. Sensitive pages should redirect, not show.

That last one bleeds into security. Before you go public, also confirm you're not leaking anything you shouldn't — our guide on keeping secrets safe in AI-generated code covers the API-key and .env mistakes AI tools make by default.

Step 5: Have a friend try it

You've gone blind to your own app. You know exactly which button to click and in what order, so you never see the parts that confuse a stranger. A second person breaks that spell instantly.

Send the link to one or two friends and ask them to try doing the main thing your app does. The trick is what you do while they try: nothing.

  • Don't coach them. The moment you say "no, click the other one," you've lost the data. Their confusion is the bug report.
  • Watch where they hesitate. A three-second pause means something isn't obvious.
  • Note what they ask. "Wait, how do I…" is a missing label or a missing button.

You don't need 100 beta testers — that's advice written for funded startups. For a small AI-built app, two or three fresh sets of eyes catch the things you physically cannot see anymore.

Step 6: Run simple automated checks with Playwright MCP

Once you've smoke-tested by hand, you can have an AI agent re-run the boring parts for you. The Playwright MCP gives Claude Code (or Cursor, or Windsurf) real control of a browser — it can open your app, click through flows, and report back what it sees, all from a plain-English instruction.

Connect it, then ask your AI agent something like:

Using the Playwright MCP, open http://localhost:3000, click through the
signup flow with a test email, then tell me every link that 404s and
any button that does nothing when clicked.

The agent drives a real browser, follows the steps, and writes up what broke. It's genuinely useful for the repetitive checks — clicking every link, confirming a flow still works after you change something, catching a button you wired up wrong.

Be honest about what it's good for. is great at "does this flow complete and do the links work." It's not a substitute for your own judgment on whether the app feels right, looks good on mobile, or makes sense to a stranger. Use it to automate the tedious checks so you can spend your attention on the human ones.

For the full setup walkthrough, see what the Playwright MCP is and how to install it.

The 2-minute pre-launch checklist

Run this right before you ship:

  • [ ] Clicked every button and link — nothing dead, nothing 404s
  • [ ] Signed up with a fresh email, logged out, logged back in
  • [ ] Walked through the core action start to finish
  • [ ] Tested the payment flow with a test card (if you have one)
  • [ ] Opened the live app on a real phone
  • [ ] Submitted empty and wrong inputs without it crashing
  • [ ] Confirmed logged-out users can't reach logged-in pages
  • [ ] Checked no API keys or secrets are exposed
  • [ ] Had at least one friend try it without coaching
  • [ ] (Optional) Ran an automated link/flow check with Playwright MCP

If every box is checked, you're in better shape than most launched apps.

What to skip (for now)

The internet is full of pre-launch checklists with 183 items. Most of them are written for mobile teams shipping to millions of users, and following them would mean never launching. For your first AI-built app, you can safely skip:

  • Load and stress testing — you don't have the traffic to worry about it yet. Cross this bridge when you have real users.
  • Formal accessibility audits — worth doing eventually, not a launch blocker for a small project.
  • Cross-browser matrices — test in the browser you and your users actually use. Don't agonize over an obscure one.
  • Automated test suites with full coverage — overkill at this stage. The hand checks above catch far more for the effort.

Ship it, watch how real people use it, and fix what actually breaks. Testing isn't about being perfect before launch — it's about not shipping something obviously broken. Once it's clean, the next step is getting it live: here's how to deploy your first app free with Vercel and Claude Code.

The StackBrief weekly

New reviews and the AI-coding-tool news worth knowing — with our take. One email a week, unsubscribe anytime.

Keep reading