Biome (formerly Rome) is the Rust-based all-in-one TypeScript tool. Linter + formatter + bundler concept; in 2026 the linter and formatter are production-ready. This post is the working comparison.

Speed

On a 100k-LoC TS project:

  • ESLint + Prettier: 25 seconds.
  • Biome: <2 seconds.

The order-of-magnitude difference changes behavior — pre-commit hooks become tolerable; CI becomes fast.

Configuration

// biome.json
{
  "linter": {
    "enabled": true,
    "rules": { "recommended": true }
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 100
  }
}

One file. No plugins to manage. Run biome check . for lint+format combined.

What ESLint still wins on

  • Plugin breadth. Vue, React-specific, Tailwind, security-specific, accessibility — all huge ecosystems built on ESLint.
  • Custom rules. Internal rules for your codebase.
  • Mature integrations. Every IDE, every framework, every CI.

If you depend on eslint-plugin-react-hooks, eslint-plugin-jsx-a11y, or custom rules — staying on ESLint is wise. Biome covers core JS/TS but not the long tail.

Migration

bunx biome migrate eslint --write
bunx biome migrate prettier --write

Biome reads your existing config and translates. The output isn’t perfect; review what’s preserved.

Recommendation

  • New TypeScript project: Biome. Simpler, faster, sufficient.
  • Existing project on ESLint + Prettier that works: stay. Migrate when ESLint’s slowness becomes the bottleneck.
  • Frontend with framework-specific lints: ESLint for now.

For the surrounding stack see Bun vs Node.js in 2026 and Modern TypeScript Backend with Hono on Bun .

Read this next

If you want a Biome + Bun + Hono starter, it’s at rajpoot.dev .


Building something AI-, backend-, or data-heavy and want a second pair of eyes? I do consulting and freelance work — see my projects and ways to reach me at rajpoot.dev .