Skip to main content
← Back to blog posts

Why You Should Use BiomeJS Over Prettier and ESLint

BiomeJS is an all-in-one code formatter and linter that provides a unified alternative to tools like Prettier and ESLint. By eliminating the need to manage multiple tools and their configurations, Biome simplifies the development workflow. This article explores why Biome is a superior choice and demonstrates how to get started with it.


Advantages of Using biome

  • Unified Toolchain: Biome combines the functionality of Prettier and ESLint, so there's no need to set up, configure, and synchronize multiple tools.
  • Performance: Built in Rust, Biome is significantly faster than JavaScript-based tools.
  • Zero Dependencies: Biome eliminates the need for extensive node_modules overhead.
  • Built-in TypeScript Support: Unlike Prettier and ESLint, which require plugins, Biome works with TypeScript out of the box.
  • Editor Integration: Offers seamless integration with VSCode and other editors.

Setting Up Biome in Your Project

Step 1: Install Biome

npm install --save-dev @biomejs/biome
// or
yarn add -D @biomejs/biome
// or
bun install -D @biomejs/biome

Step 2: Initialize Biome

Run the initialization command to set up Biome in your project:

biome init

This will create a biome.json configuration file in your project root.


Practical Usage Examples

Formatting Code

With Biome, formatting is effortless. Run the following command to format all files in your project:

biome format .

You can also format specific files or directories:

biome format src/**/*.ts

Before Formatting:

function add(a,b){return a+b;}

After Formatting (Default Config):

function add(a, b) {
  return a + b;
}

Linting Code

Biome's linter runs automatically when you invoke the check command:

biome check .

Example Issue:

Code violating a lint rule, like using var instead of let:

var name = "Biome";

Suggested Fix:

Run the fix command:

biome fix .

Updated Code:

let name = "Biome";

Biome also displays clear and concise error messages, making debugging faster.


Configuration in biome.json

Biome's configuration is simple and self-contained. Example biome.json:

{
  "formatter": {
    "lineWidth": 80,
    "indentStyle": "space",
    "indentWidth": 2
  },
  "lint": {
    "enabled": true,
    "rules": {
      "recommended": true
    }
  }
}

No need to juggle separate .eslintrc and .prettierrc files!


Comparing Biome with Prettier + ESLint

FeatureBiomePrettier + ESLint
SetupSingle tool, easyMultiple tools, complex
PerformanceBlazing fast (Rust)Slower (JavaScript)
DependenciesZero dependenciesRequires plugins
TypeScript SupportBuilt-inPlugins required
Configuration SimplicityUnified configMultiple configs

Conclusion

Biome simplifies modern JavaScript and TypeScript development by offering a high-performance, unified toolchain for formatting and linting. Its zero-dependency setup, blazing-fast speed, and built-in support for TypeScript make it a clear winner over Prettier and ESLint.

Switch to Biome today and streamline your workflow! 🚀