YeetCode

Biome

Linting and formatting configuration with Biome.

YeetCode uses Biome v2.3.13 for both linting and formatting — it fully replaces ESLint and Prettier. A single biome.json at the repo root configures everything.

Why Biome

  • One tool for linting + formatting (no ESLint/Prettier conflict headaches)
  • Fast — written in Rust, orders of magnitude faster than ESLint
  • Zero config needed for most rules — sensible defaults out of the box

Configuration

The full config lives in biome.json at the repo root:

{
  "files": {
    "includes": [
      "**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "**/*.json",
      "!**/node_modules", "!**/.next", "!**/dist",
      "!**/_generated", "!**/convex/_generated", "!**/.source"
    ]
  },
  "assist": {
    "actions": {
      "source": {
        "organizeImports": "on"
      }
    }
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true,
      "a11y": { "noSvgWithoutTitle": "off" },
      "style": { "noNonNullAssertion": "off" },
      "correctness": { "useExhaustiveDependencies": "off" },
      "complexity": { "noForEach": "off" }
    }
  },
  "formatter": {
    "indentStyle": "space"
  }
}

Disabled Rules

RuleWhy It's Off
a11y/noSvgWithoutTitleSVG icons often don't need titles (decorative)
style/noNonNullAssertionNon-null assertions (!) are sometimes pragmatic
correctness/useExhaustiveDependenciesReact hook dependency arrays are intentionally managed
complexity/noForEach.forEach() is fine for side effects

Excluded Paths

These directories are excluded from linting/formatting:

  • node_modules — Dependencies
  • .next — Next.js build output
  • dist — Build artifacts
  • _generated / convex/_generated — Convex auto-generated code
  • .source — Fumadocs auto-generated files

Auto-Organize Imports

Biome's assist feature automatically organizes imports when formatting:

{
  "assist": {
    "actions": {
      "source": {
        "organizeImports": "on"
      }
    }
  }
}

This sorts and groups imports consistently across all files.

Commands

# From repo root
bun run format       # Format all files with Biome
bun run lint         # Lint all workspaces via Turborepo

# From any workspace
biome check .        # Lint
biome format .       # Check formatting
biome format --write . # Fix formatting

Editor Integration

Install the Biome VS Code extension for real-time linting and format-on-save. Configure VS Code to use Biome as the default formatter for TypeScript/JavaScript files.

On this page