Biome hit v2.3 this year and the hype finally caught up to my curiosity. A single Rust binary that replaces ESLint, Prettier, and the 127+ npm packages they drag in. Sub-200ms linting on entire codebases. One config file instead of four. Every solo dev I know has been talking about it.
So I migrated one of my side projects last weekend. Here's what happened.
The migration was shockingly easy
Biome ships a biome migrate eslint command that reads your existing ESLint config and ports it over. I ran it, tweaked maybe five rules, and my project was linting and formatting in under ten minutes. For context, my last ESLint config migration (v8 to v9 flat config) took me an entire afternoon and two rage quits.
The speed difference hit me immediately. My project has about 40k lines of TypeScript. ESLint + Prettier took around 8 seconds to lint and format everything. Biome did it in 180ms. That's not a typo. I checked the output three times.
For a solo dev running checks on every save, that difference compounds fast. My editor feels snappier. My pre-commit hooks actually run before I lose focus. Small things, but they add up across a full day of shipping.

Where it falls apart
Here's the part nobody on Twitter wants to talk about: Biome can't replace eslint-plugin-react-hooks. If you're building with React, and let's be real most of us are, that plugin catches dependency array bugs that will ruin your afternoon. Biome has no equivalent.
Same story with eslint-plugin-next for Next.js projects. No custom rule support either, so if your team (or your past self) wrote any project-specific lint rules, those are gone.
I hit this wall on day two. I pushed code that had a stale closure in a useEffect. The kind of bug that eslint-plugin-react-hooks catches instantly. Biome waved it right through. I didn't notice until the feature was broken in staging.
That one bug cost me more time than all the speed gains from the migration. And it's exactly the kind of thing that bites solo devs hardest. No second pair of eyes on the PR.
The real tradeoff
Biome isn't bad. It's genuinely impressive engineering. The Rust rewrite of JavaScript tooling is one of the most impactful trends in the ecosystem right now, and Biome is leading that charge for linting and formatting.
But the pitch is "replace your entire linting stack." The reality is "replace most of it, and hope you catch what's left." For a greenfield project with no React hooks or framework-specific needs? Biome is a clear win. For anything touching React or Next.js in production? You're trading config complexity for bug risk.

My verdict
I'm keeping Biome on my side project. The speed is addictive and the single config file is a relief after years of ESLint/Prettier wars. But my main product, a Next.js app with heavy hooks usage, stays on ESLint + Prettier until Biome closes the plugin gap.
If you're starting something new and it's not React-heavy, try it. The migration path is smooth and the performance gains are real. Just know what you're giving up before you delete that .eslintrc.
