Biome vs ESLint: Complete Comparison
Biome and ESLint take fundamentally different approaches to JavaScript/TypeScript linting. This comparison covers performance, rule coverage, formatting, ecosystem, and when to choose each tool.
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 |
Performance
Biome is written in Rust and processes files in parallel, making it 20-100x faster than ESLint on large codebases. A project with 10,000 TypeScript files that takes ESLint 45 seconds to lint finishes in under 1 second with Biome. This difference is transformative for CI pipelines and developer experience. ESLint 9 improved performance with flat config, but the architecture limits further gains.
// Biome vs ESLint comparison
// Speed (linting 1000 files):
// Biome: ~50ms (Rust-based, single binary)
// ESLint: ~2000ms (Node.js, plugin loading)
// Configuration:
// Biome: single biome.json — linter + formatter
// ESLint: .eslintrc + .prettierrc + eslint-config-prettier
// Rule coverage (as of 2026):
// Biome: ~300 rules (eslint, typescript-eslint, jsx-a11y)
// ESLint: ~600+ rules with plugins
// Biome advantages:
// ✅ 40x faster than ESLint
// ✅ Built-in formatter (replaces Prettier)
// ✅ Zero config needed for most projects
// ✅ Single dependency
// ESLint advantages:
// ✅ Larger plugin ecosystem
// ✅ More custom rule options
// ✅ Mature community supportRule coverage
ESLint has the largest rule ecosystem through plugins — thousands of rules across hundreds of plugins. Biome implements 200+ built-in rules covering core ESLint, TypeScript-ESLint, React, React Hooks, JSX-A11y, import, and Unicorn rules. Biome v2 added type-aware rules (previously only available in TypeScript-ESLint). For most projects, Biome covers 85-95% of the rules actually enabled.
Formatting
Biome includes a built-in formatter that is 97% compatible with Prettier output. This eliminates the need for Prettier, eslint-config-prettier, and the conflicts between linting and formatting. ESLint deprecated its built-in formatting rules and recommends using Prettier separately, adding configuration complexity.
Configuration
Biome uses a single biome.json file for linting, formatting, and import sorting. ESLint requires .eslintrc.* for linting, .prettierrc for formatting, and plugin configs for import sorting. ESLint 9 introduced flat config (eslint.config.js), which is simpler than the legacy format but still requires separate Prettier config.
Ecosystem and plugins
ESLint wins on ecosystem breadth — plugins exist for nearly every framework and pattern. Biome has no plugin system yet, but its built-in rules cover the most widely-used plugins. If you depend on niche ESLint plugins (eslint-plugin-testing-library, eslint-plugin-tailwindcss), you may need to keep ESLint for those specific rules.
Frequently Asked Questions
Should I switch from ESLint to Biome in 2026?
If you use a standard stack (TypeScript, React, Next.js), Biome covers most of your rules and is dramatically faster. If you rely on niche ESLint plugins with no Biome equivalent, you may want to wait or run both tools.
Does Biome support ESLint flat config?
Biome does not read eslint.config.js directly. You need to convert your config to biome.json format. This converter tool handles legacy .eslintrc configs — flat config support requires manual conversion of the rule objects.
Is Biome compatible with Prettier?
Biome's formatter is designed to produce output nearly identical to Prettier. You can use Biome as a drop-in Prettier replacement. There are minor formatting differences in edge cases, but they are rare.
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