Biome Review 2026: One Tool to Replace ESLint + Prettier
Biome (formerly Rome) is a Rust-based linter and formatter for JavaScript, TypeScript, JSX, JSON, and CSS. One tool, one config, 40x faster than ESLint. After switching two projects, here's the honest review.
What Biome Does
- Linting — 270+ rules (covers most ESLint + TypeScript-ESLint rules)
- Formatting — Prettier-compatible output
- Import sorting — built-in, no extra plugin
- One config file —
biome.jsonhandles everything - One command —
biome check .lints + formats + sorts imports
What I Like
Speed
Biome is 40-80x faster than ESLint. On a 500-file project:
ESLint: 8.2 seconds
Biome: 0.2 seconds
CI pipelines that spent minutes on linting now take seconds. Locally, biome check feels instant.
Zero Config
npx @biomejs/biome init
Creates a biome.json with sensible defaults. That's it. Compare with ESLint's config requiring multiple plugins, parsers, and configs:
{
"$schema": "https://biomejs.dev/schemas/1.9.0/schema.json",
"linter": { "enabled": true, "rules": { "recommended": true } },
"formatter": { "enabled": true, "indentStyle": "space" }
}
Replaces Two Tools
ESLint for linting + Prettier for formatting = two configs, potential conflicts, eslint-config-prettier to bridge them. Biome = one tool, zero conflicts.
Great IDE Integration
VS Code extension works perfectly. Format on save, inline diagnostics, quick fixes. Feels identical to ESLint + Prettier but faster.
Helpful Error Messages
Biome's diagnostics include explanations and suggestions:
file.ts:5:3 lint/suspicious/noExplicitAny ━━━━━━━━
⚠ Unexpected any. Specify a different type.
4 │ function process(data: any) {
│ ^^^
ℹ any disables many type checking rules. Consider using unknown instead.
Better than ESLint's terse messages.
What I Don't Like
No Plugin System
Biome has no plugin ecosystem. ESLint has thousands of plugins. If you need eslint-plugin-tailwindcss, eslint-plugin-a11y, or custom rules — you need ESLint.
This is the single biggest limitation.
No Vue/Svelte Support
Biome doesn't parse .vue or .svelte files. React/Next.js is supported. If your project uses Vue or Svelte, stick with ESLint.
Missing Some Rules
Biome covers ~80% of common ESLint rules. Some niche rules are missing. Check the rules reference for your must-haves.
Formatting Differences
Biome aims for Prettier compatibility but isn't 100% identical. Most differences are minor (trailing comma placement in some edge cases). If your team requires exact Prettier output, this could cause friction.
Still Maturing
Biome is actively developed. Features ship frequently, but some edges are rough. ESLint has 10+ years of battle-testing.
Migration from ESLint + Prettier
# Step 1: Install Biome
npm install --save-dev @biomejs/biome
# Step 2: Auto-migrate ESLint config
npx @biomejs/biome migrate eslint --write
# Step 3: Remove ESLint + Prettier
npm uninstall eslint prettier eslint-config-prettier @typescript-eslint/parser @typescript-eslint/eslint-plugin
# Step 4: Update scripts
# package.json: "lint": "biome check ." instead of "eslint ."
Migration took about 30 minutes per project. The migrate eslint command handles most rule mappings.
Pricing
Free. Open source (MIT/Apache 2.0). No paid tiers.
Biome vs ESLint + Prettier
| Biome | ESLint + Prettier | |
|---|---|---|
| Speed | 40-80x faster | Baseline |
| Config files | 1 (biome.json) | 2-3 (.eslintrc, .prettierrc, etc.) |
| Plugins | ❌ | ✅ Thousands |
| Vue/Svelte | ❌ | ✅ |
| Formatting | Built-in | Separate tool |
| Import sorting | Built-in | Plugin required |
| Custom rules | ❌ | ✅ |
| Maturity | 2 years | 10+ years |
Best Use Cases
- New TypeScript/React projects — start with Biome
- CI optimization — switch to Biome for faster pipelines
- Solo developers — one tool, zero config hassle
- Monorepos — speed advantage multiplied across packages
Worst Use Cases
- Vue or Svelte projects — not supported
- Need specific ESLint plugins — no plugin system
- Large teams with custom ESLint rules — migration cost is high
- Exact Prettier compatibility required — minor differences exist
FAQ
Should I migrate my existing project?
If you use React/Next.js/TypeScript and don't depend on niche ESLint plugins, yes. The speed improvement alone is worth it.
Can I use Biome alongside ESLint?
Yes, during migration. Run Biome for formatting + core rules, ESLint for plugin-specific rules. Gradually move rules to Biome.
Is Biome production-ready?
Yes. Used by many companies in production. The core linting and formatting is stable.
Will Biome add plugin support?
It's planned but no timeline. The team prefers built-in rules over a plugin architecture.
Bottom Line
Biome is the best linting + formatting tool for React/TypeScript projects in 2026. One tool replaces ESLint + Prettier with 40x better performance. The tradeoff is no plugins and no Vue/Svelte support. For new projects, start with Biome. For existing ESLint setups that work fine, migrate when the speed benefits matter.
Recommendation: New React/Next.js project? Use Biome. Existing ESLint setup with plugins? Keep ESLint.