Skip to main content

Vibe Coding (Intuitive Programming)

Overview​

Vibe Coding (intuitive programming, feeling programming) is a programming method that relies on intuition, experience and immediate feedback. Developers do not strictly follow specifications or plans, but write and adjust code based on "feel".

Core Concept: Follow your intuition, iterate quickly, and change as you go.


Core concepts​

1. What is Vibe Coding​

Vibe Coding Features:

  • No clear plan: No detailed design documents are written
  • Quick iteration: write code β†’ adjust β†’ adjust again
  • Rely on intuition: judge the quality of the code based on "feeling"
  • Instant Feedback: Modify while running
  • AI Assisted: Use AI to quickly explore ideas

2. Vibe Coding vs Traditional Programming​

DimensionTraditional programmingVibe Coding
PlanningDetailed designImprovisation
DocumentationWrite documentation firstCode is documentation
ProcessRequirements β†’ Design β†’ CodingIdeas β†’ Code β†’ Adjustment
TestWrite tests firstMake up tests later
FlexibilityStructuredHighly flexible

Vibe Coding style​

1. Exploratory programming​

Idea: "I want to make a simple to-do list app"
↓
Rapid prototyping: using AI to generate basic code
↓
Run the test: see how it works
↓
Intuitive adjustment: "This color doesn't look good, change it."
↓
Added function: "Add a classification function"
↓
Continue to adjust: "The layout is a bit messy, let's restructure it"

2. Conversational programming​

Developer: "Make me a login page"
AI: [generate code]
Developer: "The color is too dark"
AI: [Adjust Color]
Developer: "Add a forgotten password link"
AI: [Added functionality]
Developer: "This location is wrong"
AI: [Adjust layout]
...

3. Trial-and-error programming​

Attempt 1: [Option A] β†’ No, too complicated
Attempt 2: [Option B] β†’ Still wrong
Attempt 3: [Option C] β†’ It feels right!
Improvement: [Proposal C improvement] β†’ Complete

Vibe Coding scene​

Suitable for the scene​

SceneReason
Prototype DevelopmentQuickly validate ideas
Creative ProjectsRequires flexibility to explore
Learn new technologiesLearn by doing
Personal ProjectNo teamwork required
HackathonTime is limited, hurry up

Not suitable for the scene​

SceneReason
Large Team ProjectsLack of specifications leads to chaos
Safety Critical SystemsRequires strict verification
Long-Term Maintenance ProjectTechnical Debt Accumulation
Complex business systemDetailed design required

Vibe Coding + AI​

1. AI as an "intuition amplifier"​

Developer’s intuition β†’ Rapid AI implementation β†’ Instant feedback β†’ Strengthened intuition
↑ ↓
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
Continuous iteration loop

2. Tool support​

ToolsVibe Coding Support
CursorQuick generation, instant modification
Claude CodeConversational Development
ClineRapid iteration within VS Code
ReplitRun instantly in the browser

3. Typical workflow​

# 1. Just ask AI to do whatever comes to mind
claude-code "Create a React to-do component"

# 2. Watch the effect and make adjustments intuitively.
claude-code "Change the button to rounded corners and add a shadow"

# 3. Continue to add features
claude-code "Add a delete button, use red"

# 4. Find the problem
claude-code "No response after deletion, please check"

# 5. Refactoring and adjustment
claude-code "The code is a bit messy, please tidy it up"

Vibe Coding Tips​

1. Rapid Prototyping​

Step 1: Implement core functions in 5 minutes
Step 2: Run and see the effect
Step 3: Adjust intuitively
Step 4: Continue to add
Step 5: Refactor at any time

2. Minimum Viable Product​

Don't think it's complete from the beginning
Make the simplest version first
Then gradually improve

3. Trust your intuition​

"This color feels wrong" β†’ Change
"The logic feels a bit complicated" β†’ Simplify
"I feel like this can be optimized" β†’ Optimize

4. Embrace imperfection​

Vibe Coding accepts:
- The code may not be elegant enough
- The structure may not be perfect
- Testing may not be complete
But the point is: make something usable quickly

Vibe Coding vs Spec-Driven Development​

Comparison table​

DimensionVibe CodingSpec-Driven Development
PlanningCasualStrict
DocumentationCode is documentationDetailed specifications
FlexibilityVery HighModerate
MaintainabilityLowHigh
TeamworkDifficultEasy
Learning CurveLowHigh
AI EngagementHighHigh
Applicable sizeSmallLarge

When to use​

ScenarioRecommendation
Creative VerificationVibe Coding
HackathonVibe Coding
Personal ProjectVibe Coding
Team ProjectSpec-Driven
Enterprise Level SystemSpec-Driven
Long-Term ProductSpec-Driven

Best Practices for Vibe Coding​

1. Keep the code clean​

Even with Vibe Coding, you still need to:

- Regular refactoring
- Remove useless code
- Keep naming consistent
- Add necessary comments

2. Use Git branches​

main (stable version)
↑
feature/experiment (feel free to try)
↓
The experiment was successful β†’ merged into main
The experiment failed β†’ delete directly

3. Set time limit​

- No more than 2 hours per session
- Avoid getting stuck in endless adjustments
-Regular review and organization

4. Record important decisions​

Even if you don’t write detailed documentation, you should still record:
- Why choose this option
- Pitfalls encountered and solutions
- Directions for improvement next time

Risks of Vibe Coding​

1. Technical Debt​

Rapid Prototyping β†’ Technical Debt Accumulation
↓
If you don’t repay your debt on time
↓
Project becomes difficult to maintain

2. Lack of traceability​

"Why do you write it like this?"
"I don't know, it felt right at the time."

3. Difficulty in teamwork​

"What does this code mean?"
"I don't understand either. He wrote it based on his feelings."

4. Difficult to reproduce​

"How is this function implemented?"
"I forgot, I just wrote it casually"

Mixed strategy​

Vibe + Spec​

The best way is to combine the two:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Vibe + Spec Mixed Strategy β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚ β”‚
β”‚Exploration Phase (Vibe) β”‚
β”‚ β”œβ”€β”€ Rapid Prototyping β”‚
β”‚ β”œβ”€β”€ Test ideas β”‚
β”‚ └── Find the direction β”‚
β”‚ ↓ β”‚
β”‚ Stable Phase (Spec) β”‚
β”‚ β”œβ”€β”€ Writing specifications β”‚
β”‚ β”œβ”€β”€ Refactor the code β”‚
β”‚ └── Add test β”‚
β”‚ ↓ β”‚
β”‚Iteration loop β”‚
β”‚ β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Practical suggestions​

1. Personal project: Multi-purpose Vibe Coding
2. Team project: Spec for the core and Vibe for the edge
3. Urgent needs: Vibe first, then Spec specification
4. Innovation and exploration: Vibe takes the lead, Spec follows up

Reference resources​

tool​


Document updated: December 2025