Anthony's ESLint config preset
6.2k
Stars
576
Forks
52
Open issues
30
Contributors
AI Analysis
A personal ESLint configuration preset by Anthony Fu that provides opinionated, zero-config linting with auto-fix capabilities, designed as a Prettier alternative. It supports TypeScript, Vue, JSX, JSON, YAML, and other formats out-of-box with optional integrations for React, Next.js, Svelte, and Astro. Best suited for developers and teams adopting ESLint flat config who value strong opinions on code style consistency.
Inferred from signals mentioned in the README (tests, CI, type safety) — not a review of the actual code.
AI's overall editorial judgment — not an average of the bars above, can weigh other factors too.
Anthony Fu's opinionated ESLint flat-config preset covering TypeScript, Vue, React, and a dozen file types out of the box
antfu/eslint-config is a batteries-included ESLint configuration preset authored by Vue/Vite core-team member Anthony Fu. It consolidates linting and formatting into a single tool (no Prettier required), supports ESLint's new flat-config format natively, and covers TypeScript, JSX, Vue, JSON, YAML, Markdown, CSS, and more with a single import. It targets individual developers and teams who want a coherent, low-friction JS/TS linting baseline without assembling dozens of plugins manually. With 6,200+ stars and active maintenance as of June 2026, it has clearly outgrown being purely personal — though the author explicitly positions it as an opinionated personal config.
Created in July 2019 as a personal ESLint config, it evolved significantly when ESLint introduced flat config (v9). The author gave a JSNation 2024 talk on it, signaling deliberate investment in the project's public life beyond personal tooling.
Growth was driven by Anthony Fu's visibility in the Vue/Vite/Nuxt ecosystem and his advocacy for ESLint flat config as a Prettier replacement. The JSNation 2024 talk accelerated awareness. Star trajectory from ~1k (pre-flat-config era) to 6k+ reflects community interest in the flat-config migration story. Weekly star adds (6/week as of measurement date) suggest mature, steady interest rather than viral growth.
Direct npm download data is not available in the provided metadata, but the package is published to npm as @antfu/eslint-config. The 575 forks and widespread references in the Vue/Nuxt/Vite open-source ecosystem suggest meaningful real-world usage. Adoption appears concentrated in the Vue/Vite developer community and individual projects following Anthony Fu's style. Large-scale enterprise adoption not verified.
Appears to be a composable factory function (antfu()) that returns an ESLint flat-config array. Likely uses a plugin-aggregation pattern internally, wiring together eslint-stylistic, typescript-eslint, eslint-plugin-vue, and others behind a unified API. Optional framework support (React, Svelte, Astro, etc.) suggests lazy-loading or conditional plugin inclusion.
Not documented in README
Last push was 2026-06-26, two days before evaluation date — actively maintained. 575 forks suggest community engagement. The README includes explicit upgrade guidance, indicating the author takes backward-compatibility communication seriously. No signs of stagnation.
ADOPT IF: you are building in the Vue/Vite/Nuxt ecosystem, want a flat-config-native setup, and are comfortable with the author's stylistic choices (single quotes, no semi) — it eliminates significant boilerplate. AVOID IF: your team has strong existing style preferences incompatible with these opinions, you need stability guarantees across patch versions, or you require vendor-neutral tooling for a large organization. MONITOR IF: you use Prettier today but are watching the ESLint-as-formatter space — this config is the clearest practical demonstration of that approach.
Independent dimensions
Mainstream potential
4/10
Technical importance
6/10
Adoption evidence
6/10
- Explicitly personal config: the author reserves the right to make breaking style changes; downstream consumers must review diffs on every update.
- Tight coupling to Anthony Fu's personal judgment means no governance model or RFC process — direction can shift without community input.
- The no-Prettier stance may create friction when onboarding contributors who expect Prettier in the project.
- Dependency on a large number of upstream ESLint plugins means any breaking change in those plugins (e.g., eslint-plugin-vue, typescript-eslint) can require rapid updates.
- Mainstream potential is limited by its opinionated nature — teams needing neutral shared configs will likely build their own or use org-specific presets instead.
Likely to remain a well-maintained, influential reference implementation for ESLint flat config in the Vue ecosystem, with slow but steady adoption growth. Unlikely to become a cross-ecosystem default due to its intentionally opinionated stance.
Newsletter
Get analyses like this every Monday
Free weekly digest of the most interesting open-source discoveries.
Languages
Information
- Website
- https://eslint-config.antfu.me/
- Language
- JavaScript
- License
- MIT
- Last updated
- 2w ago
- Created
- 85mo ago
- Analyzed with
- anthropic/claude-haiku-4-5
Stars over time
Contributors over time
Top 100 contributors only — repos with more will plateau at 100.
Open issues
perfectionist/sort-imports: missing style-groups?
Feature Request: Add compatibility support for Rslint (high-performance ESLint-compatible linter)
Feature: Adding Canary Tokens to detect supply chain compromise
What configurations need to be made to format the following code?
semi-rule breaking types
Top contributors
Recent releases
Similar repos
prettier/prettier-eslint
prettier-eslint runs code through Prettier followed by ESLint --fix, combining...
eslint-stylistic/eslint-stylistic
ESLint Stylistic is a community-maintained monorepo that provides stylistic and...
prettier/eslint-config-prettier
eslint-config-prettier is a specialized ESLint configuration that disables...
| Repository | Stars | Week Δ | Language | Score | Updated |
|---|---|---|---|---|---|
|
|
6.2k | +9 | JavaScript | 8/10 | 2w ago |
|
|
4.1k | — | TypeScript | 8/10 | 1w ago |
|
|
1.3k | — | TypeScript | 8/10 | 1d ago |
|
|
2k | — | TypeScript | 8/10 | 1w ago |
|
|
5.9k | — | JavaScript | 8/10 | 4mo ago |
|
|
3.6k | — | JavaScript | 8/10 | 1w ago |
Disables ESLint rules that conflict with Prettier rather than replacing Prettier. antfu/eslint-config explicitly targets users who want to drop Prettier entirely and use ESLint for formatting — different philosophy and user goal.
eslint-stylistic provides the formatting rules as a standalone plugin; antfu/eslint-config bundles eslint-stylistic along with many other configs into a ready-to-use preset. Complementary rather than competing — antfu's config uses eslint-stylistic internally.
A visual debugging tool for ESLint flat configs, not a config preset. Orthogonal product; the two can be used together.
Runs Prettier then ESLint --fix, chaining both tools. antfu's config takes the opposite stance: eliminate Prettier from the pipeline. Users must choose a philosophy; switching costs are real.
XO is another opinionated all-in-one ESLint wrapper targeting a similar audience. antfu's config has stronger Vue/Vite ecosystem integration and flat-config-first design; XO has longer history and different stylistic defaults.