What is Vibe Coding?
Vibe coding is a term coined by AI researcher Andrej Karpathy in February 2025. He described it as "fully giving in to the vibes, embracing exponentials, and forgetting that the code even exists." In simple terms, it's an AI-assisted development approach where you describe what you want in natural language, and AI generates the code for you.
For me, the important part is not the slogan. It is the workflow. Vibe coding works when AI becomes a fast collaborator, not a black box. You still need clear goals, strong taste, and the discipline to review every result.
The Core Idea
Instead of spending all your time translating ideas into syntax, you spend more time shaping the problem, reviewing outputs, and steering the system toward something useful. The role shifts from typist to editor, from implementer to product-minded engineer.
The Shift in My Workflow
Before vibe coding, I would spend hours manually writing boilerplate, debugging syntax errors, and looking up API documentation. Now, my workflow looks completely different:
- Describe the goal: I tell the AI what I want to build in plain English
- Review and guide: The AI generates code, I review and provide feedback
- Iterate rapidly: Back-and-forth refinement until it's right
- Test and verify: I thoroughly test everything before shipping
Tools I Use for Vibe Coding
My primary vibe coding setup includes:
- Cursor IDE: An AI-native code editor built on VS Code with Claude integration
- Claude: Anthropic's AI assistant for complex reasoning and code generation
- GitHub Copilot: For quick inline completions and suggestions
This portfolio website you're viewing right now? Built almost entirely through vibe coding. I described what I wanted—sections, animations, themes—and worked with AI to bring it to life.
Example Prompt Structure
1Build a responsive Next.js landing page with:
2- a hero section
3- animated feature cards
4- an accessible mobile nav
5- dark/light theme support
6- clean component boundaries
7
8Keep the code TypeScript-first and optimize for maintainability.The more specific the prompt, the better the output. Vague prompts tend to create vague code. Specific prompts create code that is easier to review and improve.
What Makes Vibe Coding Different
Unlike traditional coding where you write every line manually, vibe coding shifts your role:
- From writer to director: You guide the vision, AI handles the syntax
- From remembering to describing: No need to memorize APIs, just explain what you need
- From debugging to reviewing: More time understanding code, less time fixing typos
What Good Vibe Coding Looks Like
- Starting with a clear scope and measurable goal
- Reviewing each generated change before accepting it
- Making incremental edits instead of giant leaps
- Testing in the browser or terminal after each important change
- Keeping the underlying architecture understandable
The Reality: It's Not Magic
Vibe coding sounds amazing, but it comes with important caveats. A 2025 Veracode report found that 45% of AI-generated code contains vulnerabilities, including injection flaws and outdated dependencies. This means:
- You must understand the code: Never ship what you don't understand
- Security review is essential: AI doesn't prioritize security by default
- Testing is non-negotiable: AI-generated code needs rigorous testing
- Human oversight matters: You're still responsible for what gets deployed
I treat AI output the same way I would treat a pull request from a new teammate. It can be excellent, but it still needs context, review, and validation before it becomes part of the product.
When Vibe Coding Works Best
I've found vibe coding excels in certain scenarios:
- Prototyping: Rapidly building MVPs and proof-of-concepts
- Boilerplate: Setting up projects, configs, and repetitive code
- Learning: Exploring new frameworks or languages
- Documentation: Generating comments, README files, and API docs
- Refactoring: Converting code between patterns or languages
When to Be Careful
Linus Torvalds, creator of Linux, has expressed cautious support for vibe coding while warning against using it on critical systems. I agree—there are times when manual, careful coding is better:
- Security-critical code: Authentication, encryption, payment processing
- Performance-critical paths: Where every millisecond matters
- Core business logic: The heart of your application
- Production infrastructure: Database migrations, deployment scripts
My Vibe Coding Workflow
Here's how I typically approach a vibe coding session:
- Clear context: Start with a clean slate, explain the project structure
- Specific requests: Be precise about what you want—vague prompts get vague results
- Iterative refinement: Don't expect perfection on the first try
- Code review mindset: Treat AI output like a pull request from a junior dev
- Run and test: Always execute and test the generated code
- Commit incrementally: Small, working commits instead of massive changes
My Prompting Rules
- Tell the AI what problem to solve, not just what file to edit
- Specify constraints like framework, style, and performance goals
- Ask for the smallest useful change first
- Request tests or edge-case handling when the logic matters
- Keep a human review step between generation and merge
The Future of Development
Vibe coding isn't replacing developers—it's changing what we do. Instead of being typists who convert logic into syntax, we're becoming architects who guide AI to build our vision. The developers who thrive will be those who can:
- Communicate clearly and precisely
- Understand code deeply, even if they didn't write it
- Know when to trust AI and when to intervene
- Focus on architecture, not syntax
Practical Limits
There are still places where I do not use vibe coding as the primary approach: security-sensitive logic, critical performance paths, and any part of the system where a mistake would be expensive to recover from. AI can assist there, but it should not be the only decision-maker.
Final Thoughts
Vibe coding has made me significantly more productive. I can build in hours what used to take days. But it's a tool, not a replacement for understanding. The best vibe coders are those who could write the code themselves—they just choose to let AI handle the tedious parts while they focus on what matters: solving real problems.
If you haven't tried vibe coding yet, I encourage you to experiment. Start with a small project, describe what you want, and see what happens. You might be surprised at how quickly you can bring ideas to life.
The best result is not code that feels magical. It is code that solves the problem, stays understandable, and can survive future changes.

Prabhath Madhushan
Full Stack Developer | Software Engineer
A passionate developer building scalable web applications with modern technologies. Always learning, always creating.
