Vibe code audit

Vibe code audit
and fixes

A senior analyst’s second opinion on everything your AI tool ships. We check your live app and fix what could hurt your users, at a fixed price, and every fix checked again, or refunded.

Every check is read by a senior analyst. Meet them

What you get01 / 9

One review. Everything you need to fix it.

Every £750 review ends with a scorecard: a verdict you can forward, and your app scored out of 5 in eleven areas by a senior analyst. With it come the findings ranked and priced, a prompt for your AI tool for each, a rules file, the call, and a second check after the fixes.

Why it matters
Illustrative · a booking app built with Lovable, Supabase and Stripe

Verdict

Ready with conditions

Ready · Ready with conditions · Not yet

  1. Move the Stripe key out of the page code and switch on row-level security, this week.
  2. Add a way to delete one customer’s data before you collect more.
  3. Put tests on sign-in and payment before the next release.

Average across
eleven areas

Fix first: Security, Database, Compliance and privacy, Verification and testing, Observability, Documentation

Security2 / 5Weak
What we look at
Keys, sign-in and payments, rate limits on sign-in, the packages your AI tool added, and any AI feature in your app (prompt injection, and what its AI can reach): whether someone could read or change what isn’t theirs.
What we found
A Stripe secret key sits in the page code.
What would raise it
Move the key to a server function.
Database2 / 5Weak
What we look at
Row-level security, the shape of the data, indexes on the busiest tables, migrations, and whether a backup can be restored.
What we found
One table has no row-level security, the orders table has no index, and no backup has ever been restored.
What would raise it
Switch on row-level security, add the index, and test a restore.
Compliance and privacy2 / 5Weak
What we look at
The basics for a UK app: where personal data is kept, cookie consent, a privacy notice that matches what you do, how a customer’s data is deleted, and the ICO Children’s Code if your users may be under 18.
What we found
Personal data sits in three places, and there’s no way to delete one customer’s data.
What would raise it
List where the data lives and add a way to delete it on request.

Scored by a senior analyst against the same criteria for every app, not by a tool. This example is an illustration, not a real client’s app. Compliance and privacy covers the basics; it isn’t legal advice or a certificate.

Ranked findings

Every problem, worst first, each with a fixed price.

  • CriticalStripe secret key in the page code
  • CriticalCustomers can read each other’s orders
  • HighPayment messages aren’t checked

A fixed price on each, set in the review.

A prompt for your AI tool

Fix it yourself in Lovable, Cursor or Claude Code if you’d rather.

Prompt
Turn on row-level security for the orders table, so each user sees only their own orders.

A rules file

AGENTS.md or CLAUDE.md, ready to commit, so your AI tool doesn’t undo the fixes.

# AGENTS.md
- Never put a secret key in front-end code.
- Every table with customer data keeps row-level security on.
- Check Stripe’s signature on every webhook.

A 30-minute call

With the analyst who reviewed your app, to agree what to fix first.

André DerraikSenior analyst · 30+ years

A second check

After the fixes, we check every item again.

  • Each fix checked again
  • A free follow-up check 30 days later
  • Guaranteed, or that item refunded

The problem in numbers

Escape.tech scanned 5,600 live AI-built apps (their report, October 2025). Your tool’s scan catches some of it. A person finds the rest. Compare the options.

Why it matters02 / 9

From vibe-coded to production-ready

AI tools get you to a working app in days. Making it safe for paying customers is a different job, and a vibe code audit is how you find out what’s left to do.

Compare the options
  • The usual holesRow-level security switched off. Keys left in the code. Sign-in that can be bypassed. Payment messages nobody checks.
  • Your tool’s scan isn’t enoughLovable, Bolt and Replit check for open data and leaked keys when you publish. They don’t look at payments, running costs, backups or monitoring, and their own documentation says the scans don’t replace a full review.
  • What waiting costsAdd up what a week offline would cost you, or one email telling every customer their data leaked. Most fixes cost less.
  • Bills that run awayCloud and API costs rise with every user, and the first warning is the invoice.
  • You don’t need a rewriteMost apps need a short list of specific fixes, not a new app. You keep your app and the tools you built it with.

What waiting costs: try your own numbers

£
A week offline
£1,167
A year’s revenue from the customers who left
£6,000
A review, then the usual fixes
£750 + £3,000 to £6,000

Rough sums from your own figures, not a forecast. Nothing you type leaves this page.

Compare03 / 9

Your tool’s scan, a scanner, or a review

Keep using your tool’s scan. Here’s what each option covers.

Meet the analysts
Your tool’s scanAn automated scannerOur review
Open dataDatabase rules switched offYesYesYes
Leaked keysSecrets in your codeYesYesYes
PaymentsStripe’s messages and refundsPartlyNoYes
Running costsLimits and calls that grow with usersNoNoYes
BackupsOn, and possible to restoreNoNoYes
MonitoringKnowing before your users doNoNoYes
A person reads itRanked in plain EnglishNoNoYes
The fixDone, then checked againPartlyNoYes

