DEV Community

Alex Spinov
Alex Spinov

Posted on

Biome Has a Free API: One Tool to Replace ESLint, Prettier, and More

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
Enter fullscreen mode Exit fullscreen mode

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"
    }
  }
}
Enter fullscreen mode Exit fullscreen mode

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/
Enter fullscreen mode Exit fullscreen mode

CI Integration

# GitHub Actions
- uses: biomejs/setup-biome@v2
- run: biome ci .  # Fails on any lint error or format issue
Enter fullscreen mode Exit fullscreen mode

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)