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-codeWe 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:
- Discovery — Understands what needs to be built
- Codebase Exploration — Reads relevant code and traces through patterns
- Clarifying Questions — Asks about ambiguities before designing
- Architecture Design — Proposes approaches with trade-offs
- Implementation — Builds the feature
- 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 → doneThis 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
buninstead ofnode,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.mdfiles before modifying them — they're carefully tuned. If Claude is making wrong assumptions, the fix is usually updatingCLAUDE.mdrather than repeating yourself every session. - Claude respects the monorepo — because
CLAUDE.mddocuments 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.mdexplicitly tells it to use Biome. If this happens, it's a sign the context got too long — start a fresh session.