eslint-config-prettier

Disables ESLint stylistic rules that conflict with Prettier, so the two tools never fight over formatting.

Tool
npm
v10.1.8
5,899 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
69 /100 Good
Development Activity 72
Maintenance 48
Community 56
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
71 /100 Good
Architecture 65
Code Quality 78
Innovation 85
Learning Curve 55

eslint-config-prettier is a shareable ESLint configuration that turns off every core and plugin rule known to conflict with, or be made redundant by, Prettier’s own formatting. It doesn’t add any style rules of its own — it only disables the ones that would otherwise fight with Prettier, so teams can keep using their favorite ESLint config for correctness and code-quality rules while letting Prettier own formatting entirely.

Beyond the rule-disabling config itself, the package ships a small CLI helper (npx eslint-config-prettier <file>) that inspects a project’s fully-resolved ESLint configuration and reports any rules that are still enabled despite conflicting with Prettier, categorizing them by severity (definite conflicts, option-dependent conflicts, rules that need manual judgment, and rules that are risky specifically with eslint-plugin-prettier’s —fix). It supports both legacy eslintrc and modern flat config via dedicated entry points.

What You Get

  • A single rules object mapping every known Prettier-conflicting rule (core ESLint plus @babel, @stylistic, @typescript-eslint, flowtype, react, standard, unicorn, and vue plugins) to “off”
  • Separate /flat and /prettier subpath exports so both eslintrc-style extends arrays and ESLint 9’s flat eslint.config.js arrays get a native, zero-boilerplate integration point
  • A bundled eslint-config-prettier CLI that resolves your project’s effective config per file and flags any rule still enabled that conflicts with Prettier, with docs links per category
  • Explicit “special rules” handling (e.g. curly, @stylistic/max-len) that are conditionally safe with Prettier, validated against their actual option values rather than being blanket-disabled
  • An ESLINT_CONFIG_PRETTIER_NO_DEPRECATED environment flag to exclude deprecated/removed ESLint rules from the disabled set for teams on newer ESLint versions

Common Use Cases

  • Appending “prettier” last in an eslintrc extends array (or importing eslint-config-prettier/flat last in a flat config array) to neutralize formatting-rule conflicts from whatever base config a project already uses
  • Running npx eslint-config-prettier index.js in CI or pre-commit to catch cases where a project’s own custom rules re-enable something Prettier will fight over
  • Migrating an eslintrc project to ESLint 9’s flat config format while keeping the same Prettier-compatibility guarantees via the /flat export
  • Auditing multi-config monorepos (overrides per file type) by passing several representative files to the CLI helper at once

Under The Hood

Architecture

The entire package is a static data table: index.js exports a single rules object mapping every known Prettier-conflicting rule name to "off" (or a sentinel 0 for a small set of “special” rules that need option-level judgment, tracked separately from the always-off set). flat.js and prettier.js are thin re-export shims that adapt the same table for ESLint 9’s flat-config consumers and for cross-checking against eslint-plugin-prettier’s own rules, respectively. The only executable logic lives in bin/cli.js, which resolves a target file’s fully-merged ESLint config (via ESLint/FlatESLint.calculateConfigForFile), diffs the enabled rules against the disabled-rules table using bin/validators.js for option-aware special-rule checks, and prints categorized conflict reports. There is no build step and almost no state — the blast radius of a change is limited to keeping the rules table and its validators in sync with upstream plugin releases.

Tech Stack

Plain CommonJS Node.js with no runtime dependencies beyond a peerDependency on eslint>=7.0.0; package.json’s exports map exposes ., ./flat, and ./prettier subpaths for the different consumption modes. Tooling is entirely dev-time: Jest for tests, ESLint/Prettier/TypeScript for dogfooding its own code style, hand-written .d.ts files for type consumers, Yarn Berry 4.x with patch-package to patch three upstream plugins (babel, flowtype, standard), Changesets for release/versioning, and GitHub Actions across five workflows (test, check, autofix, release, pkg-pr-new) for CI.

Code Quality

