ESLint + Prettier + their configs + their plugins + their conflicts = 15 devDependencies and a weekend of debugging. Biome replaces all of it with one binary.
What Is Biome?
Biome is a fast formatter, linter, and more — written in Rust, designed to replace ESLint and Prettier in one tool.
npx @biomejs/biome init # Creates biome.json
npx @biomejs/biome check --write . # Format + lint + fix
One command. One config file. One tool.
Speed
Biome formats and lints a 10,000-file monorepo in under 1 second. ESLint + Prettier takes 45+ seconds on the same codebase.
How? It's written in Rust and processes files in parallel. No JavaScript overhead. No plugin loading. No config merging.
The Config
{
"formatter": {
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 100
},
"linter": {
"rules": {
"recommended": true,
"complexity": {
"noExcessiveCognitiveComplexity": "warn"
},
"suspicious": {
"noExplicitAny": "error"
}
}
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"semicolons": "asNeeded"
}
}
}
Compare this to setting up .eslintrc.js + .prettierrc + .editorconfig + eslint-config-prettier + eslint-plugin-import + @typescript-eslint/parser...
What It Replaces
| Tool | Biome equivalent |
|---|---|
| Prettier | biome format |
| ESLint | biome lint |
eslint --fix |
biome check --write |
eslint-config-prettier |
Not needed (no conflicts) |
| Import sorting plugins | Built-in import organizer |
200+ Lint Rules
Biome includes rules from ESLint, TypeScript-ESLint, eslint-plugin-react, eslint-plugin-a11y, and eslint-plugin-import — all built in, no plugins needed:
# See all available rules
npx @biomejs/biome rage
# Lint with auto-fix
npx @biomejs/biome lint --write src/
CI Integration
# GitHub Actions
- uses: biomejs/setup-biome@v2
- run: biome ci . # Fails on any lint error or format issue
biome ci is designed for CI — no writes, just checks. Exit code 1 if anything fails.
Building modern JavaScript/TypeScript projects? Check out my developer tools or email spinov001@gmail.com.
Top comments (0)