Fix my vibe-coded app

It works. That is not the same as being ready.

You built something real with AI and it runs. Then you tried to put it in front of people and found that "runs" and "launchable" are different problems. This page is the honest list of what is usually between the two — and you are welcome to fix all of it yourself.

I read it myself and send back the three biggest things standing between your build and real users, in writing, within two business days. No call, no deck, no obligation.

Six symptoms, and what is actually causing them

These are not hypotheticals. They are what shows up, in roughly this order of frequency, when someone sends over an app they built with an AI tool and cannot launch.

It works locally and breaks the moment it is deployed

Why: The generated app assumed its development environment: a path that only exists on your machine, a dependency the host builds differently, an environment variable nothing set in production.

Fix: Reproduce the real build in a container first, fix what falls out, then automate the deploy so the difference cannot come back.

Anyone can see data that should be private

Why: Access control was written in the interface rather than in the database. The button is hidden; the endpoint is not, and the key that reaches it ships in your own JavaScript.

Fix: Enforce access on the server, per table and per record, then verify it by querying as a signed-out stranger.

Sign-in works but everything around it does not

Why: Generators finish the happy path. Password reset, email verification, session expiry, and account deletion are consistently left as stubs.

Fix: Complete the flows, expire sessions, and make deletion real — the last one is a GDPR obligation, not a nice-to-have.

Payments look connected but the numbers do not match

Why: A checkout button is not billing. Webhooks are unverified or absent, so failed charges, refunds, and cancellations never reach your database.

Fix: Verify webhook signatures, make handlers replay-safe, and reconcile subscription state against the provider on a schedule.

You are afraid to change anything

Why: Months of prompting left three ways to fetch data and no tests, so nobody can tell what a change will break until a customer finds out.

Fix: Consolidate the duplicated patterns and put tests on the paths that carry money and customer data. Not everywhere — there.

You would learn about an outage from a customer

Why: Nothing is watching it. No error tracking, no external uptime check, no logs you can search after the fact.

Fix: Error reporting that alerts a phone, an external uptime check, and searchable logs. Roughly an hour of work, once.

Start from the tool you built it with

The gaps differ by generator. Lovable leaves database policies open; v0 leaves nothing behind the interface at all; Replit apps are welded to Replit. Pick yours for the specific list.

Built it for your own team rather than for customers? The blockers are different — usually a security review you cannot pass. That is the internal tools page.

Two ways to find out where you stand

Work through the production readiness checklist on your own — it is the same list I use, published in full. Or send the repo and I will do it for you and write up the three that matter most.

Questions people ask before they send anything

Do I have to rebuild my vibe-coded app from scratch?

Almost never, and you should be suspicious of anyone who opens with that. The generated code is usually fine; what is missing is everything around it — access control, environments, migrations, CI, monitoring. Rebuilding throws away the part that actually took you time, which is the product decisions embedded in the screens.

How much does it cost to get a vibe-coded app production-ready?

It depends on what is wrong, which is why the first step is reading it rather than quoting it. The free teardown tells you the three biggest problems at no cost. The full written review is €750 fixed price, credited back if you continue. Taking it all the way live is from €7,500 for a typical fixed-scope sprint.

How long does it take?

A typical prototype-to-live sprint runs about two weeks: a few days closing blockers, a few days on deployment, CI and monitoring, then launch week on call. Apps carrying payments or existing customer data take longer, because the migration has to be reversible.

Will you work with the tool I used, or make me switch?

We work with what you have. Lovable, Cursor, Claude Code, Replit, v0, Bolt, or a mix of several — the output is ordinary code in an ordinary repo, and the missing pieces are the same ones either way.

Do you need commit access to my repository?

Not to read it. Read access, or a zip, is enough for the teardown and the review. If you hire us to do the work we agree access then, and you keep ownership of everything throughout.

Something else? kristian.dienes@ladient.sk, or book 30 minutes.