test/rules.test.js dynamically generates a throwaway test-config/ directory that flips every disabled rule to "warn", then lints a large fixture tree (test-lint/) covering every supported plugin’s rule surface to confirm ESLint never errors on an unknown or removed rule. Separate suites (cli.test.js, validators.test.js) cover the CLI’s diagnostic output and the special-rule option validators individually. CI runs Prettier’s own check, ESLint, and the Jest suite on every push. The package itself is untyped JavaScript with hand-authored .d.ts declarations rather than being written in TypeScript, but test coverage for a rules-only config package is unusually thorough.

API Design Integration is a single line — "prettier" in an eslintrc extends array, or an eslintConfigPrettier import placed last in a flat-config array — with no options to configure and dedicated subpath exports so eslintrc and flat-config users each get a natural entry point. The bundled npx eslint-config-prettier <file> CLI turns “did I misconfigure this” from a silent unknown into categorized, actionable output with docs links per category, which is a notably strong developer-experience addition for a package that is otherwise just a static rules table.

Used by 169 apps in this directory

TypeScript
99%
Other

Teable

Databases · No Code Platforms

21,920

A no-code PostgreSQL database with spreadsheet UX, real-time collaboration, and native AI agents — built for teams that outgrow Airtable.

View details
78
Repo Health
76
Technical
62
Dependency
Built with
TypeScript 99%
Updated 1 weeks ago
Rust
66%
Apache 2.0

Temps

Analytics · Devops · Monitoring

865

A self-hosted Rust PaaS that replaces Vercel, Sentry, PostHog, Pingdom, Resend, and E2B with one binary — plus 440+ CLI operations agents like Claude Code can drive directly.

View details
81
Repo Health
86
Technical
66
Dependency
Built with
Rust 66%
TypeScript 33%
Updated 1 weeks ago
TypeScript
55%
Other

Tolgee

Developer Tools

4,139

In-context localization platform that lets developers and translators edit app strings directly in the running application, with AI-powered machine translation and framework SDKs for React, Angular, Vue, and Svelte.

View details
91
Repo Health
84
Technical
66
Dependency
Built with
TypeScript 55%
Kotlin 44%
Updated 1 weeks ago
HTML
68%
AGPL 3.0

ToolJet

AI Agents · Low Code Platforms · No Code Platforms

41,123

Open-source AI-native platform to build and deploy internal tools, workflows, and AI agents with a visual drag-and-drop builder and 80+ data source integrations.

View details
94
Repo Health
81
Technical
63
Dependency
Built with
HTML 68%
JavaScript 20%
Updated 6 days ago
Go
94%
MIT

Traefik

Automation · Devops · Security

65,344

A cloud-native reverse proxy and load balancer that auto-configures itself from Docker, Kubernetes, and other orchestrators — zero manual routing required.

View details
93
Repo Health
85
Technical
64
Dependency
Built with
Go 94%
Updated 1 weeks ago
TypeScript
79%
MIT

Trench

Analytics · Data Engineering · Monitoring

1,665

Open-source event tracking infrastructure built on Kafka and ClickHouse that handles thousands of events per second on a single node, with full Segment API compatibility and no cookies.

View details
44
Repo Health
81
Technical
73
Dependency
Built with
TypeScript 79%
MDX 15%
Updated 6 months ago
Rust
71%
MIT

Trieve

AI Development · Developer Tools · Search

2,721

All-in-one self-hostable platform for hybrid search, RAG, recommendations, and analytics built on Rust and Qdrant.

View details
42
Repo Health
74
Technical
65
Dependency
Built with
Rust 71%
Updated 9 months ago
C#
62%
MIT

Umbraco CMS

CMS

5,274

The friendly open-source .NET CMS that gives developers full control over content, structure, and delivery without lock-in.

View details
97
Repo Health
78
Technical
83
Dependency
Built with
C# 62%
TypeScript 38%
Updated 1 weeks ago
TypeScript
90%
AGPL 3.0

useSend

Developer Tools · Marketing

4,753

Self-hostable open source email platform built on Amazon SES with a full dashboard, SMTP relay, REST API, and multi-language SDKs.

View details
76
Repo Health
72
Technical
68
Dependency
Built with
TypeScript 90%
Updated 1 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers