Biome v2.4: The Rust-Powered Toolchain Replacing ESLint and Prettier
Open Source 6 min read intermediate

Biome v2.4: The Rust-Powered Toolchain Replacing ESLint and Prettier

Biome v2.4, a Rust toolchain, is replacing ESLint and Prettier with faster, more efficient performance.

Marcus Rivera
Marcus Rivera
Mar 29, 2026

If you're still running ESLint and Prettier as separate tools in your JavaScript project, you're doing unnecessary work. Biome v2.4 — the Rust-powered linter and formatter that started as a Rome fork in 2023 — has quietly become the default choice for new projects in 2026. And with its latest release, it's making a strong case for existing projects to migrate too.

Here's why 24,000+ GitHub stars worth of developers agree.

What Biome Actually Does

Biome is a single binary that replaces your entire JavaScript/TypeScript toolchain for code quality. Instead of juggling separate configs for ESLint, Prettier, and potentially other tools, you get one tool with one config file:

  • Formatting — Prettier-compatible output for JS, TS, JSX, TSX, JSON, HTML, CSS, and GraphQL
  • Linting — 465 rules sourced from ESLint, typescript-eslint, and other established rule sets
  • Import sorting — Built-in, no plugin needed
  • All in one commandnpx @biomejs/biome check runs everything at once

TL;DR: One tool. One config. Seven languages. 35x faster than Prettier alone.

The Speed Difference Is Not Subtle

This is where Biome's Rust foundation pays off in a way that's impossible to ignore. Real-world numbers from production codebases:

Operation ESLint + Prettier Biome Speedup
Format 171K lines ~12 seconds ~340ms ~35x
Lint full monorepo ~12 seconds <200ms ~60x
CI pipeline check Minutes Seconds Significant

On a large monorepo, Biome formatted and linted an entire codebase in under 200ms while the ESLint + Prettier stack took nearly 12 seconds. That's not a marginal improvement — it's the difference between a tool you notice and one you don't.

For CI pipelines, this translates directly to faster builds and shorter feedback loops. If your linting step takes 2-3 minutes today, Biome can likely cut that to under 10 seconds.

Getting Started in 60 Seconds

Installation is deliberately simple:

# Install as a dev dependency
npm i -D --save-exact @biomejs/biome

# Initialize config
npx @biomejs/biome init

# Format your source directory
npx @biomejs/biome format --write ./src

# Run everything (format + lint)
npx @biomejs/biome check --write ./src

The init command creates a biome.json config file. Here's what a minimal one looks like:

{
  "$schema": "https://biomejs.dev/schemas/2.4.0/schema.json",
  "organizeImports": { "enabled": true },
  "linter": {
    "enabled": true,
    "rules": { "recommended": true }
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2
  }
}

That single file replaces your .eslintrc.js, .prettierrc, .eslintignore, and .prettierignore. Less config drift, fewer merge conflicts, one source of truth.

Prettier Compatibility: 97% and Counting

Biome aims for formatting output that's identical to Prettier, and it hits 97% compatibility. The remaining 3% are edge cases where Biome made deliberate aesthetic choices that differ — mostly around line-breaking heuristics in deeply nested expressions.

For most teams, the output is indistinguishable. If you run biome format on a Prettier-formatted codebase, the diff will be minimal to nonexistent.

465 Lint Rules — But Smarter Diagnostics

Biome doesn't just port ESLint rules — it improves the developer experience around them. Every diagnostic includes:

  • Contextualized error messages that explain why something is wrong, not just what
  • Safe auto-fixes that Biome can apply automatically without changing behavior
  • Unsafe fixes that are flagged separately so you can review them

The rule set covers the most common ESLint plugins out of the box: eslint-plugin-import, eslint-plugin-unicorn, @typescript-eslint, and accessibility rules from eslint-plugin-jsx-a11y.

Who's Using It

Biome's adoption list reads like a who's-who of tech:

  • AWS — Internal tooling
  • Google — Select frontend projects
  • Microsoft — VS Code extension ecosystem
  • Discord — Production frontend
  • Vercel — Next.js adjacent tooling
  • Cloudflare — Workers ecosystem

When Discord and Cloudflare are running your tool in production, the "is it ready?" question has been answered.

What Biome Can't Do (Yet)

