DevBolt
Processed in your browser. Your data never leaves your device.

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.

← Back to tools

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.

Samples:
Ctrl+Enter to convert

Supported Rule Mappings

This tool maps 122 ESLint rules to their Biome equivalents across core, TypeScript, React, JSX-A11y, and import plugins.

CategoryRules
suspicious32 rules
correctness30 rules
a11y27 rules
style17 rules
complexity13 rules
security2 rules
performance1 rules
Total122 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