ESLint
Ranked 3 of 14 linters by recommenders
Pluggable JavaScript linter that catches bugs and enforces code quality rules, with custom rules easy to write. Critics say it is slow on large projects and breaks across version upgrades.
Pluggable JavaScript linter that catches bugs and enforces code quality rules, with custom rules easy to write. Critics say it is slow on large projects and breaks across version upgrades.
54 people gave an opinion
- recommend it
- 32
- criticize it
- 22
- approval share
- 59%
Recommended in 11 of 13 months
- November 2025: recommended
- December 2025: recommended
- January 2026: recommended
- February 2026: recommended
- March 2026: recommended
- April 2026: recommended
- May 2026: recommended
- June 2026: recommended
- July 2026: recommended
- August 2026: not recommended
- September 2026: recommended
- October 2026: recommended
- November 2026: not recommended (month in progress)
Why it doesn’t carry the badge
- 32 people recommend itNeeds 10 or more, met.
- 1.4 recommenders for every criticNeeds 2 to 1 or better, not met.
- Recommended in 11 of 13 monthsNeeds 4 or more, met.
The same three rules apply to every product, and the badge can’t be bought. How the badge works
What people say about it
The reasons people give, with the number of comments that give each one. Open a reason to read what they said.
Why people recommend it
Each mark is one comment
Enforces code quality rules
“It's excellent for enforcing code quality rules (formatting, unused variables, best practices, etc.)”
Comment from 5 Mar 2026 in “Show HN: CodeDrift – static analysis for AI-generated code” “setting up a large number of static code analysis checks has had the highest impact on code quality”
Comment from 7 Feb 2026 in “How to effectively write quality code with AI” “They are what keep the AI's output from drifting into unmaintainable spaghetti code.”
Comment from 17 Feb 2026 in “Show HN: I built a tool to un-dumb Claude Code's CLI output (Local Log Viewer)” - Comment from 6 Jan 2026 in “JavaScript's For-Of Loops Are Fast”
- Comment from 4 Apr 2026 in “LLMs audit code from the same blind spot they wrote it from. Here's the fix”
Helps keep AI agent output clean
“by running the linter, if Claude does decide to inject this, it gets taken out, because the linter runs and then tells it so”
Comment from 16 Dec 2025 in “Vibe coding creates fatigue?” “I use a tested project template + .md files as well as ESLint + Stylelint and each project generally turns out pretty clean.”
Comment from 19 Jan 2026 in “Ask HN: COBOL devs, how are AI coding affecting your work?” “If you use eslint and tell it how to run lint in CLAUDE.md it will run lint itself and find and fix most issues like this.”
Comment from 14 Mar 2026 in “1M context is now generally available for Opus 4.6 and Sonnet 4.6” - Comment from 28 Feb 2026 in “Rust Is Just a Tool”
- Comment from 9 Jan 2026 in “Why AI is pushing developers toward typed languages”
Custom rules and plugins
“it's so handy to be able to write a new lint rule or introduce an off-the-shelf rule without needing to fix all existing violations”
Comment from 2 Feb 2026 in “Ratchets in Software Development” “tools like eslint allow custom rules which are easy write with something like opus 4.6”
Comment from 12 Mar 2026 in “Many SWE-bench-Passing PRs would not be merged” “it's plugins that make ESLint such a powerful platform that it still can't be replaced”
Comment from 23 Sep 2026 in “The JavaScript Midlife Crisis” Syntax-aware AST-based checks
“eslint for AST-based code rule checking (easily picks up duplication for example)”
Comment from 24 Jul 2026 in “Why Software Factories Fail” “get actual syntax aware linting rather than relying on more brittle regex rules”
Comment from 2 Feb 2026 in “Ratchets in Software Development”
What people warn about
Each mark is one comment
Slow on large projects
“running ESLint and Prettier on your project and having a full build and formatting iteration take like 2 minutes”
Comment from 28 Mar 2026 in “Make macOS consistently bad (unironically)” “ESLint on medium/big projects can be pretty slow and if you use type aware rules it opts out of caching”
Comment from 18 Feb 2026 in “Fastest Front End Tooling for Humans and AI” Breaking changes between versions
“eslint has decided to kill off the APIs that support rules like `no-unused-modules`”
Comment from 26 Feb 2026 in “Show HN: Rev-dep – 20x faster knip.dev alternative build in Go” “does it understand the difference between eslint 8x and eslint 9.x?”
Comment from 7 Jan 2026 in “Opus 4.5 is going to change everything” “I still haven't fully migrated every project I maintain to eslint 9”
Comment from 2 Dec 2025 in “Progress on TypeScript 7 – December 2025” - Comment from 26 Feb 2026 in “Show HN: Rev-dep – 20x faster knip.dev alternative build in Go”
Heavy dependency footprint
“ESLint is now my only dev dependency with hundreds of dependencies of its own.”
Comment from 28 Nov 2025 in “GitLab discovers widespread NPM supply chain attack” “led to the creation of weird ecosystem like babel, webpack, eslint”
Comment from 19 May 2026 in “Mini Shai-Hulud Strikes Again: 314 npm Packages Compromised”
Other linters people recommend
The four most recommended other linters, with the same counts for each, so you can compare like for like. The tick on each bar marks the 2 to 1 line the badge needs.
| Product | Recommend | Criticize | Approval | Months | Owned | Badge |
|---|---|---|---|---|---|---|
| Ruff | 115 | 16 | 88% | 11 | — | Approved |
| Clippy (Rust linter) | 58 | 31 | 65% | 12 | — | — |
| ESLintThis page | 32 | 22 | 59% | 11 | — | — |
| Biome | 23 | 5 | 82% | 10 | — | Approved |
| Oxlint | 20 | 5 | 80% | 7 | — | Approved |
What people said
40 of the 60 comments that mention it, newest first. Each links to the original comment.
“I have been using those for more than a decade in node”
“it's plugins that make ESLint such a powerful platform that it still can't be replaced”
“now they are codified and provide instant feedback”
“eslint for AST-based code rule checking (easily picks up duplication for example)”
“Lots of breaking changes but I like where they landed”
“eslint -> oxlint (but in rust, and fast)”
“native replacements for eslint and prettier”
“I'd have preferred a simple eslint config with autofix on save”
“flagged the ESLint config file. Looked totally normal.”
“led to the creation of weird ecosystem like babel, webpack, eslint”
“Typescript with strict types and ultra-tight eslint config can give Rust a run for its money.”
“I haven't seen it get around my guard rails”
“These tools have been catching bugs reliably for years.”
“running ESLint and Prettier on your project and having a full build and formatting iteration take like 2 minutes”
“If you use eslint and tell it how to run lint in CLAUDE.md it will run lint itself and find and fix most issues like this.”
“ESLint/SonarQube don't even look for these”
“tools like eslint allow custom rules which are easy write with something like opus 4.6”
“It's excellent for enforcing code quality rules (formatting, unused variables, best practices, etc.)”
“You might also have success asking your agent to run `eslint` at the end of every subtask”
“Your tools just constantly changing wildly over a version upgrade”
“eslint has decided to kill off the APIs that support rules like `no-unused-modules`”
“ESLint on medium/big projects can be pretty slow and if you use type aware rules it opts out of caching”
“I've never been bothered by the performance of standard tooling”
“just using npm and eslint”
“They are what keep the AI's output from drifting into unmaintainable spaghetti code.”
“setting up a large number of static code analysis checks has had the highest impact on code quality”
“get actual syntax aware linting rather than relying on more brittle regex rules”
“it's so handy to be able to write a new lint rule or introduce an off-the-shelf rule without needing to fix all existing violations”
“I use a tested project template + .md files as well as ESLint + Stylelint and each project generally turns out pretty clean.”
“Tools like ESLint are also nice but focused a bit more on the code than architecture/structure.”
“You cannot simply patch ts or eslint via pnpm if you want to.”
“offload as much as you can from your AGENT.md file into type-checking, linters, etc.”
“does it understand the difference between eslint 8x and eslint 9.x?”
“flags real, serious issues but still allows you to be productive”
“airbnb is the default option, which ends up making it used very widely”
“by running the linter, if Claude does decide to inject this, it gets taken out, because the linter runs and then tells it so”
“you probably want the recommended preset for whatever ruleset exists for the stack you work with”
“I still haven't fully migrated every project I maintain to eslint 9”
“ESLint is now my only dev dependency with hundreds of dependencies of its own.”
“It's one of the reasons I still prefer ESLint over Prettier in JS land”
Counts come from 1,795,640 Hacker News comments, November 2025 to November 2026. How we count. Report a mistake.