Biome: Replace ESLint + Prettier With One Rust-Powered Tool

Biome formats and lints your JavaScript and TypeScript code in a single pass, runs 50x faster than Prettier, and migrates automatically from ESLint and Prettier configs.

Mahmudul Haque Qudrati — CEO & ML Engineer at Pristren

Mahmudul Haque Qudrati

CEO & ML Engineer

April 24, 2026
7 min read
Biome: Replace ESLint + Prettier With One Rust-Powered Tool

What Is Biome?

One AI engineering post, weekly

LLM benchmarks, prompt techniques, and token-cost breakdowns — not another AI news roundup.

Biome (formerly Rome) is a Rust-based toolchain that replaces ESLint and Prettier with a single binary. It formats code, lints it, and can fix many issues automatically - all in the same tool, in the same pass, with one config file.

Installation

bash
pnpm add -D --save-exact @biomejs/biome

# Initialize config
npx @biomejs/biome init

This creates biome.json:

json
{
  "$schema": "https://biomejs.dev/schemas/1.9.0/schema.json",
  "organizeImports": { "enabled": true },
  "linter": {
    "enabled": true,
    "rules": { "recommended": true }
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 100
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "double",
      "trailingCommas": "all"
    }
  }
}

Team workspace

Ship faster with chat, meetings, and projects in one place — Zlyqor.

Start free

Speed Comparison

On a 100-file TypeScript project:

ToolOperationTime
PrettierFormat 100 files4.2s
ESLintLint 100 files8.7s
BiomeFormat + lint 100 files0.18s

Biome processes both operations in a single AST parse pass. The Rust runtime eliminates JavaScript VM overhead entirely.

Running Biome

bash
# Check (lint + format) without fixing
npx @biomejs/biome check .

# Check and auto-fix
npx @biomejs/biome check --write .

# Format only
npx @biomejs/biome format --write .

# Lint only
npx @biomejs/biome lint .

Lint Rules

Biome ships 200+ rules covering ESLint, TypeScript-ESLint, and more:

json
{
  "linter": {
    "rules": {
      "recommended": true,
      "correctness": {
        "noUnusedVariables": "error",
        "useExhaustiveDependencies": "warn"
      },
      "suspicious": {
        "noExplicitAny": "warn",
        "noConsoleLog": "warn"
      },
      "style": {
        "noNonNullAssertion": "warn",
        "useConst": "error"
      }
    }
  }
}

Migrating From ESLint + Prettier

Biome provides automated migration commands:

bash
# Migrate from Prettier
npx @biomejs/biome migrate prettier --write

# Migrate from ESLint
npx @biomejs/biome migrate eslint --write

These commands read your .eslintrc and .prettierrc files and generate the equivalent biome.json configuration. After migrating:

bash
# Remove old tools
pnpm remove eslint prettier eslint-config-prettier @typescript-eslint/eslint-plugin @typescript-eslint/parser

# Update package.json scripts
# "lint": "eslint ." → "lint": "biome check ."
# "format": "prettier --write ." → (handled by biome check --write)

CI Integration

yaml
# .github/workflows/ci.yml
- name: Lint and format check
  run: npx @biomejs/biome ci .
  # ci mode: exits with error on any issue, no auto-fix

Monorepo Config With extends

json
// packages/ui/biome.json
{
  "extends": ["../../biome.json"],
  "linter": {
    "rules": {
      "style": { "noDefaultExport": "off" }
    }
  }
}

The VS Code extension is available and works out of the box - format on save, inline diagnostics, quick fixes.

References: Biome · GitHub · migration guide

#biome#linter#formatter#rust#eslint-replacement

// discussion

Comments

0/4000
Mahmudul Haque Qudrati — CEO & ML Engineer at Pristren

Mahmudul Haque Qudrati

CEO & ML Engineer

Visionary technologist, software engineer, and machine learning specialist. Founder and CEO of Pristren, directing engineering teams that ship production-grade AI/ML pipelines, mission-critical full-stack applications, and developer tooling. Creator of Zlyqor, the unified team workspace platform. Author of 540+ technical guides and benchmark research reports on large language models, agentic workflows, Model Context Protocol (MCP), and modern web stacks.

PristrenZlyqor