YeetCode

Getting Started

Get up and running with YeetCode.

Prerequisites

Installation

Clone the repository and install dependencies:

git clone https://github.com/lyemac/yeetcode.git
cd yeetcode
bun install

Bun handles all dependency management — never use npm, yarn, or pnpm.

Convex Setup

The Convex backend runs in the cloud — there's no local Convex server. Running convex dev connects you to a cloud deployment:

cd apps/convex
bun run dev

If this is your first time, the CLI will walk you through selecting or creating a project in the Convex Dashboard. It generates .env.local automatically with your deployment credentials — you don't need to create this file manually.

After Convex is set up, configure these environment variables in the Convex Dashboard (Settings → Environment Variables):

VariableDescription
CLERK_WEBHOOK_SECRETSigning secret from Clerk's webhook settings (Svix)
CLERK_JWT_ISSUER_DOMAINYour Clerk JWT issuer domain

See Environment Variables for the full list.

Development

Start all workspaces in parallel:

bun run dev

Or run individual workspaces:

# Convex backend (connects to cloud deployment, streams logs)
cd apps/convex && bun run dev

# Documentation site (port 3001)
cd apps/docs && bun run dev

# Email preview (port 3003)
cd packages/email && bun run dev

Project Structure

yeetcode/
├── packages/              # Shared libraries
│   └── email/             # @yeetcode/email — React Email templates
├── apps/         # React/Next.js applications
│   └── docs/              # Documentation site (Fumadocs)
├── apps/          # Backend services
│   └── convex/            # @yeetcode/convex-backend
├── tooling/               # Shared configs
│   └── typescript/        # @yeetcode/typescript (base, nextjs, react-library)
├── package.json           # Root workspace config
├── turbo.json             # Turborepo pipeline config
├── biome.json             # Linting & formatting config
└── tsconfig.json          # Root TypeScript config

Common Commands

bun run build              # Build all packages (respects dependency graph)
bun run lint               # Lint all packages + repo-level checks (sherif)
bun run format             # Format everything with Biome
bun run typecheck          # Type-check all packages
bun run clean              # Remove all node_modules
bun run clean:workspaces   # Clean workspace build artifacts

On this page