What is Vibe Coding? Where it works and where it fails in real projects
Short answer
Vibe coding is a development style where you describe software in plain language to an AI, let it write the code, and guide the process by testing the output without reading every line. It is incredibly fast for prototyping and personal tools, but real products with users and data require manual code reviews, testing, and security audits.
What is Vibe Coding? Where it works and where it fails in real projects
Short answer
Vibe coding is a development style where you describe software in plain language to an AI, let it write the code, and guide the process by testing the output without reading every line. It is incredibly fast for prototyping and personal tools, but real products with users and data require manual code reviews, testing, and security audits.
Vibe coding means explaining software to AI in plain language, having it write the code, and testing the result without reading the code itself. It reduces prototyping to a few hours, but in a product with real users, it returns as unread code, security vulnerabilities, and maintenance issues. Below, the questions of what is vibe coding, how the term changed, what the numbers say, and where it is useful in a real project find their answers.
What is vibe coding?
Vibe coding is a development style where the developer describes the desired software to an AI in natural language and has the AI write the code. The developer runs the result and checks it; if they dislike a part, they state it again in a plain sentence, and the AI fixes it. The code itself is not read.
In Turkish, it is sometimes translated as "sezgisel kodlama" (intuitive coding). Since developers have adopted the English version, this article uses that term as well.
It would be wrong to call every task involving AI-written code "vibe coding." The distinguishing question is simple: Is there someone who reads, understands, and takes responsibility for the code written by the AI? If so, that work has other names that emerged by the end of 2025.
Where did the term vibe coding come from?
The term was coined by Andrej Karpathy in February 2025. Karpathy, who was part of the founding team at OpenAI and previously led the AI team at Tesla, was describing a new coding habit in a post on X. He described letting himself go into the flow, accepting changes suggested by the AI without reading them, and pasting error messages back into the model without adding any comments when an error occurred. He described this method as a not-so-bad way for projects that he would write over a weekend and then throw away.
The expression quickly spilled out of the software world. Collins Dictionary selected "vibe coding" as the 2025 word of the year.
One year later: Vibe engineering and agentic engineering
As the term spread, its meaning expanded as well. When every piece of code written with AI began to be called "vibe coding," two new expressions emerged.
Developer Simon Willison proposed the term vibe engineering in October 2025. In this article, he defines vibe coding as the "fast, loose, and irresponsible" way of producing software with AI. On the opposite end, there is a way of working where experienced developers accelerate using AI agents while taking responsibility for the output. According to Willison, what makes this possible are automated tests, planning before starting, regular version control, and code reviews. The main idea of the article is this: AI tools augment existing expertise.
Karpathy held a similar position in his assessment written in February 2026 for the first year of the term. He explained that professionals no longer write most of the code, but instead manage and supervise the agents that write the code. He suggested the name agentic engineering for this way of working. The second half of the name emphasizes that the work is a real, learnable, and improvable expertise.
The difference between the three expressions lies in who reads the code:
Approach
Who reads the code?
Suitable for
Vibe coding
No one
Prototype, one-off tool, experiment
Vibe engineering
Developer, along with tests
Product to be released
Agentic engineering
Developer, by managing multiple agents
Large and ongoing projects
How to do vibe coding?
Regardless of the tool, the loop is the same:
The developer describes the request. For example, "Create a page where a user can enter their daily water consumption and see a weekly graph."
The AI writes the code, creates files if necessary, and installs packages.
Run and test the result in the browser or terminal.
If there is something broken or undesirable, describe it again using natural language. Pasting the error message as is is often sufficient.
Repeat steps 3 and 4 until the desired result is achieved.
Vibe coding loop
How clear the initial request is directly determines the outcome. The difference between "Make a nice site" and "Create a three-section, light-colored landing page that collapses to a single column on mobile" is visible in the very first attempt. Adding an acceptance criterion to the request also helps: a sentence like "Show an error message if the form is submitted empty" defines what the AI considers "finished." Writing a good prompt is a subject for a separate article.
Which tools are used for vibe coding?
It is possible to divide vibe coding tools into roughly two groups.
Browser-based application builders
Tools like Lovable, Bolt, v0, Base44, and Google AI Studio allow you to produce applications by chatting in the browser without installing anything. They show a preview instantly right next to the chat and deploy most applications with a single click. For someone who doesn't know how to code, these are the easiest starting points. Most of the security research mentioned below was conducted on applications built with these tools, because a user who never sees the code also fails to see a missing security configuration.
Code editor and terminal agents
Claude Code, Cursor, OpenAI Codex, and Google Antigravity work within the project folder on your computer. They read and modify files, execute commands, and run tests. Since the developer retains the ability to see and change the code, this group is preferred more by software engineers. Vibe engineering and agentic engineering are also mostly performed with these tools.
Vibe coding in numbers
Discussions about vibe coding are often based on impressions. There are a few measured data points available, and they do not always align.
Y Combinator CEO Garry Tan stated in March 2025 that approximately one-quarter of the startups in the Winter 2025 batch had 95 percent of their code written by AI. This figure is YC's own statement, not an independent measurement.
In Stack Overflow's 2025 survey conducted with over 49,000 developers, approximately 77 percent of participants said vibe coding was not part of their professional work. In the same survey, the proportion of those who do not trust the accuracy of AI output rose from 31 percent to 46 percent in one year.
In a controlled experiment published by METR in July 2025, 16 experienced open-source developers finished their tasks 19 percent slower when using AI tools. After the experiment, these same developers believed that AI had made them 20 percent faster. In other words, while developers were slowing down, they thought they were speeding up. METR notes that this result is no longer current because the tools have changed. They do not consider the data from a repeat trial in 2026 to be reliable, as most developers refused to work without AI.
According to a review by CodeRabbit in December 2025 on 470 open-source pull requests, changes co-written by AI had an average of 1.7 times more issues compared to those written solely by humans.
Where does vibe coding work?
Prototyping and idea validation
You no longer need to spend days to see if an idea works. When presenting a new idea to a client or a team, a clickable prototype prepared in a single afternoon is more convincing than most presentations. If the idea doesn't stick, the loss is limited to a few hours.
One-off tools and internal utilities
A script that cleans a CSV file, a simple calculation sheet for the team to use, or a data transformation tool that will be run once and then deleted falls into this category. In these kinds of tasks, the only expectation is the correct result, and this is where vibe coding saves the most time. The common denominator is that they are not exposed to the internet and do not hold anyone's personal data.
Trying out a new technology
When trying a new library or language, starting from a working example generated by AI is much faster than starting from a blank file. After running the example, the developer who opens and reads the code learns the new technology much faster. Those who move on without reading the code are left with nothing but a working output.
Speed in prototyping, accumulated risk in growing projects
Where does vibe coding not work?
Problems begin the moment the resulting product has real users.
Security
AI writes working code, but the code it writes is not always secure. Veracode tested over 100 language models in July 2025 with coding tasks where they had to choose between a secure and an insecure path. The models chose the insecure path in 45 percent of cases. In Java, this rate was over 70 percent.
The situation is no different in live applications:
Security researcher Matt Palmer scanned 1,645 applications made with Lovable in May 2025. In 170 applications, database access rules were missing or incorrectly configured, allowing users' emails, phone numbers, and payment information to be read from the outside. The issue was recorded under CVE-2025-48757.
In a study published by Escape in October 2025, over 2,000 security vulnerabilities, more than 400 exposed secret keys, and 175 personal data leaks were found in more than 5,600 applications built with vibe coding tools.
The most common errors found in these studies are:
API keys remaining inside the code sent to the browser
Database access rules not being defined at all, allowing every user to read others' data
The application processing user-provided data without validation
None of these become apparent while testing the application. The page loads, the form works, and everything seems fine. A developer who does not read the code will only notice the problem when someone exploits the vulnerability.
There are also attacks targeting the AI tools themselves. These attacks, which attempt to redirect the agent using instructions hidden in a web page or document that the agent reads, are called prompt injection. A separate article will cover this topic.
Non-existent packages
Language models sometimes suggest installing libraries that do not actually exist. A study published at USENIX Security 2025 examined 576,000 code samples generated by 16 models. At least 5.2% of the packages suggested by commercial models and at least 21.7% of those from open-source models did not exist, resulting in a total of over 205,000 hallucinated package names.
The risk is this: If an attacker publishes a malicious package with a name that models frequently hallucinate, a developer who tells them to "install" without reading the code will manually add that package to their project. Security researchers call this attack slopsquatting. Checking whether every new package suggested by AI truly exists, who published it, and how many people use it largely eliminates this risk.
Agent authority
In July 2025, SaaStr founder Jason Lemkin conducted a 12-day vibe coding experiment with Replit's AI agent. On the ninth day, despite instructions not to make changes, the agent deleted the production database. According to eWeek, the records of 1,206 administrators and more than 1,196 companies were lost. The agent initially stated that the data could not be recovered, but Lemkin later restored the data himself. Replit subsequently separated development and production databases automatically and added a planning mode where the agent cannot make changes.
The damage an agent can cause is limited by the authority granted to it. Every experiment conducted with an agent that has access to a production database is performed with real user data.
Maintenance and architecture
Fixing unread code is difficult. The first version comes out quickly, but three months later, when a small change is needed or a bug appears, no one knows how the code works. When asking AI for a fix, it can break one part while repairing another.
AI solves every request based on the current context. In a project that grows with dozens of requests, several separate functions doing the same job, conflicting data structures, and unplanned dependencies accumulate. Unless someone looks at the project as a whole, this accumulation does not fix itself; it grows slightly with every new request.
Vibe coding in a real project: Two examples
AI agents worked intensively during the development process of this site. The site is a portfolio with a desktop operating system appearance: windows open and close, they are draggable, and each window has its own address. Astro and Cloudflare Workers run in the background. The agents accelerated most of the work. However, two incidents clearly demonstrated the cost of accepting code without reading it.
The first was regarding SEO. The pages looked perfect in the browser. However, the URL inspection in Search Console revealed that Google saw almost no content on the pages. JavaScript was generating the content after the page loaded, so in the HTML coming from the server, the content existed only as raw data. A visitor saw no difference, but Google encountered an empty page. The solution was to render the content on the server, but to get there, we first had to understand what the code was doing.
The second was related to screen sizes. The messages window looked seamless on the developer's screen but did not fit on smaller screens. Measurements taken across five different screen sizes showed that the window overflowed to the right at a width of 1280 pixels, leaving the "Send" button off-screen. The AI had correctly calculated the window position according to the design dimensions. Since small screens were not included in the request, it had not accounted for them.
After these two incidents, the following workflow was established in the project:
Work starts with planning. The agent explains what it will do before writing code, and work begins once the plan is approved.
After every change, the code is read line by line; no misunderstood line is accepted.
There are automated tests running in a real browser for critical flows. When the agent breaks something, the tests catch it immediately.
Everything related to security, such as session, form, and database access, undergoes a separate check.
This workflow largely overlaps with the steps Willison lists for vibe engineering. According to Willison, the work done by someone who reads, tests, and understands the code written by AI is not considered vibe coding, but AI-assisted software development. Vibe coding works well during the prototyping stage. For code intended for production, the second path must be followed.
Before deploying an application built with vibe coding
Even someone who cannot read code can perform certain checks. For most of the items in the list below, it is enough to ask the AI the right question or check the tool settings:
Secret keys: API keys and passwords should not be in the code sent to the browser; they should reside in server-side environment variables. Asking the AI, "Is there any value that must remain secret in the code sent to the browser?" is a good starting point.
Database rules: If using Supabase or Firebase, access rules must be defined for every table. Logging in with two separate accounts and testing whether one can see the other's data proves that the rule is working.
User input: It is necessary to test how the application behaves by entering unexpected data (very long text, HTML tags, empty values) into forms.
Packages: It is necessary to check that every package added to the project actually exists, comes from a known publisher, and is widely used.
Separate environments: The development database where the agent operates should be separate from the database holding real user data.
Rollback path: Regular commits should be made with Git. When an agent breaks something, returning to the last working version takes only minutes.
A second pair of eyes: If the application handles personal data or payments, someone capable of reading the code should take an additional look before deployment.
Frequently asked questions about vibe coding
Do you need to know how to code for vibe coding?
You don't need to in order to start. Tools like Lovable or Bolt are sufficient to produce a working application without writing any code at all. As the application grows and reaches real users, being able to read the code and understand errors becomes increasingly important.
What is the difference between vibe coding and agentic engineering?
In vibe coding, the developer does not read the code written by the AI; they only check the result by experiencing it. In agentic engineering, agents still write the code, but the developer sets the plan, reviews the code, verifies it with tests, and takes responsibility for the outcome. Andrej Karpathy suggested this term in February 2026 as the professional counterpart to vibe coding.
Can an application built with vibe coding be deployed?
Yes, but it must pass a security check first. You should not deploy the application without ensuring that API keys remain secret, database access rules are defined, and user data is protected. The checklist above is a starting point for this.
Will vibe coding take jobs away from software developers?
The trend is moving in the opposite direction. As writing code accelerates, deciding what to write, building the architecture, and verifying the result become more valuable. These tasks still belong to the developer.
Can vibe coding be done for free?
Most tools have a free plan, but they have daily or monthly usage limits. This is sufficient for small experiments, but for regular use, you generally need to switch to a paid plan.