OMAR
Field NotesCV
Biome: Replacing Two Tools With One Fast One
← All Notes
Tooling23 September 2025 · 6 min read

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

ToolingDXbiome

Need this built properly?

I build secure, fast, bilingual platforms for clients across Egypt, Saudi Arabia, the UAE and Kuwait.

Keep Reading