Follow us
Breaking
Product Reviews

Biome v2 simplifies the Rust-powered toolchain migration

Biome v2 offers a unified Rust-based toolchain that is 25x faster than Prettier and 10 to 25 times faster than ESLint. This update simplifies migrations by collapsing complex ESLint and Prettier configurations into a single biome.json file.

Share

Biome v2, codenamed Biotype, delivers type-aware linting without requiring the TypeScript compiler. This community fork of Rome provides a single, fast toolchain for JavaScript and TypeScript projects. I find the performance gains from this Rust-based approach much more compelling than the incremental updates from ESLint. Biome parses each file once and uses a single abstract syntax tree to run both lint rules and formatting. The noFloatingPromises rule in Biome catches 75 percent of cases that typescript-eslint detects, and it does so at a fraction of the performance impact. This capability puts Biome in direct competition with Oxlint, which uses the Go-powered tsgolint engine to achieve speeds 12 to 18 times faster than ESLint on Apple M4 Pro hardware. Biome v2 also includes a file scanner to index project files, which helps with monorepo support. The new import organizer handles tasks like sorting imports and attributes, and it fixes previous limitations where blank lines prevented groups of imports from being sorted together. While the new HTML formatter is still in an experimental stage, the tool provides a unified way to handle multiple languages.

I recommend Biome for teams managing large monorepos or those tired of the maintenance tax from the ESLint and Prettier combination. A typical ESLint setup requires over 15 separate packages and multiple configuration files to manage dependencies like @typescript-eslint/parser and eslint-config-prettier. Biome collapses this entire stack into a single biome.json file. The migration process works through dedicated commands like npx biome migrate eslint --write or npx biome migrate prettier --write. These commands parse your existing files and map supported settings into the new configuration, even when handling extends chains.

Metric Biome ESLint + Prettier
Configuration Files 1 4+
Linting Speed 20x faster Baseline
Formatting Speed 25x faster Baseline
Rule Coverage 556 rules Thousands

The migration to Biome v2 requires a specific approach to avoid breaking changes. I use the npx biome migrate eslint --write command to translate existing rules into the new format. This command maps supported rules into Biome names and handles many configuration translations automatically. I still suggest the review of the resulting biome.json to ensure the settings match your previous intent. You should test the biome check --write command on a small branch first to see how it performs. Biome’s formatter is approximately 25x faster than Prettier and maintains 97 percent compatibility with Prettier’s output. Biome is 10 to 25 times faster than ESLint in most benchmarks.

I see a clear trade-off when replacing the old stack with Biome, because although it handles formatting, linting, and import organization in one pass, it still lacks the massive ecosystem of niche plugins found in the mature ESLint environment. Biome’s rule coverage includes 556 rules, which covers the most common patterns but leaves many specialized cases behind. If your team relies on highly specific framework rules or custom internal ESLint plugins, you will likely need to keep a minimal ESLint configuration alongside Biome. I suggest running Biome alongside your existing setup to verify coverage before you commit to a full removal. You should evaluate your plugin dependency before you delete your .eslintrc files. Because the tool differentiates between "safe" and "unsafe" fixes to protect your code integrity, I recommend reviewing changes manually. Safe fixes do not change the semantic meaning of your code and can be applied automatically. Unsafe fixes may change the semantic of your program. Biome also uses domains like "react" or "test" to automatically enable recommended rules when it detects specific dependencies in your package.json. The biome check command runs linting, formatting, and import organization in a single pass. Rules are organized into groups such as suspicious and style to help users manage diagnostics. Will Biome eventually reach 100 percent rule parity with the massive ESLint ecosystem? I recommend Biome for all new projects.

Share

Technewsdaily

Senior tech writer covering AI, gadgets and cybersecurity. Breaking down the news that matters, every day.