How it works
ESLint parses code and checks it against rules: a variable that is never used, a comparison that is always false, a React hook called inside a condition, a missing await. Each rule can be an error, a warning or switched off, and many can fix the code automatically. Plugins add rules for React, TypeScript (typescript-eslint), accessibility, imports and more, and frameworks such as Next.js ship a ready-made set.
It runs in the editor as you type, in a pre-commit hook and in CI, where a failing lint blocks the merge. Configuration now lives in a single eslint.config.js file (the flat config), which replaced the older .eslintrc files. Biome and oxlint are newer linters written in Rust that run much faster and cover many of the same rules, with fewer plugins.
ESLint pricing
ESLint vs the alternatives
Related terms
More in Dev workflow and DevOps
Everyday tools