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
- Modern TypeScript Backend with Hono on Bun
- Bun vs Node.js in 2026
- Drizzle ORM Deep Dive
- Modern Python Tooling 2026 — the Python equivalent of “fast Rust tools.”
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 .