Blog

Vibe coding and the part you can't see

Building for yourself is all upside, so enjoy it. The moment strangers' data or money runs through your app, the stakes flip, and the things that bite are the ones that look perfectly fine on screen.

You’ve had the picture in your head for years. The app, or the website that finally looks the way you always wanted. For most of that time there was a wall between the picture and the real thing, and it was called “I can’t code”. Now the wall’s gone. You described it, the AI built it, and it looks brilliant. That “why was this ever hard?” feeling is real, and you’ve earned it.

One thing worth knowing on the way through. Software has been a profession for fifty years, and not because the people doing it were guarding the easy bits. The part you can see, the part that looks finished, was never the hard part. The hard part is everything that doesn’t show up on screen. AI is brilliant at the part you can see and very quiet about the part you can’t, which is a lovely combination right up until other people start relying on your thing.

So this is a map of the invisible part. It isn’t here to put you off, because you should keep building. It’s so you know where the few real traps are. Most of them take one question to the same tool that built the app.

Who’s it for?

The most useful question before you touch anything is who’s actually going to use it, because nearly every trap below only switches on when the answer is “people who aren’t me”.

1 Just you Your machine, your data. Close to risk-free.
2 People you know A few invited users. A bit more care.
3 Strangers Their data or money. Run the checks.
The line sits between two and three. Everything below is about stage three.

If it’s just you, on your own machine, you’re in paradise, and you can skip most of this. Plenty of brilliant building never needs to leave that stage. A few people who know you is a small step up. Strangers on the open internet is the line. The moment someone you’ve never met can log in and hand over their email, their photos or their card, everything changes.

Size doesn’t protect you. The question isn’t whether your app is big. It’s whether someone else’s data or money runs through it. Ten real users and their personal details carry the same exposure as ten thousand. The checks are what protect you.

The open front door

This is the big one, the mistake behind almost every vibe-coded app that’s ended up in the news. Your app’s data lives in a database, usually Supabase or Firebase, and by default the front door can be wide open.

The part nobody explains is that your app talks to that database with a key that’s meant to be public. You can’t hide it, and you’re not supposed to. What keeps your data safe is a set of rules about who can read and write what, which Supabase calls Row-Level Security. If those rules are off, anyone who opens their browser’s developer tools, copies the key and types one line can read the lot. Every name, email, address and message.

This isn’t hypothetical. In 2025 a researcher scanned apps built on Lovable and found about 170 with databases anyone could read. An AI social app called Moltbook leaked 1.5 million keys the same way, found by the security firm Wiz. The Tea app left a storage bucket open, and around 72,000 images walked out the door, selfies and ID photos included. Same mistake every time.

The check, word for word, into your tool: “Is Row-Level Security turned on for every table, and does every rule limit each user to their own rows? Show me each table’s rule and flag anything a logged-out visitor can read.” Then log out of your own app and try to load the data. If anything comes back, the door’s open.

On isn’t the same as correct. The tool’s own checker will often say “Row-Level Security is on” and stop there. A rule can be switched on and still let everyone read everything. Ask to see the actual rule, not whether one exists.

Keys in the window

Some keys are meant to be public. Plenty aren’t, and AI has a habit of pasting private ones straight into the part of the app anyone can see. Keys to your payment system, your AI provider or the master key to your database are passwords. If they end up in the code that runs in a visitor’s browser, you’ve handed them to every visitor, and bots scan for exactly that all day. One developer watched a leaked key run up $300 of someone else’s usage in two days, and when the security firm Escape.tech scanned thousands of vibe-coded apps, it found hundreds of exposed secrets.

Ask your tool to search the whole project, including the code that runs in the browser, for anything that looks like a secret key, and move them all to the server. Then make a new copy of every key that was exposed, in its own dashboard. Moving it isn’t enough. Once a key has been public, assume someone has it.

A hidden button isn’t a locked door

AI loves to tuck the admin panel or the paid feature out of sight in the design while leaving it wide open underneath. A real lock means the server asks “are you allowed to do this?” every single time, not just “should I show this button?”

One founder built a sales tool with AI, “zero hand-written code”, and launched to applause. Within 72 hours people had got past his paywall by editing one value in their browser, run his AI bills through the roof and filled his database with junk. When he asked the AI to fix it, it broke other things, and he couldn’t read his own code to sort it out. The app was gone within a week.

