Biome vs ESLint in 2026
Biome vs ESLint is a choice between one fast tool and a large ecosystem. Biome is a single Rust toolchain that formats and lints JavaScript, TypeScript, JSON, CSS and more, with 791 lint rules as of November 12, 2026, and no config needed to start. ESLint is the pluggable JavaScript linter: every rule is a plugin, typescript-eslint adds TypeScript, and you pair it with a formatter such as Prettier.
Facts and prices checked on against the sources listed below.
Quick verdict
Pick Biome if you want one dependency for formatting and linting, fast CI and editor runs, and your project does not lean on niche ESLint plugins.
ESLint
PriceFree, open source
Pick ESLint if you depend on framework or company plugins, write custom rules, or need deep type-aware linting through typescript-eslint.
Biome vs ESLint at a glance
| Feature | ESLint | |
|---|---|---|
| What it is | Formatter and linter in one toolchain, written in Rust | Pluggable linter for JavaScript; formatting is left to other tools |
| Lint rules | 791 rules as of Nov 12, 2026, many taken from ESLint and typescript-eslint | Core rules plus any plugin; every rule is a plugin |
| Formatting | Built in; Biome reports 97% Prettier compatibility | Not its job: pair it with Prettier or another formatter |
| Languages | JS, TS, JSX, JSON, HTML, CSS, SCSS, GraphQL, YAML, Markdown | JavaScript; TypeScript through typescript-eslint; JSON and Markdown through official plugins |
| Plugins | JavaScript plugins since v2.6, plus GritQL plugins | Large ecosystem of plugins, parsers and shareable configs |
| Config | biome.json, zero config to start | eslint.config.js (flat config) |
| Latest release | 2.6.2 (21 Oct 2026) | 10.13.0 (16 Oct 2026); 9.39 is the maintenance line |
| License and stars | MIT and Apache-2.0, 26.0k stars | MIT, 27.6k stars |
| Free tier | Free and open source, no paid plan | Free and open source, no paid plan |
One toolchain or a linter plus a formatter
A typical ESLint setup is several packages that work together: ESLint itself, typescript-eslint for TypeScript, plugins for your framework, and Prettier for formatting, each with its own config. Biome replaces the linter and the formatter with one binary and one biome.json. The biome check command runs both at once.
That is the real trade. Biome gives you fewer moving parts and one fast pass. ESLint gives you the ecosystem: if a rule exists for your framework, your test runner or your company style, it is almost certainly an ESLint plugin.
Rules and plugins
As of November 12, 2026, biomejs.dev lists 791 lint rules, many of them taken from ESLint, typescript-eslint and other sources, in eight groups such as Correctness, Suspicious, Style and Accessibility. Rules for a technology, such as React or tests, live in "domains" that Biome can switch on from your package.json dependencies. New rules start in a Nursery group that you opt into.
ESLint is built around plugins: its docs say every rule is a plugin, and you can add more at runtime. Plugins also add parsers and whole languages, such as JSON through @eslint/json. Biome added JavaScript plugins in version 2.6, alongside its GritQL plugins, but the catalogue is far smaller than ESLint's today.
Type-aware linting
ESLint gets type information through typescript-eslint, which runs the TypeScript compiler. Biome has its own Scanner: when you enable a rule that needs types, such as noFloatingPromises, it builds a module graph and infers types, including from .d.ts files in node_modules. The Biome docs say this is opt-in, can raise memory use, and in their example takes a 2,000 file project from about 800 ms to about 2 s.
Formatting
ESLint is a linter; formatting is left to tools such as Prettier. Biome includes a formatter that it says scores 97% compatibility with Prettier, and it formats JavaScript, TypeScript, JSON, HTML, CSS, SCSS, GraphQL, YAML and Markdown. If you switch, expect a small diff the first time you format.
Moving from ESLint to Biome
Biome has migration commands: npx biome migrate eslint --write reads your ESLint config (flat or legacy, following extends) and npx biome migrate prettier --write copies your Prettier options. By default only rules that match exactly are migrated; --include-inspired adds rules that are only similar.
The Biome docs list the limits plainly. The result "does not behave exactly like ESLint", rules from ESLint plugins must be set in biome.json by hand, and Biome only skips files in .gitignore once you turn on its VCS integration. A safe path is to run both tools in CI for a week and compare.
When to pick Biome
- You want one tool for formatting and linting, with one config file.
- Speed in CI and in the editor matters to you.
- You use mainstream rules, not niche ESLint plugins.
When to pick ESLint
- You rely on framework, testing or in-house ESLint plugins.
- You write custom lint rules for your team.
- You want the widest type-aware rule set through typescript-eslint.
This page is based on the official Biome and ESLint documentation and release pages, not on our own benchmarks.
FAQ
Is Biome faster than ESLint?
Biome is built in Rust and runs formatting and linting in one pass. Its own benchmark says it formats about 35 times faster than Prettier on a 171,127 line codebase. It does not publish a linter benchmark against ESLint, so measure on your own repo before you switch for speed alone.
Can Biome replace ESLint and Prettier?
For many projects, yes: Biome formats and lints in one tool, and biome migrate eslint and biome migrate prettier convert your configs. Its docs say the migrated result does not behave exactly like ESLint, and rules from ESLint plugins must be set by hand, so check what you lose first.
Does Biome support type-aware rules?
Some. Rules such as noFloatingPromises use the Biome Scanner, which builds a module graph and infers types, including from .d.ts files in node_modules. It is opt-in and uses more memory. typescript-eslint with ESLint still covers more type-aware rules.
Which Node.js version does ESLint need?
The ESLint getting started guide asks for Node.js ^20.19.0, ^22.13.0 or 24 and later. Biome ships as a standalone binary through npm and other package managers.
Sources, checked October 23, 2026
Prices and plans change often. If something here is out of date, tell us through the contact page.