ertac.paprat.com
EN

← Writing

Vibe Coding Before Release: Can Someone Else Use the Prototype?

· 3 min read · English

Rewritten: . Rewritten with AI assistance. Examples and tool references follow the original publication period.

You know which button to press because you asked for it. You know what the empty screen means because you watched the app being built. You know the sample data because you entered it yourself.

The first real user has none of that context.

That is the next useful test for a working prototype: can another person complete the intended task, and what happens when they take a path you did not rehearse?

In the earlier article on where to stop vibe coding, the concern was knowing when to read and verify generated code. Here the concern is the first shared release.

Start from an empty account

Suppose the app lets a small team collect project notes. Create a fresh account with no sample content. The page should explain what belongs there and offer a useful first action.

Now follow that action without using knowledge from the development conversation. Does the form say which fields are required? Does saving give a clear result? Can the user find the note again? Does refreshing the page preserve it?

An empty state that says “No data” is technically descriptive and often practically unhelpful. A specific explanation—what a note is for and how to create one—does more work than another decorative panel.

If possible, watch someone attempt the task without narrating the interface for them. Every explanation you feel compelled to add is a candidate for something the product has failed to communicate.

Try the wrong account

Use two accounts with different access. Attempt to read, edit, and delete the other account’s note by making the request directly, not only by clicking visible controls.

The server must enforce the rule. Hiding a button is a presentation choice, not permission enforcement.

Also test the ordinary permitted path. A patch that rejects every request can look secure under a single negative test while making the product unusable. The acceptance condition needs both halves: the owner succeeds, an unauthorized account does not.

Generated tests are useful when their assertions come from these independent requirements. Tests that merely reproduce the generated implementation’s behavior can certify the wrong rule.

Break the happy path deliberately

Interrupt the network while saving. Submit the form twice. Enter a long title, an empty value, and characters the interface was not designed around. Follow a deleted note’s URL.

For each case, ask three practical questions: what happened to the data, what does the user see, and what can they do next?

The answers should agree. A “Saved” message while the write failed is worse than an ugly but honest error. A retry that creates duplicate records can turn a transient failure into a cleanup problem.

If the app stores information people care about, verify how it can be restored. A backup setting in a dashboard is weaker evidence than a successful restore into a test environment.

Keep the first release small enough to support

Launch with a clear intended audience and a limited set of actions. Make it easy to report a problem, and collect enough diagnostic information to investigate without indiscriminately logging private content.

Record which known limitations affect users. An internal list nobody reads will not help someone whose important note disappears after a particular action.

The release threshold does not require a perfect product. It requires a credible account of the task, the important failures, and the response when something goes wrong. A stranger completing the workflow—and recovering from one deliberate failure—teaches you more than another successful run of your own demo.