Biome Linting
Fast, unified linting and formatting (10-25x faster than ESLint + Prettier).
Why Biome in 2026
Aspect Biome ESLint + Prettier
Speed ~200ms for 10k lines 3-5s
Config files 1 (biome.json) 4+
npm packages 1 binary 127+
Rules 421 Varies by plugins
Type inference Yes (v2.0+) Requires tsconfig
Quick Start
Install
npm install --save-dev --save-exact @biomejs/biome
Initialize
npx @biomejs/biome init
Check (lint + format)
npx @biomejs/biome check .
Fix
npx @biomejs/biome check --write .
CI mode (fails on errors)
npx @biomejs/biome ci .
Biome 2.0 Features
Type Inference: Reads .d.ts from node_modules for type-aware rules:
{ "linter": { "rules": { "nursery": { "noFloatingPromises": "error" // Catches unhandled promises } } } }
Multi-file Analysis: Cross-module analysis for better diagnostics.
Basic Configuration
{ "$schema": "https://biomejs.dev/schemas/2.0.0/schema.json", "formatter": { "enabled": true, "indentStyle": "space", "indentWidth": 2, "lineWidth": 100 }, "linter": { "enabled": true, "rules": { "recommended": true, "correctness": { "noUnusedVariables": "error", "noUnusedImports": "error" }, "suspicious": { "noExplicitAny": "warn" } } }, "javascript": { "formatter": { "quoteStyle": "single", "trailingCommas": "all" } } }
ESLint Migration
Auto-migrate configuration
npx @biomejs/biome migrate eslint --write
Common Rule Mappings:
ESLint Biome
no-unused-vars correctness/noUnusedVariables
no-console suspicious/noConsole
@typescript-eslint/* Most supported
eslint-plugin-react Most supported
eslint-plugin-jsx-a11y Most supported
CI Integration
.github/workflows/lint.yml
- uses: biomejs/setup-biome@v2
- run: biome ci .
Overrides for Gradual Adoption
{ "overrides": [ { "include": [".test.ts", ".spec.ts"], "linter": { "rules": { "suspicious": { "noExplicitAny": "off" } } } }, { "include": ["legacy/**"], "linter": { "enabled": false } } ] }
Key Decisions
Decision Recommendation
New vs migration Biome first for new projects; migrate existing gradually
Config strictness Start with recommended, tighten over time
CI strategy Use biome ci for strict mode, biome check for local
Type inference Enable for TypeScript projects (v2.0+)
Related Skills
-
vite-advanced
-
Build tooling integration
-
react-server-components-framework
-
React linting rules
-
ci-cd-engineer
-
CI pipeline setup
References
-
ESLint Migration - Step-by-step migration
-
Biome Config - Full configuration options
-
Type-Aware Rules - Biome 2.0 type inference
-
CI Integration - GitHub Actions setup