What is vibe coding?

"Vibe coding" is an approach to application development that involves heavily relying on a large language model (LLM) for generating code.

What is vibe coding?

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.

How does vibe coding work?

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.

What are the pros and cons of vibe coding?

The benefits of vibe coding include:

  • Near-instant prototyping: Developer teams can use vibe coding to quickly spin up beta versions of new product or feature ideas and try them out.

  • Less unnecessary manual effort: Boilerplate and low-level code can be produced automatically by LLMs in vibe coding (copying boilerplate code has always been common in development).

  • Faster development and launches: Writing a new application or feature can be time consuming, but vibe coding can produce the necessary code in seconds or minutes — although further prompting may be needed to get the given application or feature working properly.

Some of the downsides can include:

  • Loss of understanding of codebases: Development teams that ship vibe-coded features with minimal review can become unfamiliar with their codebases. This can make it harder to fix bugs or vulnerabilities.

  • Compliance challenges: Sometimes the result of vibe coding is shipping untrusted code. Developers may lose track of how apps process personal data, for instance, which can cause compliance issues.

Are there any security concerns associated with vibe coding?

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.

FAQs

What is the core concept of "vibe coding"?

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.

How do large language models (LLMs) facilitate vibe coding?

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.

What are some of the key advantages of using vibe coding in application development?

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.

What are the potential drawbacks or downsides of adopting a vibe coding approach?

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.

What security risks are associated with vibe coding?

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.

Who first introduced the term "vibe coding"?

The term "vibe coding" was introduced by Andrej Karpathy, co-founder of OpenAI, in a post on X in February 2025.

How does testing and debugging typically fit into the vibe coding workflow?

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.

In what ways does vibe coding differ from traditional coding practices?

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.

Why is it important to be aware of how an LLM handles data when using it for business purposes?

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.