"Vibe coding" is an approach to application development that involves heavily relying on a large language model (LLM) for generating code.
After reading this article you will be able to:
Copy article link
Vibe coding is a method of software development that heavily incorporates the use of large language models (LLMs) for generating code. The term "vibe coding," meaning AI-assisted coding, was coined by Andrej Karpathy, co-founder of OpenAI, in a February 2025 post on X:
There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. It's possible because the LLMs (e.g. Cursor Composer w Sonnet) are getting too good... The code grows beyond my usual comprehension, I'd have to really read through it for a while. Sometimes the LLMs can't fix a bug so I just work around it or ask for random changes until it goes away... It's not too bad for throwaway weekend projects, but still quite amusing.
Although Karpathy defined this term, many developers had already begun experimenting with a similar AI-assisted approach with the public release of LLMs like ChatGPT and Copilot.
The goal of vibe coding is to more quickly spin up working applications and new features. Traditionally, coding is a very precise activity; vibe coding instead enables developers to provide general, high-level directions to an LLM, which then produces the precise instructions contained within working code.
Similar to other use cases for LLMs, vibe coding involves providing prompts to a model, which produces content (in this case, code) in response. LLMs are generative AI models: Having been trained on vast quantities of examples, they can recognize, interpret, and generate language. LLMs are able to do this with both everyday human language and programming languages. This ability enables an LLM to generate working code, often within seconds.
The vibe-coding developer has to provide the LLM with the right prompts for the LLM to create the right kind of feature or application. In general, these prompts do not have to be particularly precise, although it may take several attempts for the LLM to produce code that works in the way the developer has in mind.
Testing and debugging comes after the LLM has produced code. This involves identifying bugs and security issues. The LLM can then be prompted to solve those bugs, or, as Karpathy described, "work around it or ask for random changes until it goes away" (an approach that may or may not work, depending on the bug).
A number of widely used LLMs are available to allow developers to experiment with vibe coding. Copilot, Cursor, Codeium, Qodo, CodeWhisperer, and Replit are all popular tools for LLM-assisted software development.
Read our article on how to get started with vibe coding to get started on your first project.
The benefits of vibe coding include:
Some of the downsides can include:
Vulnerabilities: Any application can contain vulnerabilities or security risks. Because vibe coding can make writing and shipping new features much faster, the danger is that more security issues slip through and reach the production stage. Then, these security issues can also be harder to fix if development teams are unfamiliar with the problem code.
Data loss: Any LLM use in a business context introduces the risk that the input may contain intellectual property that will be shared in external contexts. To protect internal data, developers need to be aware of how an LLM segments its data on the backend.
Learn more about how an LLM works and how to secure them.
Vibe coding is a software development method where a large language model (LLM) is heavily used to create code. The term was coined by OpenAI co-founder Andrej Karpathy in February 2025.
LLMs are generative AI (GenAI) models that have been trained on vast amounts of data, enabling them to understand and generate both human and programming languages. This allows them to produce functional code, often in a matter of seconds.
Vibe coding offers several benefits, including: rapid prototyping of new products or features; automation of boilerplate and low-level code; and faster overall development and launch times.
One disadvantage of vibe coding is that developers could potentially lose familiarity with their codebases, which can complicate bug and vulnerability fixes. Additionally, vibe coding can lead to compliance issues if the processing of personal data within applications is not carefully monitored.
Vibe coding can increase security concerns because the speed of development might allow more vulnerabilities to reach production. These issues can be difficult to resolve if the development team is unfamiliar with the automatically generated code. There's also a risk of data loss, as sensitive intellectual property might be exposed if inputs to the LLM are not properly managed.
The term "vibe coding" was introduced by Andrej Karpathy, co-founder of OpenAI, in a post on X in February 2025.
After an LLM generates the code, a developer is responsible for testing and debugging. The developer identifies and addresses bugs and security flaws. The LLM can be prompted to help fix these issues, or the developer might find workarounds or request random changes until the problem is resolved.
Traditional coding requires very precise work from developers. By contrast, vibe coding allows developers to give general, high-level instructions to an LLM. The LLM then translates these into the precise code needed for the application or feature.
In a business context, using an LLM introduces the risk that intellectual property included in the input might be shared externally. Developers should understand how the LLM processes and segments data on its backend to protect sensitive internal information.