An AI-assisted coding session can feel like magic – but is it a revolution or just a buzzword?
Vibe Coding is an emerging approach to software development where instead of writing lines of code, you describe what you want and let AI do the heavy lifting. The term was introduced and gained popularity in early 2025, amidst the rise of large language models (LLMs) and AI coding assistants.
In vibe coding, developers (and non-developers) “fully give in to the vibes” and allow AI to generate and modify code based on natural language prompts. This concept has gained rapid popularity in the tech space, echoing the rising popularity of no-code development and AI-driven creation.
Enthusiasts hail it as the next evolution of programming, claiming it dramatically lowers the barrier to creating software. But sceptics wonder: does vibe coding truly revolutionise development, is it more hype than substance and what long-term impact could it have?
What is “Vibe Coding”?
Vibe coding is interactive, AI-assisted programming. Instead of manually coding every function and fixing every bug, you describe the desired outcome and let an AI agent write, edit, and even debug the code for you
The AI, often a specialized code-focused LLM, generates working software, edits your codebase or helps you debug from a simple plain language prompt. For example, you can simply ask an AI code editor (such as Cursor) to, “change the font of all my headings from Poppins to Times New Roman. Then, adjust the font size, letter spacing and line height accordingly to look good with the new font” and the AI would instantly adjust the CSS accordingly.
In traditional coding, a developer must understand programming languages, algorithms, and syntax to produce software. By contrast, vibe coding shifts the focus from writing code to guiding outcomes. It’s more conversational and intuitive – you can literally talk to the AI (using voice recognition) about what you want, and watch it produce code changes in real time.
This makes coding far more accessible to non-coders, since the need to learn complex syntax is reduced. Even those with minimal technical background can prototype applications by describing their ideas in natural language and letting the AI handle the translation into code.
Experienced developers also benefit: they can move faster by offloading boilerplate coding tasks to AI and focusing on higher-level design. However, a hallmark of vibe coding is that the user often accepts the AI’s code without fully understanding it – a sharp contrast to the careful code review and comprehension emphasized in traditional development… what issues could this lead to?
Remember that any AI tool you use today will be at its worst.
Current AI tools, such as ChatGPT, Claude, Gemini, Grok, DeepSeek or Midjourney, represent the earliest and least capable stage of what’s possible. Given the rapid pace, tomorrow’s AI models will almost certainly outperform today’s versions; producing cleaner, more accurate, and more secure code. Today’s tools, therefore, mark only the beginning, laying the groundwork for significantly more powerful and reliable AI-driven coding in the future.
What are people using vibe coding For?
Vibe coding may sound abstract, but it’s already being used for a variety of real-world projects.
Kevin Roose, spoke about using vibe coding to create small personal tools in this article . “Software for one” – such as an app that scans his fridge contents and suggests lunch recipes. These are niche, specific applications that he, as a self-proclaimed non-coder, could never have built on his own before AI assistance. Hobbyists and indie makers are embracing vibe coding for rapid prototyping and fun experiments.
Startups in particular are adopting vibe coding to accelerate product development. In fact, about a quarter of the newest Y Combinator startups have codebases that are almost entirely AI-generated. This means founders (even technical ones) are letting AI write 95% of their code while they focus on product ideas.
We also see educational uses: some educators encourage students to experiment with vibe coding as a way to learn programming logic without getting bogged down in syntax – essentially using AI as training wheels. From rapid web app prototypes and MVPs, to automating business workflows, to experimenting with game design, vibe coding is finding its way into many domains. It shines especially in scenarios where speed and creativity are valued over perfect code, which unless you are a purist, old-school developer… is pretty much everywhere (but please don’t use AI to code critical infrastructure… yet).
One evening I was bored, so to test out this trend I created this lightweight QR code generator as a WordPress Plugin using Cursor. Remarkably, it took around 4 hours from start to finish. However, after testing I quickly realised the LLM required substantial context, precise guidance, and iterative feedback to achieve my desired outcome. So, most of that ‘dev’ time involved preparing a comprehensive set of instructions rather than vibe coding. Although I did use “vibes,” during the creation process – mostly to debug – with a prompt containing nothing more than “X doesn’t work, fix it”.