Based on the tools’ own documentation, October 2026. Lovable and Replit say their scans don’t replace a full security review.

The people04 / 9

The people who read your code

Not a bot, and not a junior reading a scanner’s output. Every check and review is done by a senior analyst you can name, look up and talk to, and the same person reviews your app, writes the report and takes the call.

See what we check
Maurício Ferreira

Maurício Ferreira

Founder · 20+ years in production

Designed, scaled and rescued software in production for 20+ years: at the BBC and, for ten years, at Visian Systems, a UK software house. Reads every request for a free check.

André Derraik

André Derraik

Senior analyst · Principal Software Engineer · 30+ years

Python and Django, Go, Java and Spring, C and C++, and Node.js.

João Gustavo

João Gustavo

Senior analyst · Principal Software Engineer · 10+ years

Python, PHP, Ruby on Rails, Angular and Flutter.

Edinaldo Sá

Edinaldo Sá

Senior analyst · Sr. Software Engineer & Architect · 16+ years

C# and .NET, Java, React and Angular, SQL Server and Azure.

  • Leandro MonteiroOperations & Data Analyst
  • Gabriel MoraesSoftware Engineer & Product Owner
  • Douglas CollarTech Lead & Product Owner
  • Adrian KougianosPartner & Manager
  • Giovani TadeiProject Manager
  • Mike LlewellynPartner & Manager · Principal Mobile Engineer
  • Phill HuntPartner & Manager
  • Kelvyn TellesDjango & Fullstack Developer
  • Luiz MainartBackend Software Engineer
  • Cícero JúniorData Engineer

See the whole team (38)

Video needed · WALKTHROUGH-01A senior analyst walks through a sample check on a demo app: their screen, their face in a corner, their own voice. Recorded by the analyst, never a client’s app without signed consent.16:9 · 60 to 90 s · plays on click, captioned

The people behind the reviews

Different stacks.One team.

From the free check to the fix: meet the people who review and repair AI-built apps at Visian Systems.

Building together, in person. Madrid
TeamBuilding together, in person.Madrid
How we deploy, on stage. André Derraik at Code Island
TalksHow we deploy, on stage.André Derraik at Code Island
A team, in one frame. Rio de Janeiro · 31 May 2024
TeamA team, in one frame.Rio de Janeiro · 31 May 2024

Different stacks.Same standard.One team.

38 people at Visian Systems.

Reviewed by people.Fixed by the same team.

From the free check to the fix.

Out where the work is. Angola ICT Forum · 2026
EventsOut where the work is.Angola ICT Forum · 2026
Conversations that keep going. Code Island
EventsConversations that keep going.Code Island
Beyond the screens. Visian volleyball
TeamBeyond the screens.Visian volleyball
Closing the year together. December 2025
TeamClosing the year together.December 2025
What we check05 / 9

Ten checks, in plain English

The free check covers what any visitor’s browser can see. The review covers all ten.

See what we send you
  • Secrets and packages

    Keys left in your code, where anyone can copy them (payment keys, database master keys, AI keys), and packages your AI tool added that don’t exist, are out of date or have known holes.
  • Database rules

    Who can read and change your users’ data. In Supabase this is row-level security; in Firebase, your security rules.
  • Sign-in

    Whether protected pages and actions really are protected, whether one customer can reach another’s account, and whether repeated sign-in attempts are limited. Tested with two test accounts and an anonymous visitor, not assumed from reading the code.
  • Payments

    Whether Stripe’s payment messages are checked, and what happens on a failed payment, a refund or a cancelled plan, and that a payment message received twice is only counted once.
  • Security settings

    The protections your server should send with every page, and a certificate that’s set up properly.
  • Personal data

    What you collect, where it’s kept and who can see it, so you can answer a customer’s question about their data.
  • Backups

    Whether backups are on, and whether you could actually get your data back after a bad day.
  • Running costs

    Spending limits, including hard caps on AI model calls, and the calls that grow with every user, so the first warning isn’t the invoice.
  • Errors and monitoring

    Whether you find out about problems before your users do.
  • Releases

    How a change reaches your users, and how to undo it if something breaks.

How exposed is your app? Ten questions

  1. Are all your secret keys (Stripe, database, AI) kept on the server, never in your app’s pages?
  2. Is row-level security, or Firebase’s rules, turned on for every table with customers’ data?
  3. Have you checked that one customer can’t see another customer’s data?
  4. Does your app check that payment messages really come from Stripe?
  5. Does your site get an A or B at securityheaders.com?
  6. Do you know every place your customers’ personal data is stored?
  7. Have you ever restored a backup to check it works?
  8. Do you have spending limits or alerts on your hosting and AI accounts?
  9. Would you know within an hour if your app went down?
  10. Can you undo a bad change in a few minutes?

