ProductESLint
Websiteeslint.org
CategoryCode Quality / Linting
LicenseMIT
PricingFree and open source

What Is ESLint?

ESLint is a pluggable linter for JavaScript and TypeScript. It analyzes your code for bugs, style issues, and anti-patterns, and can auto-fix many problems. ESLint is installed in over 40 million projects on npm — it is the standard code quality tool in the JavaScript ecosystem.

ESLint’s power is in its extensibility. Every rule is a plugin. You can use the built-in rules, install community rule sets (eslint-config-airbnb, @typescript-eslint, eslint-plugin-react), or write your own rules that enforce your team’s specific patterns.

Key Features

Pluggable Rules

ESLint ships with 300+ built-in rules, and the plugin ecosystem adds thousands more. Rules can report errors, warnings, or suggestions, and many include auto-fix. Configure rules to off, warn, or error, with per-rule options for fine-grained control.

Auto-Fix

Run eslint --fix and ESLint corrects fixable issues automatically. Unused imports, missing semicolons, inconsistent spacing, wrong quote style — auto-fix handles the mechanical cleanup so code review focuses on logic.

Flat Config (eslint.config.js)

ESLint’s new flat config system replaces the old .eslintrc cascade with a single JavaScript file. No more confusion about which config file applies to which directory. The flat config is explicit, composable, and supports native ESM imports.

TypeScript Support

Through @typescript-eslint, ESLint understands TypeScript types. Type-aware rules catch bugs that plain linting can’t: unused type imports, unsafe any usage, promise handling errors, and type-specific anti-patterns.

Who Is This For?

Pros

  • Industry standard (40M+ npm installs)
  • 300+ built-in rules + huge plugin ecosystem
  • Auto-fix for mechanical issues
  • TypeScript support via @typescript-eslint
  • Flat config is clean and composable
  • Editor integration (VS Code, JetBrains)

Cons

  • Configuration can be complex
  • Flat config migration from .eslintrc is work
  • Slower than newer tools (Biome, oxlint)
  • Rule conflicts between plugins
  • Performance on large codebases

Verdict

ESLint is not optional. It is the standard code quality tool for JavaScript and TypeScript projects, and the ecosystem is built around it. The flat config is a significant improvement over the old cascade system, and @typescript-eslint’s type-aware rules catch real bugs that tests miss.

The main alternative is Biome (formerly Rome), which is faster and combines linting with formatting. Biome is worth evaluating for new projects, but ESLint’s plugin ecosystem is vastly larger, and the migration cost from ESLint to Biome is non-trivial for existing projects. For most teams, ESLint remains the right choice.

Build a code quality or developer tool?

Get reviewed and linked from our 27-site network.

See Packages