This experience highlighted an important consideration that YouTube tech bros overlook: vibe coding can speed up development significantly, but pure vibes only work when starting fresh or clearly defined projects. If you already have specific expectations about how something should look, function, or feel, relying solely on vibe coding can quickly lead to frustration. Without detailed context, the LLM can easily misunderstand your intent or produce unexpected results, making clear communication and some manual intervention essential for success.
Essential tools for vibe coding
The rise of vibe coding has been enabled by a new generation of AI-assisted development tools. Here are some of the most popular platforms and how they stack up:
Cursor
My go-to tool for AI-enabled coding. Cursor is an AI-powered code editor (based on VS Code) that integrates a coding assistant directly into your IDE. It allows you to write and edit code in natural language and can even predict your next code edits as you “tab” through suggestions. With a chat, edit and agent mode, this tool is as powerful as it is versatile.
Cursor has rapidly gained users as AI coding caught on. Its strength lies in knowing your codebase context (it can refer to other files and answer questions about them) and making sweeping changes on command. For example, you can highlight a function and ask Cursor to refactor or optimise it, and it will apply changes across your project. It’s like having a pair-programmer who never gets tired.
Cursor allows you to choose from a selection of models from Open AI, Grok, DeepSeek Claude and more which is amazing as it gives the user full control and allows the tool to be flexible and future-proofed. That being said, it does have its drawbacks – for example, the recent Claude 3.7 integration temporarily made the AI agent much less effective, as the model differs so much from 3.5. Update 0.47 seems to be addressing this & as I said before, these tools will only get better with time.
Copilot
Copilot was one of the first widely adopted AI coding assistants, and while it started as a code-completion tool, it has evolved towards vibe coding capabilities. Integrated into VS Code and other editors, Copilot suggests code as you type and can generate entire functions or modules from comments.
By early 2024 it had over 1.3 million users, proving the appetite for AI help in coding. GitHub is now expanding Copilot into a chat mode (“Copilot X”) that can take high-level instructions, answer questions about your code, and even help fix bugs. This bridges the gap between straightforward auto-complete and the more conversational vibe coding style.
Replit
Replit is an online IDE that introduced Ghostwriter and more recently Replit AI Agent – an AI that can generate front-end, back-end, and even configure databases for you.
Replit’s advantage is its fully hosted environment: you can describe an app, have the AI build it, and deploy it instantly in the cloud. This makes it popular for quickly sharing prototypes or for those with limited technical experience. It supports many languages and gives you full access to the generated code if you want to tweak it. Replit’s vibe coding tool is powerful but might feel a bit closer to traditional coding (since it shows you the code and requires some comfort with an IDE).
ChatGPT (OpenAI)
Many creators use ChatGPT itself as a vibe coding tool. By conversing with ChatGPT, you can ask it to generate code snippets, solve programming problems, or even write entire small programs. It’s not tied to your local codebase, but it’s incredibly useful for explaining code, debugging errors, or generating boilerplates.
Users often copy-paste error messages or requirements into ChatGPT and get back usable code suggestions. Newer versions of ChatGPT (with Code Interpreter or plugins) can run code and handle files, making it even more interactive. While ChatGPT may not automatically integrate with your editor, it’s a versatile assistant that many vibe coders keep as a sidekick for brainstorming and troubleshooting.
Other notable tools
The ecosystem is quickly expanding. Claude (by Anthropic) is another AI model great for coding (known for a large context window, meaning it can consider more of your conversation/code history at once). The recently released Claude Code looks like another great alternative, although accessing through the terminal is an instant technical boundary. For my workflow currently, I use Claude 3.7 through Cursor.
Pythagora, Bolt, Lovable, Cline and others are emerging platforms explicitly built for vibe coding. For example, Lovable provides a no-code interface where you just describe features and watch them appear in a live preview, and Bolt lets you start a project in the browser with zero setup. Each tool has its strengths – some prioritise simplicity and a smooth newbie experience, while others offer deep control or support for large, complex projects.
As vibe coding matures, we’ll likely see “which AI coding tool to use” become an important decision, much like choosing a programming language or framework.
How to start vibe coding
Getting started with vibe coding is easier than you might think. At least some technical knowledge will help, however, the beauty of AI makes all information accessible to everyone. Even if you have no idea what HTML is, by learning through using these tools and throwing yourself in the deep end you will be surprised how quickly you can pick things up.
Choose the right tool for you
Pick an AI coding assistant or platform that suits your needs. If you’re a beginner looking for a super-simple experience, a tool like Lovable might be ideal. If you want to build full-stack applications with deployment, something like Replit or Cursor could be better. Don’t be afraid to try a couple of options – many have free tiers or trials. Consider factors like language support, ease of use, and whether you want a cloud solution or a local IDE plugin.
Set up your workflow
Once you have a tool, set up your development evironment. This could mean installing a VS Code extension (for GitHub Copilot or Cursor), or signing up on a website (for Replit or an online tool). Ensure you have any needed API keys or access tokens if the service requires them. The goal is to have the AI readily available as you work – whether that’s a chat sidebar in your editor or a separate browser tab with ChatGPT.
Describe your idea (prompting)
Now for the fun part – tell the AI what you want to build. Start a new project or file and write a prompt describing the program or feature in natural language. Be as detailed as possible about what the software should do. For example,
“Create a modern, user-friendly QR code generator WordPress Plugin with the following features: users can input a URL, click a button to generate a QR code instantly, and then customise the QR code colour and background colour. Users should also have the option to copy the generated QR code to the clipboard, or download it as a PNG or SVG file. The interface should be clean, intuitive, and visually appealing, using dark blue and white as the primary colours. Ensure responsiveness across devices.”
Clear, specific prompts will give the AI a better chance to generate what you expect. Some vibe coders even outline their app’s UI and functionality in bullet points for the AI.
Review and run the code
The AI will generate code based on your prompt – this could take some time depending on the tool, project and promotion. Once it’s done, run the code (or deploy, if you’re using an online platform) to see how it works. Treat this like an initial draft. Check if the basic functionality is there. Does the app or script run without errors? This step is crucial: even if you don’t understand all the code, test the output. If it’s a web app, interact with it. If it’s a script, see if it produces the expected result. You’re essentially QA-testing the AI’s first attempt.
Iterate by conversing with the AI
The first version will never be perfect. Here’s where vibe coding truly shines – you refine the program through dialogue. Tell the AI what to improve or change. Maybe you want a nicer UI, or additional features, or you found a bug. For instance, you might say,
“The plugin works, but please add an option for a transparent background, and make the design more aligned to my branding by using border-radius and Poppins font.”
The AI will then modify the code accordingly. This back-and-forth can continue for as many rounds as needed: describe tweaks, let the AI apply them, test again.
Each iteration is quick, keeping you in a creative flow without manual coding. It’s like sculpting software by continuously giving feedback.
Deploy or integrate
Once you’re happy with the result, deploy your project or integrate it into your larger system. If you used an online tool, you might already have a live URL to share. If you used a local tool, you can host your code on a server or share the repository. At this stage, consider saving the final code in a version control system (like Git) for future reference. Even though vibe coding abstracts away the code-writing, the code is still valuable, especially if you or others need to update it later.
Best practices for managing AI-generated code
As you get started, keep a few best practices in mind.
First, even if you don’t review every line of code, do run the program in pieces to verify it works as intended.
Write small prompts and build up gradually – this helps maintain quality.
Keep track of what you’ve asked the AI to do (maybe in comments or a separate document) so you have a spec for your project – Ps. you can get Cursor agent to do this for you.
For advanced projects ensure you give the AI agent rules that dictate how it should approach tasks.
If you’re mixing manual coding with vibe coding, make sure to document any complex logic the AI produces once you understand it, so that it’s not a black box to future maintainers.
Common pitfalls and how to avoid them
No technology comes without challenges, and vibe coding has its share of pitfalls. Here are some common issues and tips on avoiding them:
“It mostly works”
Vibe coding often results in code that works on the surface but may hide problems underneath. Since you might accept AI-written code without fully reading or understanding it, you risk incorporating inefficient or error-prone code.
Bugs can be subtle, and when they surface, debugging is tricky if you didn’t write (or understand) the code.
“Vibe coding is all fun and games until you have to vibe debug.”
To avoid this, always test thoroughly. Write extra test cases or scenarios to poke at the edges of the functionality. If something breaks, consider asking the AI to explain a section of the code or adding logging to see what’s happening. In critical parts of your app, it may be worth reviewing the AI’s code or having a more experienced developer audit it.
Poor code quality and maintenance woes
AI-generated code might be messy or non-idiomatic. It could pass initial tests but become a nightmare to maintain. This can become a big issue if your project grows.
Simon Willison, an AI researcher, noted here that while vibe coding is fun for prototypes, using it for a production codebase can be “clearly risky” – much of software engineering is about evolving systems over time, and that needs clean, understandable code. If you rely purely on vibe coding, you might end up with a codebase no one truly understands, which is a problem for scaling or adding new features.
Mitigation: Enforce some structure. After the AI builds a feature, spend a bit of time refactoring or at least reading through critical sections. You can even prompt the AI: “Refactor this code to be more readable and modular.” Also, consider setting coding standards. For example, if you expect the AI to use specific frameworks or patterns, mention that in your prompt to guide its style, using guard rails and rules is essential for a successful project.
Security and reliability issues
AI assistants don’t inherently know the security context of your application. There’s a risk that code generated might have vulnerabilities – e.g., unsanitized inputs leading to SQL injection, or using deprecated libraries with known flaws.
LLMs are great for quick solutions but “not good at maintaining or extending” complex systems securely. If you’re generating code for things like authentication, payment processing, or any sensitive logic, be extra cautious.
How to avoid: Treat AI code as if it were written by a junior developer – review it for security best practices. You can even ask the AI itself, “Check this code for security vulnerabilities or edge cases.” Sometimes it will catch issues on a second pass. And always keep dependencies up to date; have the AI explain why it chose a certain implementation.
Context window limitations
LLMs have a context window – they only “remember” a certain amount of the conversation or code.
In large projects, this means the AI might lose track of parts of your codebase that were not included in the prompt. You might ask it to add a feature, but if the relevant code wasn’t in the prompt, the AI could unknowingly reimplement something or introduce inconsistencies.
For example, early versions of tools like Cursor required the user to specify which files to consider; forgetting to include a file could lead to nonsensical suggestions. Newer “whole project” tools (like Cursor and Windsurf) try to index the entire codebase to overcome this.
As a user, you should be mindful: when asking for changes late in a project, provide the AI with as much relevant context as possible (by referencing, showing code files or summarising them). If the AI seems to be repeating or contradicting earlier code, it might be due to context limits – in such cases, break your request into smaller chunks or handle that part manually.
Over-reliance and skill atrophy
One subtle pitfall is becoming too reliant on AI for every task. If you’re a new coder using vibe coding to avoid learning the “hard stuff,” you may find yourself stuck if the AI goes wrong. Traditional coding skills – understanding logic, debugging, and architecting solutions – are still crucial.
If you skip learning those, you might hit a career ceiling or struggle when AI isn’t available to complete the task at hand. To avoid this, use vibe coding as a learning tool. When the AI writes something, take time to ask why it did it that way. Challenge yourself to occasionally implement a feature without AI, to keep your programming muscles flexed.
Think of AI as a partner – you should still know how to code solo in case you need to take over the reins.
Vibe coding can be incredibly productive, but you have to compensate for the blind spots of AI. Test, verify, and don’t blindly trust outputs for mission-critical code. Balance the speed of AI with the wisdom of human oversight.
Pros and cons of vibe coding
Let’s break down the main advantages and disadvantages of vibe coding…
Pros:
Faster Development Cycles – By offloading coding tasks to AI, developers can build prototypes and features in a fraction of the time. This rapid iteration is great for startups and creators who want to test ideas quickly. You can get from “I have an idea” to a working demo sometimes in hours instead of days or weeks.
Accessibility for Non-Coders – Perhaps the biggest game-changer – vibe coding opens up software creation to people who don’t know how to code. Just as no-code tools enabled drag-and-drop website building, AI-driven coding lets someone with an idea talk an app into existence. Amateurs can now build software that previously needed an engineering team. This democratization means more diverse people can create tech solutions.
Enhanced Creativity and “Flow” – Many find that removing syntax barriers unleashes creativity. You can experiment with crazy ideas (like that one-day flight simulator) because the AI takes care of details. It’s very satisfying to see your concept come to life immediately, which can spur further ideas. Vibe coding can feel like having a superpower or “a code genie” at your disposal. This often leads to higher motivation and a fun, iterative design process.
AI Assistance for Tedious Tasks – Let’s face it, not everything about coding is fun. Writing boilerplate code, setting up project configurations, converting one data format to another – these can be tedious. AI excels at such repetitive or formulaic tasks. Vibe coding shines here by handling the grunt work: need to connect to an API and parse JSON? Generate the data model classes? These are the kinds of things you can just prompt the AI to do, saving your brainpower for the core logic or user experience. It’s like having an intern who instantly follows instructions and never complains.
Continuous Learning – (for those paying attention): If you do review the AI’s output, which you should, vibe coding can accelerate learning. You see patterns in the code it writes, you get exposure to new libraries or techniques, and you can ask the AI to explain code you don’t understand. Over time, this can raise your programming proficiency.
Cons:
Lack of Deep Understanding – The flip side of accessibility is that you might end up with a working program that you don’t truly comprehend. If “it mostly works” you might not dive under the hood until something breaks. This lack of understanding can be risky for long-term success. The irony is if you have reviewed and understood all the AI-written code, then you’re not vibe coding – you’re just using the AI as an assistant. True vibe coding implies some ignorance of the code. That’s fine for small projects, but problematic in complex systems.
Scalability and Maintainability Concerns – Code that is slapped together by AI might not scale well. Maybe it’s not optimised, or it’s difficult to extend. Large applications developed via vibe coding could become fragile if the structure isn’t solid. Traditional software engineering practices (modular design, code reviews, testing, documentation) are still needed for robust systems, and vibe coding doesn’t inherently enforce those. Enterprises have higher standards for code maintainability and reliability, which vibe coding may struggle to meet without significant discipline – which takes away the fun.
Messy or Inconsistent Code – If you keep prompting changes, the AI might solve issues in ad-hoc ways. The codebase can accumulate weird workarounds (since the AI is trying to fix things by “any means necessary” to satisfy your prompt). For example, an AI might inject a quick hack to avoid a bug rather than a clean refactor, especially if you just ask it to “make the error go away.” Over time, such quick fixes lead to technical debt – a pile of code that “works” but is hard to read or improve. And unlike a human, the AI doesn’t feel the pain of messy code, but you will if you have to revisit it later.
Security Vulnerabilities – As mentioned, AI isn’t infallible. It might use outdated cryptography, ignore important validation, or produce code vulnerable to known exploits. Since vibe coding often means non-experts are at the helm, there’s a risk that an amateur might deploy an insecure application simply because the AI output “looked right” & “mostly worked”. The convenience can mask potential dangers. It requires some vigilance to ensure the AI hasn’t introduced a serious security flaw.
Dependency on AI (and costs) – Using these advanced AI tools isn’t always cheap. Copilot, Replit, etc., often come with subscription fees. If you integrate them deeply into your workflow, you have to account for that ongoing cost (though it should always be offset by productivity gains). Also, if an AI service has downtime or if you lose access (say the company changes pricing or you hit usage limits), it could disrupt your development. Being too dependent on the AI means you’re at the mercy of its availability and performance. Furthermore, there’s the concern of data privacy – sending your code to a third-party AI service might be sensitive in some projects, though many tools are addressing this with on-prem or privacy modes.
In weighing the pros and cons, it’s clear vibe coding offers incredible potential in speed and inclusivity, but it carries significant considerations in quality and sustainability. The key is knowing when to use it (hackathon project? Sure. Critical banking system? Maybe not!) and how to mitigate its downsides.
Conclusion
Vibe coding is both a revolution and a bit of hype… and that’s a good thing.
On one hand, it represents a true evolution in programming. We’ve never seen a scenario where someone with zero coding knowledge could build a fully functional mobile app in a weekend by simply chatting with an AI. That’s genuinely transformative. It hints at a future where creating software is more about ideas and design, and less about wrestling with code. For developers, vibe coding can feel like an “exponential” boost to productivity, turning coding into a higher-level, almost artistic process.
On the other hand, it’s not a magic wand that replaces all traditional coding. The hype can gloss over the real risks: unwieldy codebases, bugs you don’t understand, and the need for proper engineering principles. Using vibe coding for serious, production-grade development is very risky without careful oversight.
So, where do we land? For now, vibe coding is an amazing tool for certain scenarios – rapid prototypes, learning, personal projects, and speeding up mundane tasks. It invites more people into the world of software creation, which is a wonderful thing. But for long-term, large-scale software, it should augment, not replace, human developers’ insight.
We encourage you to experiment with vibe coding and see what it can do for you. Play with the tools, build something fun or useful, and get a taste of this new coding “vibe.” Just remember to apply best practices and a dose of common sense, especially if you take your AI-generated project to production. Whether vibe coding will become the new norm or fade as a gimmick will depend on how we harness it. By staying informed about its benefits and pitfalls, we can make the most of this trend without falling victim to the hype.
The vibe is certainly exciting – and with the right balance of innovation and caution, it just might point to a more accessible future of programming.