Answer the questions to see where your app stands.

Your answers stay in this page. Nothing is stored or sent.

We look only with your permission. Before any access we sign an NDA and a data agreement, and we remove our access and delete our working copies within 30 days of the report call. A review is not a penetration test or a compliance certificate; it’s a plain-English look at the things that most often go wrong. No review can guarantee an app will never be breached.

Recently checked by our free scanner

Sites checked, names removed.

24 of the 518 sites Lookalike Check, our free design scanner, has looked at: how many of its 32 AI-template patterns each one shows. Design scans only; review results will appear here, anonymised, once clients agree. Scan your own site free.

SitePatternsFoundChecked
Show HN launchHigh 6 of 32Hero font mixVibe purpleGradients+318 Oct 2026
Show HN launchNone 0 of 32None found18 Oct 2026
Show HN launchHigh 5 of 32Centered + InterFAQIcon tile+218 Oct 2026
Show HN launchNone 0 of 32None found18 Oct 2026
Show HN launchLow 2 of 32Perma darkStat banner18 Oct 2026
Show HN launchNone 0 of 32None found18 Oct 2026
Show HN launchLow 2 of 32Hero font mixSentence headline18 Oct 2026
Show HN launchHigh 8 of 32Templated fontGradientsPerma dark+518 Oct 2026
A finding06 / 9

What a finding looks like

Every finding in a review is set out the same way, so you can see what it means and what it costs to fix. These three are illustrations, not real clients’ apps.

See how it works
Illustrative
  • FindingA signed-in customer can read other customers’ orders.
  • What we sawThe orders table has no row-level security. Signed in as a test customer, we asked the database for orders and received every customer’s, not just our own.
  • What someone could doDownload every customer’s name, address and order history, using only their own login.
  • SeverityCritical: fix this week.
  • The fixTurn on row-level security for the table and add a rule so each customer sees only their own orders. Then check the same request again.
  • Proof it’s fixedThe same request, signed in as the test customer, now returns only that customer’s orders; asking for anyone else’s returns nothing.
  • Effort and priceAbout two hours. Fixed price: set in your review.
Prompt for your AI tool
In Supabase, turn on row-level security for the orders table. Add policies so a signed-in user can read, update and delete only rows where user_id equals auth.uid(). Don’t change any other table. Then show me the policies and how to test them signed in as two different users.

[PROOF NEEDED: sample check] A full sample review, with the app’s name removed, will replace this illustration.

What the fix changes · illustrative
supabase/migrations/orders.sqlbefore
create table orders (  id uuid primary key,  customer_id uuid references auth.users,  address text,  total numeric); -- row-level security is off:-- anyone with the public key reads every row
supabase/migrations/orders.sqlafter
create table orders (  id uuid primary key,  customer_id uuid references auth.users,  address text,  total numeric); alter table orders enable row level security;create policy "Customers read their own orders"  on orders for select  using (auth.uid() = customer_id);
How it works07 / 9

Three steps, a fixed price at each

You decide at each step. Nothing is sold before we’ve seen the problem, and every fix is checked again, or refunded. Step by step, below.

Ask for a free check
The check
Free
  • You’ll know your three biggest risks
  • One page: the three most serious risks we can see from outside your app
  • Done by a senior analyst, with your permission
  • In your inbox within one working day. Yours to keep
The review
£750
  • You’ll know everything that needs fixing, and what each fix costs
  • Delivered within five working days
  • Ten checks, with access to your code, database and hosting
  • Every finding ranked, in plain English, with a fixed price for each fix
  • Access rules tested with two test accounts and an anonymous visitor, not assumed from reading the code
  • A scorecard: your app scored out of 5 in eleven areas, from security to design
  • A rules file for your AI tool (AGENTS.md or CLAUDE.md), ready to commit, so it follows what the review found
  • Money back within seven days of the report call if you’re not happy with the review
  • A 30-minute call to go through it
  • About two hours of your time in total: the NDA, setting up access, and the call
  • Fixes for most apps come to £3,000 to £6,000 in total; your £750 comes off that if you go ahead within 30 days. Fix prices hold for 30 days, and if a fix takes us longer, that’s our cost
The fix
Fixed price
  • You’ll have the fixes you chose, done and checked
  • Delivered in one to three weeks, depending on the list
  • A fixed price for each fix, set by the review: pick the ones you want
  • We work on a copy, and nothing goes live without your approval
  • Done by our engineers, then checked again, included in the price
  • A handover: a note on what changed, prompts for your AI tool, and a rules file it reads before every change, so it doesn’t undo the fixes
  • A free follow-up check 30 days later

Our guarantee: if an item on the agreed list fails our second check, we fix it within 10 working days or refund that item’s price.