No tool is perfect, and Biome has clear gaps you should know about before migrating:

  • Type-aware lint rules — Rules that need TypeScript's type checker (like no-floating-promises or no-misused-promises) aren't supported. This requires integrating the TypeScript language service, which is architecturally complex.
  • Framework-specific pluginseslint-plugin-react-hooks, eslint-plugin-next, and similar framework-specific rules don't have Biome equivalents yet.
  • Custom ESLint rules — If your team has written custom ESLint rules, there's no migration path. You'd need to rewrite them or keep ESLint running alongside Biome for those specific rules.
  • Plugin ecosystem — ESLint's massive plugin ecosystem is its biggest moat. Biome's rule set is growing fast, but it can't match ESLint's long tail of niche plugins.

Migration Strategy: Hybrid First

For existing projects, the pragmatic approach is a hybrid migration:

  1. Replace Prettier with Biome's formatter — This is the lowest-risk swap with the highest speed payoff
  2. Enable Biome's recommended lint rules alongside your existing ESLint config
  3. Gradually disable ESLint rules that Biome covers
  4. Keep ESLint only for type-aware rules and framework-specific plugins you can't replace

This lets you capture 80% of the speed benefit immediately while migrating the remaining rules over time.

Biome vs. OXC: The Other Rust Contender

Biome isn't the only Rust-based linting tool gaining traction. OXC (Oxidation Compiler) is a newer project focused purely on linting speed, and it's even faster than Biome in raw linting benchmarks.

The difference: Biome is a complete toolchain (formatter + linter + import sorter), while OXC is focused primarily on linting. If you want one tool to replace everything, Biome is the answer. If you only need a linter and want maximum speed, OXC is worth watching.

The Bottom Line

Biome v2.4 has crossed the threshold from "promising alternative" to "default choice." For new projects, there's no compelling reason to start with ESLint + Prettier anymore — Biome gives you equivalent capability at a fraction of the speed cost and config complexity.

For existing projects, the hybrid migration path means you don't have to rip everything out at once. Start with the formatter, add the linter, and migrate at your own pace.

The JavaScript ecosystem has been waiting for its Rust-powered tooling revolution since esbuild proved it was possible. With 24K+ stars and adoption by AWS, Google, Discord, and Cloudflare, Biome is delivering on that promise — one blazing-fast lint check at a time.

More in Open Source

SpeakoFlow: The Open-Source Voice Assistant That Stays Local
Open Source

SpeakoFlow: The Open-Source Voice Assistant That Stays Local

SpeakoFlow is a free, MIT-licensed local-first voice assistant for Windows, macOS and Linux, built by solo developer Abhishek Barali as a fork of CJ Pais's Handy. It combines hotkey dictation, a 'Hey Flow' generative writing mode, an assistant panel with screen vision, live translation and AI cleanup. Speech-to-text always runs on-device via whisper.cpp and Parakeet; the assistant can run fully offline through a built-in llama.cpp engine, through Ollama or LM Studio, or through any OpenAI-compatible cloud provider with your own key. There is no account and no telemetry. The trade-offs are real: the binaries are not code-signed on Windows or macOS, requiring a manual quarantine-clearing step on Mac, and the project is at v1.0.1 with 126 commits, six GitHub stars and one maintainer.

By Marcus Rivera · 8 min · Aug 7, 2026

Meetily: The Open-Source AI Notetaker That Runs 100% Local
Open Source

Meetily: The Open-Source AI Notetaker That Runs 100% Local

Meetily is a privacy-first, open-source AI meeting assistant with 27.4K GitHub stars and an MIT license. Built on Rust and Tauri, it runs Whisper or Parakeet transcription and Ollama summarization entirely on your own device, so meeting audio never touches the cloud. It supports macOS and Windows, with flexible summary providers and a commercial PRO tier.

By Marcus Rivera · 5 min · Jul 30, 2026

Bumblebee: Perplexity's Read-Only Dev Endpoint Scanner
Open Source

Bumblebee: Perplexity's Read-Only Dev Endpoint Scanner

Bumblebee is Perplexity's open-source, read-only supply-chain scanner for macOS and Linux developer endpoints, written in Go with zero non-stdlib dependencies under Apache 2.0. It inventories npm, PyPI, Go, RubyGems, Composer and other package managers plus MCP configs, editor extensions, and browser extensions, emitting NDJSON findings against operator-supplied exposure catalogs. Its read-only design never invokes package managers, so it cannot trigger malicious postinstall scripts during a scan.

By Marcus Rivera · 6 min · Jul 28, 2026