Vibe Coding

Overview

Vibe Coding is a term coined by Andrej Karpathy (former Tesla AI director and OpenAI research scientist) to describe a new paradigm of programming where developers describe what they want in natural language, and AI tools generate the code. The term captures the more fluid, high-level approach to software development enabled by large language models.

Etymology

The term “vibe” suggests a more intuitive, feeling-based approach to coding - as opposed to the precise, syntax-focused traditional programming. It’s about describing intentions and letting AI handle implementation details.

Key Principles

  1. Describe Intent, Not Implementation: Focus on what you want, not how to build it
  2. Iterate with Feedback: Use AI output to refine and improve
  3. Embrace Emergence: Let complex behaviors emerge from simple prompts
  4. Human-AI Collaboration: Human provides direction, AI handles execution

Comparison with Traditional Coding

AspectTraditional CodingVibe Coding
InputPrecise syntaxNatural language
IterationManual editsPrompt refinement
FocusHow (implementation)What (intent)
Skill RequiredSyntax knowledgePrompt engineering
Best ForPerformance-criticalPrototyping, MVPs

Evolution of AI Coding

  1. Autocomplete (GitHub Copilot): Single-line suggestions
  2. Code Generation (Cursor, Claude Code): Function-level generation
  3. Agentic Coding (Claude Code, Codex): Multi-step autonomous agents
  4. Vibe Coding: High-level intent description

Best Practices (from YC Guide)

  • Write detailed plans in Markdown before coding
  • Use Git strictly; don’t rely on AI undo
  • Prioritize end-to-end tests over unit tests
  • Create instruction files (cursor.rules, claude.md)
  • Use multiple tools for different strengths
  • Agentic Engineering: Next evolution - using AI agents for autonomous task completion
  • Spec-Driven Development: Writing specifications as the communication medium between human and AI
  • Compounding Engineering: Each completed task makes subsequent tasks easier (Kieran Klaassen’s concept)

Key Practitioners

  • Andrej Karpathy (coined the term)
  • Kieran Klaassen (Every, uses Claude Code extensively)
  • Many YC founders and independent developers

Source

YC Vibe Coding Guide Vibe Coding Experience

See Also