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.
// Migrate from ESLint + Prettier to Biome
// 1. Install Biome
npm install --save-dev --save-exact @biomejs/biome
npx @biomejs/biome init
// 2. biome.json — equivalent of .eslintrc + .prettierrc
{
"linter": {
"enabled": true,
"rules": { "recommended": true }
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2
}
}
// 3. Update package.json scripts
// "lint": "biome check ." (replaces eslint .)
// "format": "biome format --write ." (replaces prettier --write .)
// 4. Remove old deps
// npm uninstall eslint prettier eslint-config-prettierStep 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
HTML ↔ Markdown
Convert between HTML and Markdown in either direction
Image Compressor
Compress and resize images with adjustable quality — JPEG, WebP, and PNG
Text ↔ Binary Converter
Convert text to binary, hexadecimal, octal, or decimal and decode back with UTF-8 support
URL Slug Generator
Convert text into clean, URL-friendly slugs with Unicode transliteration and bulk mode