This covers the code as we handed it over, not changes made after handover, and our total liability is capped at the fees you paid.

We don’t promise income. We promise things you can check: a safer app, lower running costs, fewer surprises.

Step by step

Free check · your-app.comIllustrative
  • CriticalSecret payment key in the page’s code
  • MediumNo security settings sent with the pages
  • LowError page shows file paths
  • One page · in your inbox within one working day
Questions08 / 9

Questions

Ask for a free check
How is this different from Snyk, SonarQube or CodeRabbit?

They’re automated tools, and good at what they do: Snyk looks mostly at the packages your app depends on, SonarQube at code quality, and CodeRabbit reviews each change before it’s merged. Keep using them if you do. A review adds a senior analyst who looks at how your live app behaves, from database rules and payments to backups and costs, ranks what matters for your business in plain English, and fixes it at a fixed price.

Can I keep building with AI afterwards?

Yes. You keep your app and your tools. The review comes with a rules file your AI tool reads before each change, so it follows what the review found, and every fix adds a note on what changed, so the tool doesn’t undo it.

How soon can you start?

The free check is in your inbox within one working day of your request. A review takes five working days from the day access is set up, and we’ll give you a start date when you ask for it.

What is in the vibe code audit scorecard?

A verdict you can forward (ready, ready with conditions, or not yet) with the three reasons behind it, then eleven areas, each scored out of 5 by a senior analyst: security, database, compliance and privacy, architecture and scalability, code quality, verification and testing, DevOps and infrastructure, observability, documentation, vendor independence, and design and user experience. Each score comes with the reason and what would raise it. It’s part of the £750 review.

Is this for my app?

Yes, if your app is live and people pay for it, or soon will; you built it with Lovable, Bolt, Replit, v0, Cursor, Claude Code or something like them; and you want to keep your app and your tools. It isn’t for you if you’re still looking for an idea, want a new app built from scratch, or want guaranteed income: we make your app safer and cheaper to run, and don’t promise what it will earn.

How much does a vibe code audit cost?

The first check is free. The full review is £750, with a fixed price for each fix it finds; most fixes come to £3,000 to £6,000 in total, and the £750 comes off if you go ahead within 30 days.

Is Lovable safe for production?

Lovable can run a production app, and it scans for common problems when you publish. Its own documentation says that scan doesn’t replace a full security review. What matters is how your app was set up: its database rules, keys, payments and backups.

Is Supabase safe for production?

Yes, when it’s set up properly. The usual problem isn’t Supabase but a table left without row-level security, or a secret key placed where the browser can see it.

What does “RLS disabled in public” mean?

It’s a Supabase warning that a table has no row-level security, so anyone with your app’s public key may be able to read or change it. On a table with customers’ data, it’s usually the first thing to fix.

My tool already scans my app. Why do I need this?

Keep using the scan. It catches open data and leaked keys. It doesn’t look at payments, running costs, backups or monitoring, or see your app the way a stranger does. That is where we look.

Should I fix my app or rebuild it?

Usually fix it. Most apps need a short list of specific fixes, done in your app, with your tools. If a rebuild really would be cheaper, the review says so.

Do I need to know how to code?

No. Everything is in plain English, with what to tell your AI tool if you’d rather make a fix yourself.

Which tools do you cover?

Lovable, Bolt, Replit, v0, Cursor, Claude Code and tools like them, plus the services they run on, such as Supabase, Firebase, Vercel and Stripe. See the full list of tools we review.

What access do you need?

None for the free check. For the review, read access to your code, database and hosting, after an NDA and a data agreement. We remove our access and delete our working copies within 30 days of the report call.

What does the free check look at?

Only what any visitor’s browser receives, and only after you’ve said yes.

How long does it take?

The check reaches you within one working day, the review within five working days of access being set up, and a fix takes one to three weeks, depending on the list.

What if a fix doesn’t hold?

We fix it within 10 working days or refund that item’s price. This covers the code as we handed it over, not changes made after handover.

Is my app GDPR compliant?

The review checks what personal data your app collects, where it’s kept and who can see it, which is most of what UK GDPR asks of a small app. We’re engineers, not lawyers, so we’ll tell you if something needs legal advice.

Is this a penetration test?

No. A review is a plain-English look at the things that most often go wrong in apps built with AI. If you need a penetration test or a certificate, we’ll say so.

Is there a community?

Yes. AI Ship Captains is a community for founders who run apps built with AI. It’s closed to new members for now; you can register interest on the community page.

Start09 / 9

You built the ship. Now captain it.

Start with a free check of your app: one page, three findings, yours to keep. Tell us about your app.

After your fix, stay on board: AI Ship Captains is also a community for founders who run apps built with AI. It’s closed to new members for now, but you can register interest.

Ask for a free check

A person replies within one working day. We use your details only for this check.