// learn

Learn to vibecode

An opinionated curriculum for building software by directing AI. Follow the path top to bottom, learn the core ideas, then go deep with sources worth your time.

7 Steps to start
8 Core concepts
10 Vetted resources

// start here

The path

Seven steps from "what even is this" to shipping something real. No prior AI experience assumed.

  1. Understand what vibecoding actually is

    20 min

    Get the mental model before the tools. Read the origin of the term and the crucial line between "vibe coding" (shipping without reading the code) and disciplined AI-assisted development.

    Karpathy’s original post
  2. Pick one tool and make it your home base

    30 min

    Don’t tool-hop. Choose a single agentic coding environment, learn its loop cold, and stick with it for your first few projects. Familiarity beats features early on.

    Browse the tools
  3. Ship a tiny throwaway project end to end

    An afternoon

    Build something small and disposable — a one-page app, a CLI, a script. The goal is to feel the full prompt → generate → run → fix loop, not to produce anything you keep.

  4. Learn to write a good prompt

    1 hour

    Vague asks produce vague code. Practice stating intent, constraints, and acceptance criteria up front, and giving the agent the context it needs instead of making it guess.

    Prompt patterns & packs
  5. Read the code the agent wrote — and run it

    Ongoing

    This is the habit that separates a vibecoder who grows from one who stalls. Skim every diff, run the thing, and make sure you could explain how it works to someone else.

    Why review matters
  6. Add a rules file to give the agent a memory

    45 min

    Capture your stack, conventions, and "always do X / never do Y" in a CLAUDE.md, AGENTS.md, or .cursor rules file. The agent reads it on every run so you stop repeating yourself.

    The AGENTS.md standard
  7. Adopt a spec-first loop for anything real

    A weekend

    For projects you intend to keep, write a short spec, turn it into a plan, then let the agent implement step by step. Planning first dramatically cuts the rework of pure vibe coding.

    A proven codegen workflow

// core concepts

The vocabulary

The mental models behind the practice. Skim them now; they'll click as you build.

What is vibecoding

Directing, not typing

Vibecoding is building software by describing what you want in natural language and letting an AI model write the code, while you guide, test, and steer. The term was coined by Andrej Karpathy in early 2025 to describe leaning into the AI and "forgetting that the code even exists." In its purest form you barely look at the code at all — which is great for demos and throwaways, riskier for anything you need to maintain. Most people land on a spectrum: more vibes for prototypes, more rigor for production. Knowing where you are on that spectrum is the whole skill.

Prompt-driven development

Intent is the new source code

Your prompt is the highest-leverage artifact in the loop — it’s where you express intent, constraints, and what "done" looks like. Specific, well-scoped prompts produce focused changes; vague ones produce sprawling guesses you’ll have to unwind. State the goal, the constraints, and the acceptance criteria, and point the agent at the files and examples it should follow. Treat prompting as a craft you improve, not a magic incantation. Saving and reusing prompts that work is one of the fastest ways to level up.

Working with coding agents

A teammate that needs direction

Modern coding agents don’t just autocomplete — they read your files, run commands, and work through a task across many steps. The most reliable pattern is to start from a clean git state, let the agent take a first pass, then review and refine the roughly-80%-done result. Keep changes small and checkpoint often so you can revert cleanly when it wanders. Agents are strongest on the edges of a codebase and weakest deep inside core, subtle business logic — aim them accordingly.

Reviewing & trusting AI-generated code

Trust is earned per diff

The line many practitioners draw is simple: if you shipped code you never read, that’s vibe coding; if you read it, tested it, and can explain it, that’s software development. For throwaways, skipping review is fine. For anything real, read every diff, run the code, and write or keep tests so regressions surface fast. A useful trick is to review with fresh context — a new session, or a second agent — so the reviewer isn’t biased toward the code it just wrote.

Managing context & memory

Garbage context, garbage code

An agent is only as good as what it can see. Give it the relevant files, examples, and constraints — and just as importantly, keep irrelevant noise out so the signal isn’t buried. Long sessions drift as the context fills up; starting fresh for a new task often beats dragging along a bloated history. Think of context as infrastructure you design, not something that just happens. The better you curate what the model knows, the more its performance compounds.

Rules files

CLAUDE.md · AGENTS.md · .cursor rules

Rules files are persistent, version-controlled instructions the agent loads on every run — your stack, conventions, and "always / never" guardrails. They mean you stop re-explaining the same context in every prompt. AGENTS.md has emerged as a tool-agnostic open standard (now stewarded under the Linux Foundation), while Claude Code reads CLAUDE.md and Cursor reads files under .cursor/rules. Keep them short and specific: a few sharp, concrete statements beat a long wishlist the agent will ignore.

Spec-first workflows

Plan a plan, then build

Instead of one big "build me an app" prompt, spec-first development moves through spec → plan → tasks → implement. You brainstorm and write a short specification, have the model turn it into a step-by-step plan, then implement one reviewable chunk at a time. This front-loads the thinking, so the agent has a map instead of improvising — which sharply reduces the rework that pure vibe coding generates. Tools like GitHub’s Spec Kit and AWS Kiro formalize this loop, but you can run it by hand in any agent.

When to take the wheel

Know the agent’s edges

Vibecoding well includes knowing when to stop vibing. Take over when the agent loops on the same failure, when a change touches security, auth, money, or data integrity, or when you can’t explain what the code does. These are signals to slow down, read carefully, and steer by hand. The skill isn’t doing everything yourself or nothing yourself — it’s fluidly handing control back and forth based on stakes and the model’s confidence.

// go deeper

Sources worth your time

A short, hand-checked list. No content farms — primary sources and the people who set the standards.

Got a tool to try, or a prompt to steal? Browse the tools directory and the prompt packs.