Guide — buying a technical audit

The AI codebase audit: what it covers, what it costs, when you need one

You built something with AI help, or inherited something someone else built. Before you pay anyone to audit it — us included — here is what a real audit checks, what a shallow one skips, the evidence standard to hold it to, and what it should cost in the UK market. With sources for every number.

7 min read Updated 13 August 2026 By Appaya Ltd

The short version

When you actually need one

Four situations reliably justify paying for an outside technical read, because in each of them the cost of being wrong is no longer just yours to absorb:

None of these need a large team or a mature product — a two-month-old app raising a seed round qualifies just as much as a three-year-old one. What they share is a decision behind the question, where being wrong is expensive.

When you don't

If your app is a side project with no users, or you're still testing whether anyone wants the thing at all, an audit is premature. Code you might throw away next month doesn't need a risk-ranked remediation plan — it needs you to keep shipping and find out if it's worth keeping. The same goes for a team that already has a senior engineer capable of reading their own Row Level Security policies and git history; paying an outsider to confirm what you already know is theatre, not diligence. Spend the money when the answer starts to matter to someone other than you.

What a real audit covers, versus a shallow one

The difference between a real audit and a shallow one is not effort or price — it's whether the findings are checked against the actual system, or against what the system is supposed to do.

Security: correctness, not presence

A shallow review checks whether Row Level Security is switched on. A real one reads what each policy actually permits. In 2025, researchers confirmed CVE-2025-48757 — 170+ live apps built on one popular AI platform exposing data publicly because RLS was missing or, in many cases, technically enabled but functionally useless: a policy of USING (true) passes an automated scan and returns every row in the table to anyone holding the public key (Superblocks). This is not an isolated platform problem. Veracode's 2025 study across 100+ models found AI-generated code chose the insecure implementation roughly 45% of the time, with no meaningful improvement in newer models (Veracode). A real audit reads policies against the roles they're meant to separate, scans the full git history for secrets (a key committed early and later "removed" is still live in history), checks which server functions hold privileged keys or skip auth verification, and traces the two or three riskiest flows — sign-up, role assignment, anything touching money — end to end.

Architecture and platform lock-in

What's genuinely portable versus what only runs inside one vendor's platform is a factual question, not a vibe. A real audit states plainly which parts of your stack you own outright, which depend on a vendor's managed database or AI gateway, and what leaving would cost in developer-days.

Real versus placeholder

AI tools are fluent at producing code that looks finished — a settings page that renders, a button wired to nothing, an integration returning mock data. A shallow review reads the UI and assumes what it sees is what ships. A real one traces each claimed feature to the code path that actually executes, and says plainly which parts of the product are real.

Test coverage, measured

"We have tests" is not a number. A real audit runs the suite, reports what percentage of the codebase it actually exercises, and states which critical paths — payment, auth, data deletion — have none. Coverage claimed from memory or a README is not evidence.

Deployment and rollback, tested not assumed

The last shallow-review gap shows up at the worst possible time: can this app actually be redeployed and rolled back, or does "deployment" mean clicking a button in a platform UI with no record of what ran and no way back if it breaks. A real audit checks whether a bad release can be undone in minutes, not discovered as a gap during the first incident.

The evidence standard

Every finding in a real audit should be reproducible: a specific file, a specific table, a specific policy, a command you can run yourself and get the same answer. If a report tells you "security needs work" with no file reference, that's an opinion, not a finding — and opinions are cheap to produce and expensive to act on. Ask any audit provider, before you pay them, whether their findings will be reproducible by someone else reading the same repository. If the answer is vague, that's your answer.

Red flags in an audit provider

Questions to ask before you buy

If you want a straight answer

Appaya's own audit works on the standard above: security reviewed for correctness rather than presence, architecture and lock-in stated plainly, real-versus-placeholder traced through the actual code paths, test coverage measured rather than assumed, and every finding attached to evidence you can check yourself. It's one fixed fee, agreed at a fit check once your codebase's scope is clear — not a number produced before anyone has read your code.

How the audit works Request a fit check

If your app is specifically built on Lovable or Base44, the platform-specific guides go deeper on lock-in and migration: moving off Lovable and Base44 — stay or migrate.