Modern JavaScript tooling creates friction through bloated configs, ESLint–Prettier conflicts, and slow feedback. Biome replaces that with a single Rust-based tool that unifies linting and formatting, runs 10–20× faster, and requires minimal configuration—making tooling fast, predictable, and invisible again.
JavaScript Tooling Fatigue Is Real
If you’ve worked on a modern JavaScript or TypeScript project long enough, you’ve probably experienced this moment:
You open package.json and just stare.
ESLint.
Prettier.
Six plugins.
Three shared configs.
A .eslintrc file that somehow grew to 200+ lines.
At some point, linting and formatting stop feeling like tools and start feeling like projects of their own.
The Core Problems
Complexity
Setting up ESLint for a TypeScript + React project isn’t trivial. You need:
a parser
multiple plugins
shareable configs
explicit coordination with Prettier so rules don’t fight each other
Miss one step, and suddenly formatting rules conflict with lint rules.
Performance
On a medium-sized project (~500 files), ESLint can take 15–30 seconds to run. Pre-commit hooks become slow enough that people start skipping them. That’s a smell.