Skip to main content

Biome

Use Biome. It replaces both ESLint and Prettier in a single fast tool, and is what this repo dogfoods.

ScenarioRecommendation
New projectBiome
Existing ESLint configKeep ESLint, migrate gradually
Need a specific ESLint pluginESLint (or Biome + ESLint for that plugin only)

Usage​

Copy the base config into your project:

npx @rtorcato/repo-tooling copy biome

This creates a biome.json with:

  • Tab indentation, 100 character line width
  • Single quotes, ES5 trailing commas
  • Recommended linting rules with sensible overrides
  • Smart file patterns excluding build directories

Extending the preset​

Or extend it, and keep your biome.json to just the deltas:

{
"$schema": "https://biomejs.dev/schemas/latest/schema.json",
"extends": ["@rtorcato/repo-tooling/biome"],
"files": { "includes": ["!**/.tanstack", "!src/routeTree.gen.ts"] }
}

files.includes in an extending config must be negations only. Mirroring the preset and restating "**" first is the natural instinct, and it fails:

biome.json:6:7 lint/suspicious/noBiomeFirstException
× Biome detected that at least one of your extended packages starts with **.

The negation-only list merges into the preset's includes, so its exclusions (node_modules, dist, coverage, …) still apply — yours are added to them.

Customisation​

After copying, edit biome.json directly:

{
"linter": {
"rules": {
"recommended": true,
"suspicious": {
"noExplicitAny": "error"
}
}
}
}

Import in scripts​

// biome.json path for lint-staged or other scripts
import config from '@rtorcato/repo-tooling/biome'