
Vibe Coding: The Right way

Let's first understand how vibe coding (as it's currently trending) works:
- Don’t touch the code.
- Don’t touch the keyboard—just speak.
- Blindly accept everything.
You can use any of the following tools:
- Bolt[dot]dev
- Lovable
- Cursor AI
- Windsurf AI
Oftentimes, you don’t even write prompts. You use ChatGPT or Claude, meaning you have no real control or understanding of your code—or even the product you're trying to build. You just focus on one thing: the VIBE, and let the chaos unfold… until you run out of money.
My Opinion: It's one of the worst approaches to building software.
So how do I approach vibe coding?
- Always make sure I understand exactly what should be done and how it should be done.
- Boilerplates and workflows are my own.
- Keep prompts specific and to the point, and provide them with maximum context needed to implement a specific feature.
- One thing at a time.
- Set proper rules and instructions for an LLM to follow while writing code.
- Review everything before accepting anything.
- When I feel that AI is getting stuck or going off-track, I take charge.
IDEs, Extensions, and CLI tools I use:
- Cursor AI (Primary IDE)
- Cline/Roo Code (Agentic coding extension)
- Claude Code (Agentic, CLI-based tool)
- ChatGPT 4o with search enabled (for research)
AI models I use:
- Claude Sonnet 3.5 and 3.7 (Primary)
- Claude Sonnet 3.7 with Extended Thinking (for diagrams, architecture, and system design)
- Gemini 2.0 Pro (for long-context tasks)
- OpenAI o3 Mini and GPT-4o (for brainstorming)
- DeepSeek V3 and R1 (when using Cline/Roo Code)
Benefits of this "True Vibe Coding" workflow:
- Saves me tons of time—work that might take days can be done in hours.
- Lets me focus on the bigger picture and deeper aspects like infrastructure and system architecture.
- I learn through it—sometimes the AI suggests solutions I’ve never seen, so I discuss the "why" with it and dig deeper.
- No more wading through messy documentation—AI handles it well.
- Over time, it adapts to my style—my design patterns, my coding approach—and even helps refine them.
Cons? Yeah, a few:
- It can feel expensive, but the value-to-cost ratio is more than justifiable.
- Sometimes it hallucinates—caused by bad prompts, model downgrades, glitches, or poorly sized contexts.
Now let’s address a common misconception:
That vibe coding is dangerous for beginners because it might take away the habit of writing code—which is crucial for software engineering.
Why do I say that’s a misconception?
Let me give my example.
When I started coding, the hardest fear to overcome was writing code—the syntax part. Why? Because I wasn’t confident.
Though I eventually overcame that fear, I still didn’t write much code myself. I would copy-paste solutions from Stack Overflow, GitHub, and tech blogs—not blindly, but with the goal of understanding them: the hows and whys.
Fast forward to today: things haven’t changed—they’ve evolved.
Now, instead of searching Stack Overflow or GitHub, I ask AI. It gives me everything—from the solution itself to a comprehensive breakdown of why it works, how to optimize it, and what alternatives exist.
Writing code by hand is not the ultimate goal of software engineering.
It’s just a tool for solving problems.
As long as we understand exactly what we’re doing, I don’t find it problematic to let AI write the code for us.