switching to biome from eslint

why i switched to biome from eslint and how you can do it too

nextjsreacttypescriptbiomeeslintprettier

Intro

For years, ESLint has been the go-to tool for linting JavaScript and TypeScript projects. Though I never really used it, it was widely adopted.

But in 2023, a new contender entered the scene: Biome (a fork of Rome).

After experimenting with it across a few projects, I decided to make the switch. In this post, I’ll break down what Biome is, why I switched, and how you can migrate smoothly from ESLint + Prettier to Biome.

what is biome

Biome is a fast, all-in-one tool for linting, formatting, and code analysis. It grew out of the Rome project and has quickly become a stable, community-driven alternative to the traditional ESLint + Prettier setup.

Some key features of Biome include:

  • Blazing fast: Written in Rust, it runs faster than ESLint + Prettier.
  • Batteries included: No need to install dozens of plugins. Biome ships with sensible defaults.
  • Unified tooling: Linting, formatting, and (soon) more developer utilities are handled by a single tool.
  • Zero config for most projects: Works out of the box with smart defaults.

why i switched

Performance

ESLint (especially with TypeScript and multiple plugins) can feel sluggish. Running ESLint + Prettier across a large codebase adds noticeable overhead. Biome’s Rust foundation makes it incredibly fast. Formatting and linting run almost instantly—even on large repositories.

Simplicity

With ESLint, I often had to juggle:

  • eslint
  • @typescript-eslint/\* plugins
  • Prettier and its ESLint integration
  • Custom configs per project

Biome reduces all that to a single dependency with minimal configuration. Less time fiddling with config files, more time coding.

Integrated formatter

Biome comes with a Prettier-compatible formatter. Instead of configuring Prettier separately (and sometimes fighting ESLint about formatting rules), you get formatting and linting in one cohesive tool.

Migration

installation

bash
# install
bun add -d @biomejs/biome
 
# initialize
bunx biome init
 
# remove old tooling
bun remove eslint prettier @typescript-eslint/eslint-plugin @typescript-eslint/parser
rm -rf .eslintrc .prettierrc
 

add scripts

json
{
  "scripts": {
    "lint": "biome check .",
    "format": "biome format . --write"
  }
}

Thoughts

Switching from ESLint + Prettier to Biome simplified my workflow, made linting faster, and reduced configuration overhead. While it may not be for everyone—especially if you rely on custom plugins—Biome is a strong choice for modern TypeScript and JavaScript projects. If you’re tired of slow linting runs and juggling multiple tools, give Biome a try. It might just replace two tools in your stack with one.