ESLint

Last updated: Mar 2, 2026


Rationale

We use ESLint as the main static linter for TypeScript source code.

  • It is an old-school TypeScript linter, which means it has many rules implemented and has been thoroughly tested.
  • It is open source.
  • It has a huge number of typing checks.
  • It supports caching already-reviewed files for performance.
  • It provides a language server out of the box, considerably affecting development experience.
  • It integrates in-editor typing using its VS Code extension for the development experience.
  • As it is built in JavaScript, it has serious performance limitations.

Alternatives

Below are alternatives we are currently considering as possible replacements to ESLint:

Biome

  • Biome is a static linter and formatter, meaning that it not only replaces ESLint but also formatting tools like Prettier.
  • It is open source.
  • It does not have as many typing checks as ESLint, but is getting there very fast.
  • Although it currently does not support caching, it is still much faster compared to ESLint.
  • It provides a language server out of the box, considerably improving development experience.
  • It integrates in-editor typing using its VS Code extension for the development experience.
  • As it is built in Rust, it is considerably faster compared to other linters and formatters, up to a point where performance is no longer a concern.

Oxc

  • Oxc is a static linter; it does not support formatting yet.
  • It is open source.
  • It does not have as many typing checks as ESLint, but is getting there very fast.
  • Although it currently does not support caching, it is still much faster compared to ESLint.
  • It provides a language server out of the box, considerably improving development experience.
  • It integrates in-editor typing using its VS Code extension for the development experience.
  • As it is built in Rust, it is considerably faster compared to other linters and formatters, up to a point where performance is no longer a concern.

Usage

We use ESLint to enforce strict code quality on all of Fluid Attacks' TypeScript source code.

On this page