VibeSecurity

Fundamentals

What Is Vibe Coding? A Security-First Explainer

What is vibe coding? It is building software by describing what you want to an AI model, running the result, and steering with more plain-language instructions, without necessarily reading the code that comes out. It has made it possible for a founder with no engineering background to ship a working product in a weekend. It has also moved the hard part of software, deciding what is safe, to a place where nobody is looking.

By the VibeSecurity team5 min read

Where did the term come from?

The phrase was popularized in early 2025 by Andrej Karpathy, a well-known AI researcher, in a short post describing a style of programming where you give in to the flow, accept what the model produces and paste error messages back until things work. He framed it as fine for throwaway weekend projects.

The term then escaped that narrow meaning. Today people use it for anything from a prototype built in a browser-based builder to a paying product assembled with an AI editor. Those are very different risk situations, which is why the definition matters less than the question of what your app actually holds.

How does the vibe coding workflow actually work?

Most setups follow the same loop. You describe a feature. The tool generates or edits files, often across the front end, a database and a few server functions. It runs a preview. You click around, notice something wrong, and describe the fix. Repeat until it looks right.

The tools differ in where they sit. Browser builders such as Lovable, Bolt and Replit generate and host the whole thing for you. AI editors and agents such as Cursor, Windsurf and Claude Code work inside a code repository on your machine. Component generators such as v0 produce interface code you paste into a larger project. What they share is that the feedback signal is visual: does it look and behave correctly?

Where does risk enter at each step?

Security failures are quiet. A missing permission check does not break a page, so the preview looks perfect while the hole sits open. Here is how the loop maps to risk.

The vibe coding loop and what can go wrong at each step
StepWhat happensWhere risk enters
PromptYou describe the feature in plain languageSecurity requirements are rarely stated, so the model optimizes for working, not for safe
GenerateThe tool writes front end, database rules and server codeAccess rules are left open, secrets are placed in browser code, or checks are done only in the interface
PreviewYou click through as yourselfYou are the admin and the owner, so you never see what a stranger would see
IterateYou paste errors back until they vanishA permission error gets fixed by loosening the rule instead of correcting the query
DeployOne button publishes itDebug routes, test accounts and permissive settings go live with the rest
Add packagesThe model installs libraries to solve problemsNobody has reviewed what was added, or whether it is maintained

Why the preview lies to you

The most important mechanism is the third row. When you test your own app you are logged in as the person who created everything, so every rule that should block someone else stays invisible. An open database table returns exactly the same rows to you as a correct one does.

The same effect shows up in iteration. If a request fails because a database policy is too strict, the fastest way to make the error disappear is to remove the policy. A model asked to make the error go away will sometimes do exactly that, and the app then works for everyone, including people you never intended.

Vibe coding versus AI-assisted engineering

It helps to separate two habits. In AI-assisted engineering, an experienced developer uses a model to write code faster and still reads, tests and owns what ships. In vibe coding proper, the person may not read the code at all. Both use the same tools. The difference is whether a human with the relevant knowledge reviews the output.

That is the core security question: not whether AI wrote the code, but whether anyone who understands access control, secrets and data exposure looked at it before real users arrived.

Who is vibe coding good for?

It is a poor fit, without added review, for anything that holds payment details, health records, identity documents or private messages. The next question, whether that is actually safe, is covered in our guide on whether vibe coding is safe.

  • Founders validating an idea with a prototype that holds no real customer data.
  • Internal tools used by a handful of trusted people, behind a login the company controls.
  • Marketing sites, landing pages and simple content pages where nothing sensitive is stored.
  • Experienced developers who use it as an accelerator and review the result.
  • Learners exploring how software works, provided they treat the output as unreviewed.

A minimal safety habit that fits the workflow

You do not need to stop working this way. You need one extra step before real users. Test the app as a logged-out visitor and as a second ordinary account, and check that neither can see the first account's data. Then look for secret keys in the browser and confirm that every private table has access rules turned on.

For a Supabase-backed app, this query lists tables in the public schema that have Row Level Security switched off.

Supabase SQL editor
select tablename
from pg_tables
where schemaname = 'public'
  and rowsecurity = false;

Frequently asked questions

Who coined the term vibe coding?

Andrej Karpathy, an AI researcher, popularized the phrase in early 2025 to describe programming by prompting an AI and accepting its output with little code review. Since then the phrase has broadened to cover most AI-assisted app building, including serious products, which is where the security concerns arise.

Do you need to know how to code to vibe code?

No, that is the appeal. You describe features in plain language and the tool writes the code. The catch is that you also cannot easily spot what the tool got wrong, so security checks that do not need code, such as testing with a second account, become essential.

Is vibe coding the same as using GitHub Copilot?

Not exactly. Autocomplete tools suggest lines to a developer who reads and decides on each one. Vibe coding usually means delegating whole features to an AI and judging by behavior. The tools overlap, but the difference is how much a knowledgeable human reviews the code.

Put it into practice

Sources

  1. 1.OWASP Top 10:2021
  2. 2.NVD: CVE-2025-48757
  3. 3.Supabase docs: Row Level Security