Is every table or collection restricted server-side, not just hidden in the UI?
A hidden button is not a permission. Anyone can call the API directly with the key that ships in your front end.
Production readiness
This is the list we actually work through when someone sends a repo, in the order we work through it. Answer each one honestly. The 7 marked blocker are the ones where a "no" means you should not put real customer data in it yet — everything else is a matter of when, not whether.
Published in full on purpose. If you read this and fix everything yourself, that is a good outcome — it is the same list either way.
Area 1 of 7
Who can see and change what. This is where AI-built apps fail most often and most expensively, because the failure is invisible until someone looks.
A hidden button is not a permission. Anyone can call the API directly with the key that ships in your front end.
The most common real breach in these apps is not an attack, it is one customer seeing another customer’s records.
Sign-in is the part the generator finishes. The flows around it are where your first users get stuck and email you.
Under GDPR this is not optional, and retrofitting deletion across a schema you did not design for it is slow.
Area 2 of 7
Where your keys live, and whether production and your laptop are actually different places.
Shared environments mean a local test run can delete real customer data, and it usually does so on a Friday.
A committed key stays live in the git history and in every fork long after you delete the line.
Publishable and secret keys look alike. One in the wrong place is a bill you did not authorise.
If rotation means editing code and redeploying by hand, it will not happen fast enough to matter.
Area 3 of 7
Whether your schema can change after real data lands in it, and whether that data can be recovered.
Changes clicked into a console cannot be reproduced, reviewed, or rolled back. A new environment cannot be built at all.
Most managed databases back up by default and most self-hosted ones do not. Assumption is the failure mode here.
An untested backup is a belief, not a backup. The failure is always discovered on the day it matters.
Validation only in the app means the first bug writes data that every later query has to work around forever.
Area 4 of 7
Whether shipping is a routine event or a careful one.
Manual deploys are rare deploys. Rare deploys are big deploys, and big deploys are the ones that break.
Tests that nothing runs are documentation, and they rot within a week of being written.
Without a rollback path, every incident becomes a debugging session while users are watching.
A platform subdomain reads as a demo, and some corporate networks block the unclassified ones outright.
Area 5 of 7
Right now, would you find out about an outage from a dashboard or from a customer?
Errors logged to a console nobody opens are errors nobody fixes.
Internal health checks pass happily while DNS, TLS, or the host itself is what failed.
Without searchable logs, "it didn’t work for me" is unanswerable, and you will get that message.
An alert into an unwatched channel is the same as no alert, and costs the same to set up as a real one.
Area 6 of 7
The part that decides whether an EU business or an IT department is allowed to use what you built, regardless of how good it is.
Selling to EU customers without one is a live GDPR exposure, and B2B buyers check before procurement does.
Loading a tracker before consent is the single most commonly enforced GDPR failure on small sites.
Every SDK the generator added is a processor you are answerable for, whether or not you knew it was there.
"Forever" is a decision, not a default, and it is the wrong one for most of what these apps store.
Area 7 of 7
What happens in the weeks after the launch you are focused on.
Everything lives in your head until the week you are ill or on a flight.
Serverless and per-request pricing scale smoothly right up to the invoice that ends the experiment.
Generated projects pin whatever resolved on the day, including packages with published vulnerabilities.
An app only you can run is an app that stops the day you stop, and it is worth less if you ever sell it.
Count the "no"s. In the repos I read, a prototype that has never been deployed averages somewhere around fifteen — that is normal and it is not a judgement on your build. The number is only useful for one thing: telling you whether you are days away from launching or weeks.
A blocker is something you cannot undo after the fact: leaked data stays leaked, a deleted production database stays deleted. These are usually a day or two each, and they come first regardless of what else is on your roadmap.
Ship to people you can email personally. Fix the serious items during that window, before the volume arrives that makes each one expensive.
Genuinely. Ship it. Come back to the rest when growth or a customer makes one of them urgent — that is the right trigger for all of them.
Send the repo and I will work through this list myself and write back the three gaps that matter most for your build, with what each one takes to close. Free, in writing, within two business days, no call required.
It means the app can survive people who are not you: users who do the wrong thing, a deploy that goes badly, a key that leaks, a database that needs restoring. Concretely, it is the 28 questions on this page — and the 7 marked as blockers are the ones where the honest answer is that you should not put real users on it yet.
For a typical AI-built app with no paying users yet, about two weeks: a few days closing blockers, a few days on deployment, CI and monitoring, then a launch week with someone on call. Apps that already hold customer data or take payments take longer, because every change has to be reversible while the thing stays up.
Yes, and the list is published in full for exactly that reason. If you are technical and have the time, work down it in order — access control first, then secrets and environments, then backups. Most of it is a day or two each. People hire us when the launch is what matters and the checklist is what is in the way.
Access control first, always: a data leak is the only item on this list you cannot undo. Then environment separation and secrets, because those prevent the accidents. Then backups you have tested. Deployment, CI and monitoring after that — they make everything else cheaper, but they protect nothing on their own.
The teardown is free — send the repo, get the three biggest gaps back in writing. A complete written review against every item here is €750, fixed price, credited back if you continue. Doing the work and taking it live is from €7,500 for a typical two-week fixed-scope sprint. Prices in EUR, excluding VAT. USD invoicing available.
Something else? kristian.dienes@ladient.sk, or book 30 minutes.