
Biome: Replacing Two Tools With One Fast One
Linting and formatting in a single binary. On a mid-size project the difference is seconds versus instant.
Every JavaScript project accumulates the same two tools, their plugins, the config that makes them agree with each other, and the plugin that stops them fighting. Then someone spends an afternoon debugging why formatting differs between a laptop and CI.
Biome replaces both with one binary and one config file.
The setup
npm i -D @biomejs/biome
npx biome init
{
"formatter": { "enabled": true, "indentStyle": "space", "indentWidth": 2 },
"linter": {
"enabled": true,
"rules": { "recommended": true }
}
}
biome check --write .
One command formats and lints. No plugin resolution, no config that turns off rules another tool re-enables.
The speed is not a marginal difference
On a mid-size project, linting and formatting go from several seconds to effectively instant. That changes behaviour rather than just metrics: a check that finishes in 100ms can run on every save and in a pre-commit hook without anybody objecting.
Slow tooling gets skipped. Fast tooling gets used, and tooling that gets used is the only kind that improves anything.
Where it does not fit yet
The ecosystem's plugin catalogue is enormous and decades deep. If your project depends on a specific framework-provided rule set, or a custom rule someone wrote for your codebase, check coverage before migrating. This is the main reason to stay put.
Migration is otherwise straightforward — it can import existing configuration — and can be done incrementally: formatting first, then linting once the rule mapping is confirmed.
Where I use it
New projects, without hesitation. Existing projects when the tooling config has become something nobody wants to open.
For client handover it is a genuine simplification: one dependency, one config file, one command in the README. The next developer does not inherit a tooling archaeology project.
The general principle
Tooling that is fast enough to be invisible is tooling people leave enabled. That is worth more than any individual rule it enforces, and it is why I now weight speed heavily when choosing developer tools rather than treating it as a nice extra.
Resources
- Repo: biomejs/biome
- Docs: biomejs.dev
- Video walkthroughs: YouTube: Biome setup
- Related: Pre-commit hooks worth installing
Need this built properly?
I build secure, fast, bilingual platforms for clients across Egypt, Saudi Arabia, the UAE and Kuwait.


