Complete ESLint to Biome Migration Guide
Biome replaces both ESLint and Prettier with a single, fast tool. This guide walks through every step of migration — from converting your config to updating CI pipelines and editor extensions.
ESLint to Biome Converter
Convert your .eslintrc config to biome.json. Supports rule mapping for core ESLint, TypeScript, React, JSX-A11y, and import plugins. Extracts formatter settings from formatting rules.
Supported Rule Mappings
This tool maps 122 ESLint rules to their Biome equivalents across core, TypeScript, React, JSX-A11y, and import plugins.
| Category | Rules |
|---|---|
| suspicious | 32 rules |
| correctness | 30 rules |
| a11y | 27 rules |
| style | 17 rules |
| complexity | 13 rules |
| security | 2 rules |
| performance | 1 rules |
| Total | 122 rules |
Why migrate to Biome?
Biome is 20-100x faster than ESLint because it is written in Rust and processes files in parallel. It combines linting, formatting, and import sorting in a single tool, eliminating the need for Prettier, eslint-config-prettier, and eslint-plugin-import. A single biome.json replaces .eslintrc, .prettierrc, and .editorconfig. Biome v2 added type-aware linting, closing the last major gap with TypeScript-ESLint.
Step 1: Generate biome.json
Use the converter above to paste your .eslintrc.json and generate a biome.json. Review the warnings tab for rules that have no Biome equivalent — you may need to accept slightly different behavior or add Biome-specific rules. Save the output as biome.json in your project root.
Step 2: Install and run Biome
Install Biome as a dev dependency: npm install --save-dev --save-exact @biomejs/biome. Run npx biome check --write . to lint and format your entire codebase. Review the changes, then commit. The --write flag auto-fixes all fixable issues.
Step 3: Remove ESLint and Prettier
Uninstall ESLint, Prettier, and all related plugins: npm uninstall eslint prettier eslint-config-prettier @typescript-eslint/eslint-plugin @typescript-eslint/parser eslint-plugin-react eslint-plugin-import. Delete .eslintrc.*, .prettierrc, .prettierignore, and .eslintignore. Update package.json scripts to use biome check instead of eslint and prettier.
Step 4: Update CI/CD and editors
Replace ESLint and Prettier steps in your CI pipeline with npx biome ci . (the ci command fails on any issue, unlike check). Install the Biome VS Code extension (biomejs.biome) and disable the ESLint and Prettier extensions. Configure format-on-save to use Biome. For JetBrains IDEs, install the Biome plugin from the marketplace.
Frequently Asked Questions
Does Biome support all ESLint rules?
No. Biome implements 200+ rules that cover the most common ESLint, TypeScript-ESLint, React, JSX-A11y, and import rules. Some niche rules (no-restricted-syntax, no-magic-numbers) have no equivalent. Check the Biome docs for the full rule list.
Can I use Biome alongside ESLint?
Yes, but it is not recommended long-term. You can run both during a gradual migration by disabling overlapping rules in ESLint. Once you have verified Biome catches everything you need, remove ESLint entirely for maximum speed.
Is Biome stable for production use?
Yes. Biome v2 is production-ready and used by major projects. It follows semantic versioning and has a stable rule set. The formatter produces output nearly identical to Prettier.
Related Convert Tools
TOML ↔ JSON/YAML
Convert between TOML, JSON, and YAML — perfect for Cargo.toml and pyproject.toml
Encode / Decode Multi-Tool
Base64, Base32, Hex, Binary, URL, and HTML encoding & decoding all in one tool
HTML to JSX Converter
Convert HTML to JSX instantly — class to className, inline styles to objects, self-closing tags, SVG attributes, event handlers, and more
JSON to Code Generator
Generate typed code from JSON in 8 languages — Go, Python, Java, C#, Dart, Rust, Swift, Kotlin structs and classes