prettier

An opinionated code formatter that enforces consistent style across every language your project speaks.

Tool
npm
v3.9.10
52,379 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
91 /100 Excellent
Development Activity 100
Maintenance 96
Community 68
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
92 /100 Excellent
Architecture 92
Code Quality 95
Innovation 90
Learning Curve 90

Prettier is an opinionated code formatter that parses your source code into an abstract syntax tree and re-prints it from scratch, applying its own consistent rules while honoring a configurable maximum line length. By removing all original styling and producing deterministic output, it ends debates over formatting entirely and lets teams focus code review on substance rather than whitespace.

With first-class support for JavaScript, TypeScript, JSX, CSS, SCSS, Less, HTML, Vue, Angular, GraphQL, Markdown, YAML, and JSON, Prettier runs from a CLI, an editor-on-save integration, a pre-commit hook, or a CI check. A programmatic API is also available for tools that need to format code on the fly.

What You Get

  • A zero-configuration CLI that formats entire projects in place with a single command
  • Built-in printers for 15+ languages including JavaScript, TypeScript, CSS, HTML, Vue, GraphQL, Markdown, and YAML
  • Editor integrations that reformat files automatically on save
  • A programmatic API (format, check, formatWithCursor, resolveConfig) for embedding formatting in your own tooling
  • A —check mode for CI that fails the build when files are not already formatted

Common Use Cases

  • Enforcing a single, non-negotiable code style across a team or monorepo
  • Reformatting files automatically on save in the editor
  • Gating pull requests in CI so unformatted code cannot be merged
  • Formatting a mixed-language codebase (JS, CSS, Markdown, YAML) with one tool

Under The Hood

Architecture

Prettier is a parse-and-reprint pipeline rather than a rule-patching linter. src/main/core.js orchestrates the flow: source text is parsed by a language-specific parser (src/main/parse.js dispatches to plugins under src/language-js, src/language-css, src/language-html, etc.), then src/main/ast-to-doc.js converts the resulting AST into an intermediate representation called a Doc using the builder combinators in src/document. A Wadler-style pretty-printer (src/document/printer.js) walks the Doc and decides where to break lines based on the configured printWidth, before the result is serialized back to a string. Comments are re-attached to the new tree via src/main/comments, and options flow through normalize-options.js and core-options.evaluate.js.

Tech Stack

Written in JavaScript (ESM, "type": "module", Node >=22) with TypeScript type definitions shipped in src/index.d.ts. It bundles a large set of best-in-class parsers as dependencies — @babel/parser, typescript, flow-parser, meriyah, oxc-parser, and hermes-parser for JS/TS; postcss (with less/scss plugins) for CSS; angular-html-parser and @glimmer/syntax for templates; unified/remark for Markdown; and yaml and graphql for their respective languages. The CLI is delegated to @prettier/cli, and the build is bundled for distribution.

Code Quality

The project is exceptionally well-tested, with over 4,300 test files under tests/ split across format, unit, integration, and dts suites, run via Jest with snapshot testing to lock formatting output. Code is organized cleanly by language into self-contained src/language-* directories, each exposing parsers and printers behind a consistent plugin interface (Parser/Printer in the type definitions). Options are centrally normalized, and the Doc IR provides a clear, well-abstracted seam between parsing and printing.

API Design The public API is small and ergonomic: format(source, options) and check(source, options) return promises, with formatWithCursor, resolveConfig, resolveConfigFile, getSupportInfo, and getFileInfo covering configuration and tooling needs. The plugin contract (Plugin, Parser, Printer) is fully typed and lets third parties add languages without touching core. Extensive official documentation, a live playground, and near-zero required configuration make it trivial to adopt.

Used by 310 apps in this directory

JavaScript
100%
Other

Automatisch

Automation · No Code Platforms

13,999

Self-hosted, no-code workflow automation that keeps your data on your own servers—a privacy-first alternative to Zapier with 90+ integrations.

View details
45
Repo Health
78
Technical
62
Dependency
Built with
JavaScript 100%
Updated 8 months ago
Python
68%
Other

Baserow

Databases · No Code Platforms

6,205

Open-source no-code platform to build databases, apps, automations, and AI agents — self-hosted or cloud, with full data ownership.

View details
89
Repo Health
84
Technical
65
Dependency
Built with
Python 68%
JavaScript 17%
Vue 10%
Updated 1 weeks ago
TypeScript
97%
AGPL 3.0

Bigcapital

Invoicing Finance

3,956

Self-hostable double-entry accounting platform with invoicing, inventory, multi-currency, and real-time financial reporting for small and medium businesses.

View details
91
Repo Health
77
Technical
61
Dependency
Built with
TypeScript 97%
Updated 1 weeks ago
Go
92%
AGPL 3.0

BillionMail

Marketing

15,947

Self-hosted email server and marketing platform that gives you unlimited sending, full deliverability control, and AI-assisted campaigns without monthly fees.

View details
52
Repo Health
74
Technical
70
Dependency
Built with
Go 92%
Updated 4 months ago
C#
84%
Other

Bitwarden Server

Password Manager · Security

20,466

Self-hosted, open-source password management backend with zero-knowledge encryption and enterprise-grade identity services

View details
93
Repo Health
82
Technical
77
Dependency
Built with
C# 84%
Updated 6 days ago
TypeScript
92%
GPL 3.0

Blinko

Knowledge Management · Note Taking

11,107

A self-hosted, AI-powered card note-taking tool that lets you capture fleeting thoughts instantly and retrieve them with natural language search.

View details
69
Repo Health
69
Technical
63
Dependency
Built with
TypeScript 92%
Updated 2 months ago
TypeScript
100%
MIT

Botpress

AI Assistants · AI Development · Customer Support

14,964

The open-source hub for building and deploying LLM-powered AI agents with TypeScript-first tooling, 40+ integrations, and a revolutionary code-execution agent framework.

View details
95
Repo Health
82
Technical
64
Dependency
Built with
TypeScript 100%
Updated 1 weeks ago
TypeScript
89%
Other

browserless

Automation · Developer Tools

13,844

Run headless Chrome, Firefox, and WebKit as a managed Docker service — drop-in Puppeteer and Playwright support with no infrastructure overhead.

View details
88
Repo Health
82
Technical
73
Dependency
Built with
TypeScript 89%
Updated 1 weeks ago
TypeScript
99%
Apache 2.0

Bubble Lab

AI Development · Automation

1,097

Open-core workflow engine for building AI-powered automations in TypeScript that run natively inside Slack — no context switching required.

View details
34
Repo Health
78
Technical
71
Dependency
Built with
TypeScript 99%
Updated 6 months 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