Skip to main content
AC
← Blog

Field notes

From vibe coding to production

The prototype was real work. It just is not the same work as running it for other people.

Published July 2026 collection10 min readTechTide AI

A generated prototype can help a team explore an interface or workflow. Before other people depend on it, review the data model, permissions, failure handling and tests.

The trouble is the last mile. A prototype has to be right once, for you, with data you chose. A product has to be right every time, for strangers, with data they chose. Here is the pass that closes that gap.

Day one: the data model

Everything else is recoverable. A wrong schema poisons every feature built on top of it, and by the time you notice, real rows exist.

  • Constraints where they belong: not-null, unique, foreign keys. Generated prototypes lean on application logic and skip these constantly.
  • Money as integers or decimals, never floats. Timestamps with timezones, always.
  • A plan for edits and deletes. Prototypes assume inserts. Reality is corrections.
  • Row-level access rules enforced in the database, not filtered in the client. Test cross-account access before launch.

Day two: auth, permissions, and validation

Prototypes hide behind obscurity. Real apps get poked. Verify sessions server-side on every protected path, check permissions per record rather than per page, and validate every input at the boundary with a schema rather than trusting the form that produced it.

Roles belong in their own table, checked server-side. Roles stored on a profile row that a client can update are a privilege escalation waiting for someone curious.

Day three: failure and money

  1. Every external call gets a timeout and a retry with backoff. Prototypes assume the network works.
  2. Errors reach you, not just the user's console. One error reporter, one channel someone reads.
  3. Rate limits on anything expensive or public, and idempotency keys on writes triggered by webhooks.
  4. If AI calls are involved, per-run token caps and a daily spend ceiling. The failure mode is a loop, not an outage, per cost control.

Day four: tests on the paths that matter

Not coverage targets. Tests on the money paths: signup, payment, the core action, and permissions. If your app has AI behavior, an eval suite matters more than unit tests, because that is where silent regressions live.

Agent-generated tests need reading rather than trusting, for the reasons in how to review agent-written pull requests.

Everything worked. Two customers could see each other's invoices, because the filter was in the front end.
, Illustrative example

Day five: know what is happening

  • Uptime check on the real user path, not the health endpoint.
  • Error rate and latency, visible on one screen.
  • Spend per day with an alert below the ceiling.
  • A basic funnel, so you learn whether anyone completes the core action.

What not to do

Do not rewrite. The prototype encodes real understanding of the problem, and a rewrite discards that in exchange for a cleaner directory structure. Harden in place, one module at a time, starting with whatever real usage touches most.

And do not add architecture for scale you do not have. Queues, caches, and service splits solve problems you can measure. Until you can measure them, they are just more things that can break.

The list, in order

  1. Data model, constraints, and database-enforced access rules.
  2. Server-side auth, per-record permissions, schema validation.
  3. Timeouts, retries, error reporting, rate limits, spend caps.
  4. Tests on the money paths, evals on AI behavior.
  5. Uptime, errors, spend, and one funnel metric.

This is a review sequence, not a fixed delivery schedule or a guarantee of application readiness. If you have a stalled product build that has to work for a real customer, pilot, or launch, send the project brief. Scope and price are agreed before work starts. Related reading: the work.

Frequently asked

Is vibe coding good enough for production?

Assess the output before relying on it. Review authentication, data model, input validation, tests, observability and rate limits against the intended use. The review may identify further implementation work.

What breaks first when a prototype gets real users?

Data. A schema built for one happy path meets duplicates, nulls, and edits, and the app starts producing wrong numbers rather than errors. That is why the data model is the first thing to review.

How long does hardening take?

Timing depends on the application and the issues the review finds. Auth and permissions, data model, validation, error handling, tests on the money paths, monitoring, and limits.

Should I rewrite a prototype before launching?

Rarely. Rewrites throw away working knowledge of the problem. Harden in place, module by module, guided by what real usage actually touches.

Have a stalled product build?

I help founders turn stalled product builds into software ready for a real customer, pilot, or launch.

Show me what exists, what is stuck, and what needs to work. I take ownership of the implementation, test the agreed user journey, and document the handoff.

New field notes also go out on my newsletter. Subscribe on Substack.

Alex Cinovoj, Founder & CTO, TechTide AI · CTO & Co-Founder, CPG Playbook

Written by

Alex Cinovoj, TechTide AI

Founder & CTO, TechTide AI · CTO & Co-Founder, CPG Playbook. I’m based in Columbus, Ohio, and spent 13 years in IT across support, systems, cloud, architecture, and engineering, and the last 2 years on AI implementation. I’m a Lovable Senior Champion, an earned Discord community-support volunteer role, with 9 Anthropic Academy course completions. Logs over vibes. Production over theater.