How to watch a vibe-coded app you don’t fully understand
You don’t need to read the code the AI wrote. You just need to know if the thing it built still works.
That sentence is the whole article, so sit with it for a second. Somewhere in your project there are files you have never opened. Functions named things you didn’t pick. A database schema the agent decided on while you were describing a button. And it works. People sign up. Money comes in. You shipped a real thing without becoming an engineer, which was the entire point.
Then a quiet fear sets in. If you don’t understand how it works, how could you possibly know when it stops?
Here is the good news, and it is genuinely good. You don’t watch the code. You watch the outcome. A user never sees a single line of what the AI wrote. They see a page that loads, a login that lets them in, a checkout that takes their card. Those are the only things that matter, and you can watch every one of them without reading anything.
“Maintenance Is a Daily Reality: Every production vibe-coded app requires daily maintenance. Email systems break, OAuth connections fail, and databases randomly go down.”
— Jason Lemkin, SaaStr, 2025
That is from someone who has shipped a pile of these. Not a skeptic. A fan. And his point is the calm one: the app breaks, that’s normal, the only question is whether you hear about it before a customer does.
Watch the outcome, not the mechanism
Picture a house at night. You can’t see the wiring in the walls. You don’t need to. You walk past a room, the light comes on, you know the wiring is fine. The light is the outcome. The wiring is the mechanism. Your AI builder gave you a house with wiring you’ll never look at, and that is completely okay, because you can still check whether the lights turn on.
So forget the code. There are exactly three lights worth watching on a vibe-coded app that sells something:
Does the page load. Can a person sign in. Does a payment go through.
That’s it. If those three are green, your app is doing its job no matter what the files say. If one goes red, you have a real problem, and you’ll know which room to point the AI at, even if you can’t fix the wiring yourself. The diagnostic for “everything is broken at once and I don’t know where to start” lives in my AI-built app crashed, and it walks the same three lights in order.
The outside view is the only one your customers get
The trap with builder previews: they lie to you, gently. Not on purpose. The preview runs inside Lovable or Bolt or Replit with your logged-in session, your warm cache, your fast laptop. Your actual user shows up cold, on a phone, on hotel wifi, right after a redeploy that may have quietly reset an environment variable. The preview is the most flattering possible version of your app. Your customer gets the unflattering one.
This is why “it works on my screen” and “it works for users” are different claims. Checking your app the way a user does means loading it from the outside, not from inside the tool that built it. Open it in a private window. Try to make a fresh account. Run a one-dollar test purchase. You just did the three checks, as a stranger, and that is worth more than any green checkmark the builder shows you.
The platform-specific version of this, where Bolt’s preview passes and production fails for a different reason, is in Bolt.new preview vs production. The Lovable flavor, where login spins forever because the database quietly let go, is in Lovable Supabase connection lost.
The snippet that watches for you, no code needed
You can run those three checks by hand. You cannot run them at 3am, or while you’re asleep, or on the Tuesday you’re at a wedding. The point of watching from the outside is that something else does it on a schedule, so you’re not the schedule.
There are two ways to set this up with zero code, and neither asks you to understand the app.
One: point a watcher at your live URL. It loads the page every few minutes and tells you the moment the page stops answering. Catches the “whole site is down” case, the dead deploy, the expired certificate. Thirty seconds to set up, you just paste the address.
Two, and this is the one nobody else does well: paste one prompt into your builder chat. Tell Lovable, Bolt, Replit, v0, Cursor, Claude Code, or Windsurf to add a tiny script tag to your app’s head. The builder writes it. You redeploy. From then on, when your app throws an error in a real person’s browser, or a sign-up call fails, that snippet quietly reports it back, in plain language, no stack trace. No SDK to install, no code to read. You installed it in the chat, not in the code. That’s the trick: the same builder that wrote the parts you don’t understand can also drop in the part that watches them.
“AI Agents Will Lie to Make You Happy. They will say ‘yes’ to any request and claim everything is ‘working great’ even when it’s completely broken.”
— Jason Lemkin, SaaStr, 2025
Read that one twice. The builder will tell you everything is fine. That is exactly why you need a second opinion that isn’t the builder. An outside watch doesn’t ask the agent if the app works. It checks, the way a customer does, and reports what it actually found.
This is the part you genuinely shouldn’t do by hand forever. NoCrash watches your vibe-coded app from the outside, the page, the login, the payment, on a schedule, and tells you in plain language the moment one of them goes quiet, with no SDK and no code to read. You paste one prompt into your builder, or you hand over your URL, and that’s the install. Start free at nocrash.io and you’ll know your three lights are on before a customer tells you one went out. For the platform-agnostic “is it down or just me” decision tree, how to know if your workflow is running walks the same logic for automations.
You built something real without learning to read code. Watching it doesn’t ask you to start now.