Vibe Coding with AI
Apr 25, 2025
Thereâs a new kind of developer flow happening, and it doesnât start with types, diagrams, or frameworks.
It starts with a vibe.
What Is âVibe Codingâ?
We used to architect before we coded. Debate folder structures. Argue about types.
Now? You have an idea, you open Cursor, you type half a sentence, and boom â a scaffolded API appears. You tweak a few lines. You ask for tests. Maybe you backfill types later. Maybe not.

Vibe coding is fast, impulsive, exploratory. Youâre jamming with an AI, not composing a symphony. Itâs not about correctness â itâs about momentum.
Youâre not building the perfect solution.
Youâre discovering what might work.
From Planning to Prompting
Traditional dev was:
Plan â Code â Test â Refactor
Vibe coding is:
Idea â Prompt â Adjust â Flow
LLMs like Copilot, and ChatGPT have radically lowered the cost of iteration, and IDEs like Cursor take it even further. You donât need to plan meticulously because you can regenerate in seconds. You donât stop to look up API syntax â you describe what you want and shape what the AI gives back.
Itâs not lazy. Itâs different economics.
When iteration is free, over-planning becomes expensive.
Real-World Vibe Coding
These arenât hypotheticals. This is how people are building real things now:
- Scaffolding first, designing later
âMake me a FastAPI endpoint with SQLite.â It generates something workable. You adjust the shape later, once you've seen the path. - Letting types emerge organically
You get logic working first. Then you tell the AI, âAdd appropriate TypeScript typesâ and refine them if needed. Flow first, structure second. - Conversational debugging
âThis reducer breaks when the payload is empty.â The AI suggests a check, explains why, and offers a fix. Itâs like narrating to a very attentive junior dev. - On-the-fly refactors
You realize halfway through that this component should be a hook. You tell the AI, âExtract this logic into a custom hook,â and youâre back in flow.
Vibe coding isnât about knowing everything â itâs about knowing what feels right, fast.
Why It Works (Sometimes)
- You stay in flow
No breaking context to research boilerplate or syntax. You ask and adjust. You ride the momentum. - You explore more
Low-cost iteration encourages creative divergence. Youâre more willing to try weird ideas â and sometimes, they work. - You prototype faster
Dead ends donât sting. You didnât invest hours writing the scaffolding â you generated it, tested it, moved on.
When you're working on something new, where correctness is less important than possibility, vibe coding shines.
But It Has a Dark Side
- Code rot creeps in fast
Vibe code isnât always clean code. Without discipline, you end up with a fragile mess thatâs hard to refactor. - Onboarding becomes painful
âThe AI wrote that bitâ doesnât help a teammate trying to understand how your system works. - Hallucinations are sneaky
The AI sounds confident, but it can be wrong in subtle ways. If youâre not reviewing carefully, you inherit bugs without noticing. - You stop flexing your own skills
If you always defer to the AI, you lose touch with the underlying systems. And when the AI breaks, you might not know how to fix it.
Vibe coding makes bad habits easy â which means you need even more judgment, not less.
Finding the Balance
Thereâs a middle ground â and itâs powerful.
- Prototype with vibes, polish with discipline
Get something working fast, then step back and ask: How do I make this clean? - Backfill types and tests
After youâve figured out what this function wants to be, then write the types. Then write the tests. Itâs still good hygiene â just done at the right time. - Treat AI like a junior dev
Fast, tireless, and occasionally clueless. Donât just accept its work. Review it. Guide it. Refactor it. Youâre the senior in this pairing.
You donât have to pick between chaotic flow and strict structure. Just use the right mode for the right moment.
Coding as Conversation
In a sense, weâre not coding anymore â weâre conversing.
You express intent, and the AI answers with code.
You adjust the prompt, and it tries again.
It's not about commanding a computer. It's about collaborating with one.
Yes, we still care about correctness.
Yes, tests still matter.
Yes, you still need to understand what you're shipping.
But when youâre in that early phase, chasing an idea, exploring the shape of a solution⌠sometimes the best way to build is to feel your way forward.
Type less. Talk more.
And trust the vibe â at least until it's time to refactor.
Final Notes
This isn't a manifesto for sloppiness.
Vibe coding isn't a replacement for good engineering â itâs an accelerant for it.
Use it when youâre blocked. Use it when you're bored.
Use it when the answer isnât in your head yet, but you can feel it coming.
Vibe first. Structure later.
Just donât forget which phase youâre in.