Similar analysis:
- React vs others: https://gist.github.com/tkrotoff/b1caa4c3a185629299ec234d2314e190
- React Native vs Flutter: https://gist.github.com/tkrotoff/93f5278a4e8df7e5f6928eff98684979
No data
2025: https://2025.stateofjs.com/en-US/other-tools/#utilities
- ESLint: 90%
- Biome: 16%
- Oxlint: 1%
No data
https://npmtrends.com/@biomejs/biome-vs-eslint-vs-oxlint
2026/07/28:
- ESlint: 27,571,228 Repositories 889,617 Packages https://github.com/eslint/eslint/network/dependents
- Biome: 120,611 Repositories 27,210 Packages https://github.com/biomejs/biome/network/dependents
- Oxlint: 24,182 Repositories 8,767 Packages https://github.com/oxc-project/oxc/network/dependents
2026/07/28:
- ESlint: 24658 Dependents https://www.npmjs.com/package/eslint
- Biome: 281 Dependents https://www.npmjs.com/package/@biomejs/biome
- Oxlint: 143 Dependents https://www.npmjs.com/package/oxlint
2026/07/28:
- ESLint: 16,812 public repositories https://github.com/topics/eslint
- Biome: 540 public repositories https://github.com/topics/biome
- Oxlint: 133 public repositories https://github.com/topics/oxlint
2026/07/28:
- ESLint: 698k files eslint.config.js https://github.com/search?q=path%3Aeslint.config.js&type=code 22.4k files eslint.config.ts https://github.com/search?q=path%3Aeslint.config.ts&type=code
- Biome: 117k files biome.json https://github.com/search?q=path%3Abiome.json&type=code 9.5k files biome.jsonc https://github.com/search?q=path%3Abiome.jsonc&type=code
- Oxlint: 21.1k files .oxlintrc.json https://github.com/search?q=path%3A.oxlintrc.json&type=code 2.7k files oxlint.config.ts https://github.com/search?q=path%3Aoxlint.config.ts&type=code
2026/07/28:
- ESLint: 42.5K Followers https://x.com/geteslint
- Biome: 9,921 Followers https://x.com/biomejs
- Oxlint: 3,613 Followers https://x.com/OxcProject
No data
https://trends.google.com/explore?date=today%205-y&geo=Worldwide&q=eslint%2Coxlint
https://trends.google.com/trends/explore?date=today%205-y&gprop=youtube&q=eslint,oxlint
No more data
https://www.star-history.com/?repos=oxc-project%2Foxc%2Ceslint%2Feslint&type=date&legend=top-left
2026/07/28:
- ESLint: 27.4k stars https://github.com/eslint/eslint
- Biome: 25.4k stars https://github.com/biomejs/biome
- Oxlint: 22.2k stars https://github.com/oxc-project/oxc
The longer a technology has survived, it is also likely to have a longer remaining life expectancy: https://en.wikipedia.org/wiki/Lindy_effect
https://www.reddit.com/search/?q=oxlint
I recently migrated from biome to oxlint and oxfmt. They are so much better. Faster and oxlint is far more comprehensive. It found hundreds of things biome didn't. It also allowed me to fully cut eslint with a few jsPlugin for oxlint.
Switched our codebase of about 80k lines last month and ESLint went from 12 seconds down to 2 seconds on lint, but our custom rules didn't port over so we had to rewrite three of them and honestly that ate most of the time savings.
What Oxlint can't do at the time of writing:
- Custom parsers (Vue Template, Astro, Svelte). It can lint the respective script part though
- 2 missing typescript-eslint rules
- Various rules from main packages that can be run as JS Plugins instead (so no feature gap but more settings are needed)
Yes i had to drop some rules too. Plugin system of eslint is much better hopefully adoptions drives up plugin ecosystem for oxlint too
Which rules did you have to drop?
@typescript-eslint/naming-convention and no-restricted-imports ans graphql plugins
Only missing: naming-convention, prefer-destructuring
Making Oxlint, Oxfmt, and the official VS Code extension work in a monorepo is still awkward, mainly because of typeAware and typeCheck options that are only allowed in the root Oxlint config. That makes those options hard, or impossible, to use the way you’d expect in a nested package. I suspect the real fix depends on better support for nested configs, or, preferably, moving away from nested configuration altogether, the way ESLint did with flat config in v9+.
This is something on our list to improve 👌🏼
I migrated from Eslint to Oxlint yesterday as the Eslint v10 updated popped up. As the v9 update was already a pain in the *** and some plugins took forever to be compatible, I decided to give it a go.
Down to one from seven dependencies, 4000 lines less of dependencies in package-lock.json, milliseconds instead of multiple seconds.
5/7 would recommend.
of course oxlint is much faster. but most of the gains comes from tsc (which eslint uses) to tsgo (which oxlint uses)
Enabling type-aware rules via typescript-eslint tends to be the bottleneck on multi minute runs. Those and eslint-plugin-import(-x) are orders of magnitude slower than regular syntax rules.
What I like the most about oxc is that the configuration is lights years away simpler than eslint and prettier. By switching from eslint to oxlint I removed like 10 packages in my dev dependencies. And in term of performances, oxlint is faster than eslint with cache. It also handle typescript errors so I could remove my script that checks typescript errors too. A real benefit in term of dev experience.
If you use stylistic rules / antfu's config you might have to wait a bit more. See antfu/eslint-config#767
I tried both oxlint and biome and in the end I choosed biome
Unfortunately still ESLint, but we're looking towards Oxlint for the future, though we still can't switch as Oxlint's ESLint plugin compatibility is still very much work in progress and the ESLint plugins we need don't work with it.
Do you like biome? I found it to be kinda meh and the configuration setup is not nice and not well documented and the cli is very not ergonomic
Biome covers everything frontend like formatting, html, css, etc. Oxlint doesn’t do as much but is more accurate in replacing just EsLint.
I tried migrating to biome and oxlint. conclusion, oxlint has a jsplugin which basically allows you to run eslint in oxlint for eslint plugins that don't have eslint equivalent. didn't find the same thing for biome. this translates to biome not able to migrate 300+ rules. with oxlint, I was not able to migrate only 1 rule.
I already moved from Eslint to Oxlint. Their decision to break their config in 9.00 was disastrous :(. At one point it felt like 80% of my time coding was wrangling ESlint config trying to get everything to work. I just hit a breaking point where I tried both OXlint and Biome and they both worked in ~10 minutes with minimal config. Will forever be grateful for the plugin system and great rules that come out of ESlint, but at this point you would have to put a gun to my head to get me to go back. That’s not even mentioning the performance…
Biome is fantastic. And its plugins ecosystem is roughly hitting critical mass with rules templates, the only reason to be stuck on eslint
biome is great, i replaced eslint and prettier with it in all my projects around a year ago and never been happier but i think it still lacks some functionalities from eslint and prettier plugins
Until there is 100% compatibility, I cannot justify making the switch. I don't want "something else" I want "ESLint, but fast"
It's like 20% of existing rules and no type-checked rules. They both are very far from being full-featured
oxlint is faster than biome, but when you start using oxlint your lint time will most likely be slower, because you'll start using js-plugins :)
Biome >>>>>>>> Eslint
Oxlint + Oxfmt > Biome > Eslint / Prettier
Oxlint >>>> Biome
wait to you see oxlint
Oxlint >>>>>>> Biome
oxlint and oxfmt is just faster and more enjoyfull to use
What made me switch from ESLint to oxlint instead of Biome was the possibility of using some ESLint plugins. Biome combines formatting and linting in a single configuration, while Oxlint is fast without sacrificing as much flexibility.
- https://hn.algolia.com/?q=oxlint&type=comment
- https://hn.algolia.com/?q=eslint&type=comment
- https://hn.algolia.com/?q=biome&type=comment
ESLint
- First announcement: 2013/07/04 https://en.wikipedia.org/wiki/ESLint, https://github.com/eslint/eslint/commit/4f4c3519502645297bac6f6d9509d71980dc320e
- GitHub repository creation: 2013/06/30 https://gitwhois.com/eslint/eslint
Biome
- First announcement: 2023/08/29 https://news.ycombinator.com/item?id=37307495 (fork of https://github.com/rome/tools, 2021/05/04 https://news.ycombinator.com/item?id=27039026)
- GitHub repository creation: 2023/07/27 https://gitwhois.com/biomejs/biome (2020/02/20 https://gitwhois.com/rome/tools)
Oxlint
- First announcement: 2023/12/15 https://news.ycombinator.com/item?id=38652887
- GitHub repository creation: 2023/02/09 https://gitwhois.com/oxc-project/oxc