Skip to content

Biome Config Builder

Build a biome.json for Biome's formatter and linter with rule-group severity, import sorting and VCS ignore, plus an ESLint+Prettier comparison.

Biome Config Builder

Formatter

JavaScript / TypeScript

Linter

correctness
security
suspicious
style
complexity
performance
a11y

Severity pins a representative rule per group; off disables the whole group. Biome has no group-wide severity, so the group's other recommended rules keep their default level.

Files & VCS

biome.json
{
  "$schema": "https://biomejs.dev/schemas/2.0.0/schema.json",
  "vcs": {
    "enabled": true,
    "clientKind": "git",
    "useIgnoreFile": true
  },
  "files": {
    "includes": [
      "**",
      "!**/node_modules",
      "!**/dist",
      "!**/build",
      "!**/coverage"
    ]
  },
  "assist": {
    "actions": {
      "source": {
        "organizeImports": "on"
      }
    }
  },
  "formatter": {
    "enabled": true,
    "indentStyle": "space",
    "indentWidth": 2,
    "lineWidth": 80,
    "lineEnding": "lf"
  },
  "linter": {
    "enabled": true,
    "rules": {
      "recommended": true,
      "correctness": {
        "recommended": true,
        "noUnusedVariables": "error"
      },
      "security": {
        "recommended": true,
        "noDangerouslySetInnerHtml": "error"
      },
      "style": {
        "recommended": true,
        "useConst": "warn"
      },
      "suspicious": {
        "recommended": true,
        "noDebugger": "warn"
      },
      "complexity": {
        "recommended": true,
        "noUselessFragments": "warn"
      },
      "performance": {
        "recommended": true,
        "noAccumulatingSpread": "warn"
      },
      "a11y": {
        "recommended": true,
        "useAltText": "warn"
      }
    }
  },
  "javascript": {
    "formatter": {
      "quoteStyle": "double",
      "jsxQuoteStyle": "double",
      "trailingCommas": "all",
      "semicolons": "always",
      "arrowParentheses": "always"
    }
  },
  "json": {
    "formatter": {
      "trailingCommas": "none"
    }
  }
}

Updated . Provided as is. Check the output before you rely on it in production.

How to use Biome Config Builder

  1. 1

    Configure the formatter

    Set indentStyle, indentWidth, lineWidth, and lineEnding. The JS/TS panel adds quoteStyle, trailingCommas, semicolons, and arrowParentheses for full Prettier-compatible output.

  2. 2

    Tune the linter groups

    Pick a severity per rule group: correctness, security, suspicious, style, complexity, performance, and a11y. Each maps to Biome's recommended rules with your chosen severity.

  3. 3

    Toggle organize-imports and VCS

    Enable Organize imports on save and VCS integration to honor your .gitignore. Add file-level ignores like dist or coverage so Biome skips them entirely.

  4. 4

    Compare with ESLint+Prettier

    Click Show ESLint+Prettier compare to see the equivalent dual-tool setup and a side-by-side feature table covering install size, speed, and rule coverage.

  5. 5

    Copy biome.json

    Review the generated biome.json and click Copy. Save it to your repo root and run bunx biome check . or biome format . to apply the configuration.

Questions and answers

What is Biome Config Builder?
Biome is a Rust-based formatter and linter that replaces ESLint plus Prettier with one binary, configured in biome.json. This builder sets formatter options, a severity for each of the seven rule groups, import sorting and VCS ignore-file use, and can show a side-by-side comparison with an ESLint+Prettier setup.
How does Biome compare to ESLint+Prettier?
Biome is a single binary that formats and lints in one pass, written in Rust. The compare panel shows install size, speed, and feature parity differences across both setups.
Can I customize per-rule severity?
Per group, not per rule. Each of the seven groups (correctness, security, suspicious, style, complexity, performance, a11y) takes off, info, warn or error: off disables the group, and the other levels pin one representative rule at that severity, since Biome has no group-wide setting.
Does it send my data to a server?
No. The builder is fully client-side. Settings render to JSON in your browser and never get transmitted anywhere.
Where do I put biome.json?
At your project root next to package.json. Run biome check ., biome format ., or set up an editor extension that reads the file automatically on save.
For AI agents: how to call this tool

Machine-readable contract, endpoints and examples. Humans can ignore this section.

Best Path For Builders

Browser workflow

Runs instantly in the browser with private local processing and copy/export-ready output.

Browser Workflow

This tool is optimized for instant in-browser execution with local data handling. Run it here and copy/export the output directly.

/biome-config-builder/

For automation planning, fetch the canonical contract at /api/tool/biome-config-builder.json.