The test that catches this takes a minute. Log in as yourself, then change the ID in the address bar to someone else’s. If you can see their stuff, that’s the hole.

The bill with no ceiling

AI tools and the services behind them bill by usage, and by default there’s no upper limit. One user posted a $607 Replit bill from a few days of letting an agent build unattended. Worse, if a paid service sits behind your public app with no limit, a bot can hammer it all night on your card. So set a hard cap in your build tool today, and a usage cap and billing alert on every paid service behind the app. If you normally spend $5 a day, have it message you at $50.

Keep the robot away from the real thing

Never let an AI agent work directly on the database real people are using. In mid-2025 a Replit agent deleted a company’s live database of more than a thousand records, during a stretch when it had been told, in capital letters, to change nothing. Replit refunded the user and changed its setup so it can’t happen that way again, but the lesson holds whatever tool you use. Give the AI a separate copy to play in, make sure backups exist, and restore one once to prove it works. A backup you’ve never tested is a hope.

Invisible to Google and the AIs

Plenty of AI-built sites are invisible, not to people but to Google and to the AI assistants people now ask for recommendations. Many builders assemble the page inside the visitor’s browser, so the raw page a crawler fetches is an empty shell. Google can sometimes work around that, slowly. The crawlers behind ChatGPT, Claude and Perplexity mostly don’t. They read the raw version, and if it’s blank, you don’t exist.

Thirty seconds tells you which side you’re on. Open your site, right-click and choose View Page Source. If your words are in there, you’re fine. If it’s an empty box and a pile of script, ask your tool to build the pages on the server instead. It’ll know this as server-side rendering or static generation. Lovable added this for new projects in April 2026, so anything built before then probably still needs it.

The boring three

Three more that aren’t exciting and still matter.

If you collect anyone’s details, even just an email, you’ve picked up legal duties, and “the AI built it” isn’t a defence. In Australia the Privacy Act applies, and the regulator picked up new enforcement powers and started checking businesses’ privacy policies in 2026. Publish a plain-language privacy policy, give people a way to delete their account, and if you’re handling health, children’s or financial data, get proper advice.

Open it on your actual phone before anyone else does. AI tends to build for a laptop first, so menus that look perfect on your screen fall apart on a phone, which is where most of your visitors are.

And keep a copy of the code somewhere you own. Connect the project to GitHub while it’s small, so a full copy lives in an account you control. Some tools make this easy (Bolt, Lovable and v0 all sync to GitHub), and Base44 is the most locked-in of the popular ones. The same instinct applied to your whole AI setup is what AI sovereignty is about.

Ask it what you can’t see

Almost all of this you can sort out yourself, today, by asking the tool that built the app. It wrote the code, so it can review the code. The trick is to stop asking it only to build, and start asking it to tell you what you can’t see: “I don’t really understand software. This looks good to me and I’m about to put real people on it. What are the biggest risks? What would keep you up at night? What should I be asking that I don’t know to ask?” Then sit with the answer. That’s the layer your own eyes were never going to reach.

It helps to name the usual suspects. There’s a well-known top-ten list of web security holes, kept by a group called OWASP, and AI tools will often leave a couple in place until you name them. When a firm called Tenzai built the same app with five different AI tools, all five left the same hole. There’s a newer trick worth knowing about too. AI sometimes installs software packages that don’t exist, inventing plausible names, and attackers have started registering those made-up names and filling them with malware. So ask it to confirm that every package it installed is real.

Some models will refuse. A few of the newer models will decline a request that sounds like an attack plan, even when it’s your own app. That’s the same caution that stops a stranger pointing an AI at yours. Keep the question about finding and fixing rather than breaking in, and you’ll get what you need.

There’s still a line where doing it yourself stops being enough. Once you’re holding data that would really hurt someone if it leaked, like health records, money or anything to do with kids, or real revenue depends on the thing staying up, get a one-off review from someone who builds this for a living. Same as you’d want a sparkie to sign off the wiring before you sell the house.

And if you’re nowhere near that line, put the worry down and keep going. This is the best time there’s ever been to build the thing that’s been stuck in your head. Ask the hard question, run the checks when other people turn up, and until then, enjoy the part where it finally works.

Get in touch

We build businesses that run on AI and help a few other people set theirs up in the same way.