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

Clojure
73%
MPL 2.0

Penpot

Design Tools

61,563

Open-source design platform with GPU-accelerated canvas, native design tokens, and MCP-powered AI workflows for teams that ship fast.

View details
91
Repo Health
83
Technical
72
Dependency
Built with
Clojure 73%
Updated 1 weeks ago
TypeScript
96%
Apache 2.0

Pezzo

AI Development · Monitoring

3,278

Open-source LLMOps platform for prompt management, AI observability, intelligent caching, and real-time cost tracking across LLM providers.

View details
59
Repo Health
75
Technical
66
Dependency
Built with
TypeScript 96%
Updated 2 months ago
TypeScript
50%
Other

Phase Console

Devops · Security

931

End-to-end encrypted secrets management for engineering teams — from local dev to Kubernetes production.

View details
85
Repo Health
73
Technical
63
Dependency
Built with
TypeScript 50%
Python 48%
Updated 1 weeks ago
TypeScript
90%
MIT

Plasmic

CMS · Design Tools · Low Code Platforms

7,125

The open-source visual builder that lets teams design React apps and websites with drag-and-drop while integrating seamlessly with your codebase.

View details
81
Repo Health
78
Technical
64
Dependency
Built with
TypeScript 90%
Updated 1 weeks ago
Elixir
80%
AGPL 3.0

Plausible Analytics

Analytics

29,631

Open-source, cookie-free web analytics that respects visitor privacy and replaces Google Analytics.

View details
88
Repo Health
84
Technical
71
Dependency
Built with
Elixir 80%
TypeScript 15%
Updated 1 weeks ago
TypeScript
51%
ZLIB

Portainer

Devops

38,707

A lightweight, open-source web UI that puts Docker, Kubernetes, and Podman management within reach of any team—no CLI expertise required.

View details
93
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 51%
Go 38%
Updated 1 weeks ago
Python
55%
Other

PostHog

Ab Testing Experimentation · Analytics · Developer Tools

40,397

The all-in-one open source product platform combining analytics, session replay, feature flags, error tracking, AI observability, and a built-in data warehouse in a single self-hostable stack.

View details
92
Repo Health
80
Technical
65
Dependency
Built with
Python 55%
TypeScript 36%
Updated 6 days ago
TypeScript
81%
AGPL 3.0

Postiz

Automation · Social Media

37,683

The agentic social media scheduler — AI-powered content creation, 33-platform posting, and team workflows, all self-hosted.

View details
92
Repo Health
70
Technical
63
Dependency
Built with
TypeScript 81%
JavaScript 11%
Updated 1 weeks ago
TypeScript
64%
AGPL 3.0

Puter

Developer Tools · File Storage

43,864

A self-hostable, web-based internet OS with desktop GUI, cloud storage, AI drivers, and a developer SDK — all running in your browser.

View details
88
Repo Health
88
Technical
67
Dependency
Built with
TypeScript 64%
JavaScript 33%
Updated 6 days 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