YeetCode

Claude Code

How we use Claude Code to build with YeetCode — setup, workflow, and tips.

YeetCode is built with Claude Code as the primary development tool. The repo is set up to work great with it out of the box — CLAUDE.md files guide Claude through the codebase, and the directory structure is designed for AI-assisted development.

If you don't have Claude Code yet, grab it here for a free week.

Installation

Install via Homebrew:

brew install claude-code

We use the Max plan — it gives you unlimited usage which makes a huge difference when you're doing heavy feature development sessions.

How We Work With It

Plan Mode First

Before building anything, we start in plan mode. This gets Claude to explore the codebase, understand the existing patterns, and propose an approach before writing a single line of code. It's the difference between Claude guessing and Claude knowing.

Type /plan or Claude will suggest it for non-trivial tasks.

Feature Dev Plugin

Once we have a plan, we kick off implementation with the feature-dev plugin from Anthropic's official plugin set (feature-dev:feature-dev). This runs a structured workflow:

  1. Discovery — Understands what needs to be built
  2. Codebase Exploration — Reads relevant code and traces through patterns
  3. Clarifying Questions — Asks about ambiguities before designing
  4. Architecture Design — Proposes approaches with trade-offs
  5. Implementation — Builds the feature
  6. Quality Review — Reviews for bugs, DRY violations, and convention adherence

Invoke it with /feature-dev followed by what you want to build.

The Workflow

/plan → explore & design → approve plan → /feature-dev → build → review → done

This loop keeps Claude aligned with your intent and prevents it from going off on tangents.

CLAUDE.md Files

The repo has CLAUDE.md files that give Claude context about the codebase. These are loaded automatically when Claude Code opens the project.

Root CLAUDE.md

Lives at the repo root. Contains:

  • Project overview and monorepo structure
  • Build and development commands
  • Tooling stack (Bun, Turborepo, Biome, TypeScript)
  • Key conventions (strict mode, Biome rules, import organization)
  • Frontend architecture patterns (Server Components, Convex data layer, SSR rules)

This is the main file — it tells Claude how the whole project fits together.

Convex Backend CLAUDE.md

Lives at apps/convex/CLAUDE.md. This one is provided by the Convex team and loaded when Claude works in that directory. It covers:

  • Bun-first conventions (use bun instead of node, npm, etc.)
  • Bun built-in APIs to prefer over third-party packages
  • Testing with bun test

The aidocs/ Directory

The repo has an aidocs/ directory (gitignored) for temporary AI-generated files — audits, analysis reports, plans, drafts. When you ask Claude to write something exploratory or generate a report, it goes here. Not in the docs site, not committed to git. It's scratch space.

Tips

  • Plan for zero-shotting — the goal is to get the plan so good that Claude nails it in one go. Spend the time upfront in plan mode. A great plan means less back-and-forth and less frustration.
  • If Claude starts agreeing with everything, scratch the session — when you see "You're absolutely right" or "Great point" on repeat, the context is cooked. Claude is people-pleasing instead of thinking. Start a fresh session with a clear prompt. You'll get better results than fighting a stale conversation.
  • Let Claude explore first — on a new feature, plan mode + feature-dev is significantly better than just telling Claude to "add X." The exploration phase catches things you'd miss in a prompt.
  • Use aidocs for thinking — ask Claude to write analysis or comparisons to aidocs/ before committing to an approach. It's cheap to generate and delete.
  • Read the CLAUDE.md files before modifying them — they're carefully tuned. If Claude is making wrong assumptions, the fix is usually updating CLAUDE.md rather than repeating yourself every session.
  • Claude respects the monorepo — because CLAUDE.md documents the workspace structure, Claude knows which package to modify and follows the @yeetcode/ scope conventions.
  • Biome, not ESLint — if Claude suggests adding ESLint or Prettier configs, it's hallucinating. The CLAUDE.md explicitly tells it to use Biome. If this happens, it's a sign the context got too long — start a fresh session.

On this page