The world of software development is constantly evolving, and the latest term capturing the industry's attention is vibe coding. Coined by AI luminary Andrej Karpathy, vibe coding describes a novel approach where developers "fully give in to the vibes, embrace exponentials, and forget that the code even exists". This concept, born from the increasing proficiency of large language models (LLMs), suggests a future where creating software might feel less like traditional coding and more like an intuitive interaction with AI.
Karpathy's initial tweet on February 2nd, 2025, sparked a widespread discussion, quickly turning into a movement discussed in major publications and on social media. He described his personal experience using tools like Cursor Composer with SuperWhisper, where he would ask for changes in natural language, accept AI-generated code without reviewing diffs and troubleshoot by simply pasting error messages back to the AI. He noted it was "not too bad for throwaway weekend projects" but "quite amusing".
While Karpathy's initial framing suggests vibe coding might be best suited for experimental or short-lived endeavours, the buzz around it raises a pertinent question: How far can we really push this AI-driven approach? Can it move beyond weekend projects and offer tangible benefits for more substantial development efforts?
What is vibe coding?
At its core, vibe coding is an AI-dependent programming technique where developers initiate substantial software development tasks by crafting a big prompt, a comprehensive natural language description of a problem or desired functionality, submitted to a coding-tuned large language model (LLM). Rather than issuing a series of small, incremental prompts, the developer provides a rich, high-level input upfront. This triggers the LLM to generate a significant chunk of working code, which is then reviewed, refined through conversation in the chat window, and ultimately committed.
The process becomes a tight loop of ideation, generation, inspection and iteration, all mediated by the LLM. This shifts the developer's role from writing every line of code manually to guiding, testing and refining the AI-generated output. Karpathy's definition emphasises this hands-off approach: "Forget that the code even exists."
The process of vibe coding involves describing desired features or changes conversationally with the AI acting like an autocomplete on steroids, predicting and generating code. A key characteristic of what is often termed vibe coding is the tendency to accept all AI suggestions without thoroughly reviewing the changes or understanding the underlying code.
The prompt engineer who is doing vibe coding then writes some follow-ups to the LLM to add features or fix bugs, creating a loop of prompt → code generation that continues to iterate until the desired goal is achieved.
By guiding AI with prompts and feedback, non-programmers can create apps, websites and tools without writing code manually. This approach accentuates collaboration between humans and AI, focusing on intuitive and natural interactions rather than traditional coding.
While early descriptions of vibe coding emphasised a free-flowing, “just vibe it” style, rapid prompting and accepting code without deep inspection, the ecosystem has evolved.
Today, tools like Cursor and Copilot support a more nuanced form of vibe coding. Developers still describe what they want in natural language, but they can now inspect changes, run tests and integrate agentic workflows that support iteration and learning.
In this light, vibe coding is less about YOLO and more about orchestrating a creative loop between human intent and machine assistance.
What isn't vibe coding?
Not all AI-assisted development qualifies as vibe coding. If you’re reviewing diffs, writing tests, maintaining architectural integrity and deliberately integrating LLMs into established engineering workflows, you’re not vibe coding. You’re practising responsible, professional software development with AI assistance.
The difference lies in intent and discipline: vibe coding minimises friction, often at the cost of rigour. Responsible AI development emphasises understanding, validation and maintainability. Mistaking one for the other can lead to serious technical and operational risks, especially in production environments.
Technologies involved in vibe coding
Cursor, a code editor with integrated AI, is one of the most popular tools for facilitating vibe coding. However, we also have other options, such as Windsurf, GitHub Copilot or tools that live completely online, like Bolt or Replit — the list is very long as new ones are regularly released. You then select your preferred LLM (e.g. Claude, Gemini or GPT). Gemini is a good option because it has a long context window (the maximum amount of text an AI model can consider at once when generating a response).
Traditionally, LLMs like ChatGPT generate responses based solely on the input they receive, without interacting with external systems or performing additional tasks. However, with agents, the AI can perform tasks autonomously — like executing commands, creating files or making decisions without human intervention.
Take the example of an agent that can perform a web search based on a user’s request. Instead of just generating a response based on pre-existing knowledge, it can actively seek out the latest information on the internet, giving it the ability to handle real-time queries and provide up-to-date results.
This agentic approach takes AI’s capabilities beyond just answering questions or generating code — it enables it to perform more dynamic and interactive tasks, effectively broadening the scope of what AI can do for developers.
In the context of vibe coding, this means we’re not just relying on AI to suggest code, but also empowering it to take actions that drive development forward. This includes gathering real-time data, running processes or even integrating with APIs to fetch and use external information.
On top of that, we now have the Model Context Protocol (MCP), an open standard for seamless AI integration with external data sources and tools, which functions like a universal connector for AI applications, simplifying integration with external services.
How to vibe code
You can get started in just five steps:
- Choose a tool: Select an AI coding tool.
- Describe your idea: Explain to the AI what you want to build in detail.
- Review the result: Look at what the AI created and test it.
- Refine through conversation: Tell the AI what to change or fix.
- Deploy and share: Publish your creation for others to use.
Best practices to get the most from vibe coding
To get high-quality output from an LLM, start with an exhaustive, specific prompt. The more context and detail you provide upfront, the better the AI can generate code that aligns with your goals.
- Bad prompt: “Make a to-do app.”
- Good prompt: “Build a mobile-friendly to-do list web app using React and TailwindCSS. It should support adding, editing, deleting and reordering tasks via drag-and-drop. Tasks should be grouped by day, and the interface should support light and dark themes. Include a progress bar showing completion percentage. The design should be minimal, similar to Notion and optimised for mobile and desktop. Include placeholder task data and use localStorage for persistence.”
Better results come from employing these tips:
- Code generation tips:
- Refer to existing tools or products (“like Notion,” “similar to Trello”)
- Specify the tech stack (e.g. React, TailwindCSS, Next.js)
- Include user scenarios or flows (“user should be able to…”)
- Mention style inspirations, tone and audience
- Code refinement tips:
- Point out specific issues (“the modal doesn’t close after saving”)
- Explain the why (“this flow feels too complex for mobile users”)
- Ask for alternatives (“can you make it more responsive using a grid layout?”)
- Keep feedback contextual — copy and paste relevant code snippets or describe where it fails
What is vibe coding good for?
Despite the concerns, vibe coding offers several potential advantages, particularly in specific contexts:
Lightning-speed proof of concepts (POCs)
Vibe coding can significantly accelerate the initial stages of a project or the creation of code boilerplate. The ability to quickly generate code based on descriptions allows for rapid prototyping and validation of ideas. Some founders in the Y Combinator (YC) batch (a cohort of early-stage startups selected to receive funding, mentorship and support from the prestigious Silicon Valley accelerator) have even reported a staggering "100x speed up" in development using this approach.
Empowering designers for mockups
Designers can leverage vibe coding to create functional mockups and prototypes of applications without needing deep coding knowledge. This allows for more realistic and interactive design explorations.
Facilitating big experiments and explorations
Vibe coding can lower the barrier to entry for experimenting with new libraries, frameworks or unconventional ideas. Developers can quickly generate code to test hypotheses and understand the capabilities of different technologies.
Democratising software creation for non-developers
One of the most compelling aspects of vibe coding is its potential to enable individuals with minimal technical knowledge to build functional software. By guiding AI with natural language prompts, non-programmers can create simple apps, websites and tools. For "total beginners, it can be incredibly satisfying to build something that works in the space of an hour" (Business Insider).
What are the downsides to vibe coding?
While the allure of rapid development is strong, vibe coding comes with significant challenges:
Accumulation of tech debt
Code generated without careful review may lack clarity, proper architecture and adherence to coding standards. This can lead to an exponential climb in difficulty as the codebase grows, making future modifications and debugging increasingly complex.
Introduction of bugs
Relying on AI-generated code without understanding its logic increases the risk of undetected bugs and errors. The anecdote of a vibe-coded SaaS product being hacked due to overlooked vulnerabilities highlights this danger.
Security vulnerabilities
Blindly accepting AI-generated code can introduce security flaws, such as exposed API keys or inadequate authentication mechanisms. As AI researcher Simon Willison cautions, you need to "understand how the code works!" if it involves secrets.
Challenges in maintainability
Evolving and debugging systems built on code that developers don't fully comprehend becomes significantly harder. Most professional software engineering involves "evolving existing systems, where the quality and understandability of the underlying code is crucial" (quote by Santiago Santa Maria).
Lack of understanding and accountability
When developers don't grasp the functionality of the code they're using, identifying and fixing issues or taking responsibility for the system's behaviour becomes problematic.
Legal and ethical concerns
The risks associated with security vulnerabilities and data privacy in vibe-coded applications raise significant ethical considerations. Examples include the potential for unauthorised data exposure, biased or harmful outputs generated by the model, insufficient oversight of AI-generated code and a lack of accountability for bugs or exploits. This could have legal ramifications, depending on the context and severity of the issues.
Limited avenues to scalability
Vibe coding often emphasises short-term wins over long-term scalability. Without thoughtful design patterns, modular architecture or adherence to performance best practices, applications may struggle to scale effectively under growing user demand or expanding feature sets. This can result in costly refactors or even a full rewrite.
How can teams mitigate the risks of vibe coding?
Enterprises interested in leveraging AI-assisted development must implement safeguards to contain the downsides of vibe coding. Some key strategies include:
- Establish governance and code review frameworks: Develop clear policies for how and when AI-generated code is used, and ensure every contribution is reviewed by experienced developers. Treat LLMs as collaborators, not autonomous coders.
- Implement automated testing and CI pipelines: Combine vibe coding with robust test coverage, static analysis and automated CI/CD pipelines. This ensures that rapid iteration doesn’t come at the expense of reliability or security.
- Invest in prompt engineering and AI literacy: Equip developers with training in effective prompt techniques, model limitations and safe usage patterns. A team that understands how to guide AI output can produce better, safer code.
- Maintain architecture ownership: Encourage teams to develop and maintain clear architectural visions. Use vibe coding within modular boundaries to reduce the impact of errors and improve maintainability.
- Monitor and audit AI-generated contributions: Track where and how AI-generated code is used, especially in security-sensitive or regulated contexts. This helps enforce accountability and traceability.
When these safeguards are in place, we’re no longer talking about pure vibe coding, we’re talking about disciplined, AI-supported engineering. It may borrow some of vibe coding’s energy and speed, but it’s grounded in software development best practices.
What should business stakeholders keep in mind when employing vibe coding?
For business stakeholders overseeing real-world projects, a cautious approach to vibe coding is essential. While the promise of faster development might be tempting, the potential for accumulating tech debt, introducing security risks and creating unmaintainable systems can outweigh the initial speed gains.
It's crucial to remember that vibe coding your way to a production codebase is clearly risky. Sustainable progress in software engineering comes from maintaining a deep understanding while embracing AI's capabilities. Business leaders should prioritise building systems that their teams can understand, maintain and evolve.
It’s also important to distinguish vibe coding from responsible AI-assisted programming. As Simon Willison points out, if you "reviewed, tested, and understood it all, that's not vibe coding... that's using an LLM as a typing assistant". Professional software development involves creating code that demonstrably works, can be understood by other humans (and machines) and that will support continued development in the future.
LLMs can amplify the capabilities of developers, but they don’t replace the need for strong software engineering fundamentals. While non-developers may be able to build simple applications through prompting, scaling, securing, and maintaining these systems still requires deep technical and product sense. Business leaders should be cautious not to mistake AI tools as substitutes for skilled developers, but rather as accelerators that empower experienced teams.
Therefore, stakeholders should emphasise thorough reviewing and testing of any AI-generated code, especially for critical systems or features handling sensitive data. They should also ensure that their teams possess the skills to understand and debug the codebase, regardless of how it was initially generated.
Experienced developers are essential in AI-assisted development — not because they resist new methods, but because they understand their boundaries. Their judgment helps ensure that rapid iteration doesn’t come at the cost of long-term stability.
By critically evaluating AI-generated code, they help strike a balance between creative speed and engineering rigour, identifying when a suggestion is solid, when it’s flawed and when deeper architectural thinking is needed.
Experienced developers have the expertise to evaluate AI-generated code critically, identifying potential issues that someone new to coding might miss. They can determine if the generated code aligns with project requirements, security standards and long-term maintainability goals. Their intuition, honed over years of coding and debugging, helps them feel that an implementation is wrong when AI suggests a problematic solution.
The pitfalls of vibe coding in enterprise software development
“When I see a lot of hype about vibe coding, I can’t help but think: how do you exactly expect to vibe code your way to senior? Where will you get the skills from to maintain and extend the vibe-coded codebase when the AI tools are down or have become too expensive?
Even with larger context windows, more computing power, reasoning models or agents, there will be things that AI won’t be able to do. Over time, the AI tools will be more and more powerful, sure. But when you receive a Slack message that ‘the website works fine, but the app is down in production; I tried it locally and there it works fine, nothing in Sentry either,’ good luck getting an AI agent to fix this for you. Maybe it can, maybe it can’t. And when an AI agent can’t figure it out, will your reply be ‘sorry, Cursor doesn’t get it, will prompt more tomorrow’?”
That's an insightful quote from Luciano Nooijen that raises important questions about the long-term viability and implications of relying heavily on vibe coding.
Nooijen's thinking aligns with concerns expressed in several sources about the potential downsides of vibe coding. Ultimately, the real danger isn't using AI, but in surrendering our understanding to it.
Most of the work software engineers do involves evolving existing systems, where the quality and understandability of the underlying code are crucial. The potential for undetected bugs, errors or security vulnerabilities in AI-generated code that developers don't fully comprehend is another significant worry associated with vibe coding. If a developer doesn't understand the code, they won't be able to effectively debug or secure it, especially in complex scenarios like the production outage.
Nearform can accelerate AI adoption safely and successfully
At Nearform, we recognise that AI tools like LLMs offer a powerful shift in how we build software, but we also know that using them well requires experience and judgment. As senior is our entry level for all of our engineers, designers and strategists, we have the expertise to help you unlock the speed and flexibility of vibe coding while maintaining high standards of quality, security and maintainability.
We support teams in identifying the right use cases for AI-powered workflows, implementing effective review processes and avoiding the pitfalls of uncritical adoption. Whether you’re prototyping new ideas or scaling production systems, we can help you integrate AI into your development practices — safely and successfully.
The future of software development hinges on thoughtful collaboration
Vibe coding represents a fascinating evolution in software development, offering the potential for increased speed and accessibility. It can be a valuable tool for rapid prototyping, empowering designers and enabling non-developers to bring their ideas to life. However, its uncritical adoption for real-world engineering projects carries significant risks related to technical debt, security and maintainability.
Moving forward, a balanced approach is crucial. Nearform believes the future of software development lies in a thoughtful collaboration between human expertise and artificial intelligence. Experienced engineers, with their deep understanding and critical judgment, will be instrumental in determining when and how to best leverage AI tools, ensuring that innovation doesn't come at the expense of quality and long-term sustainability.
There's also a notable aspect of fun and enjoyment associated with an AI-assisted approach to software development. It can be just fun and relaxing, and for beginners, it serves as a great way to get exposure to all the technology involved in the realisation of a project and start your learning journey.
If you're looking to explore the potential of AI in your software development processes while ensuring best practices and mitigating risks, we invite you to reach out to Nearform.
But wait - there's more.
Nearform publishes real-world learnings on data & AI, engineering, and digital strategy - with more merged in weekly.
Insights
Perspectives on AI in engineering, product development, and strategy, for enterprise executives.
Community
Deep dives and tutorials by engineers, for engineers.
You may also like

Open vs. closed: Navigating the critical LLM decision for enterprise AI

