Thirty-five thousand passing tests make Prettier the safe default
Prettier takes source text, parses it, and prints a normalized representation. That removes most hand-formatting choices while preserving the program represented by the syntax tree. Core support spans JavaScript, TypeScript, Flow, JSX, JSON, CSS, SCSS, Less, HTML, Vue, Angular, GraphQL, Markdown, and YAML.
The source behind that command is substantial. Our checkout at commit 5fd5b69 contained 9,426 files and about 172,632 lines of source in 24.8 MB. It includes parsers, printers, plugins, CLI and browser builds, documentation, fixtures, snapshots, and release tooling.
The frozen option set is the product decision
Prettier works best when a team wants formatting arguments to end. Its option philosophy says formatting-related options are frozen, and requests to preserve input layout such as line breaks will be closed. Existing switches cover compatibility and a small set of historical choices. Teams seeking exact control over wrapping or alignment will fight the tool.
Our run gives confidence in the behavior at this commit: 35,265 tests passed, 0 failed, and 5 were skipped out of 35,270. That does not mean every reader will like the output. It means a large set of parser and printer expectations stayed consistent in the project suite.
What happened when we ran it
Our sandbox installed 885 Yarn packages in 38 seconds and used 401 MB on disk. The build succeeded in 23 seconds. Those numbers describe the contributor workspace, which builds parsers, packages, the standalone bundle, and supporting material. We did not measure a separate consumer installation of the published prettier package.
The Jest run completed in 189 seconds with 35,265 passed, 0 failed, and 5 skipped. The repository had a tests directory and 16 CI workflow files, while no Dockerfile was present. Install, build, and the full available test command all succeeded in the same unprivileged 3-CPU, 8 GB container.
Pin version 3.9.6 before enabling save hooks
Prettier's install guide recommends a local, exact dependency and currently shows version 3.9.6. An unpinned npx or bunx invocation may download a newer release whose output differs. Add a config file, define .prettierignore, and make editor extensions use the project's local copy.
Format the codebase once in a dedicated change, then add prettier . --check to CI and optional write hooks for staged files. Our source build and test took 212 seconds after the 38-second install. Consumer repositories check their own files, a different workload that needs its own timing.
Programmatic users must accept asynchronous APIs and plugins
All public JavaScript APIs are asynchronous. format, check, configuration resolution, file inspection, and support discovery return promises. Callers can provide a parser or pass a filepath for inference. A separate @prettier/sync package exists for callers that cannot become asynchronous.
At commit 5fd5b69, source contributors needed Node 22 or newer and Yarn 4.18.0. Languages outside core support arrive through plugins. API users may have to pass plugin objects or paths when file inference cannot identify a parser, moving compatibility partly to another maintainer.
An open 3.9.6 issue shows why idempotency fixtures matter
Formatter output should settle after one pass. Open issue 19955 demonstrates a Prettier 3.9.6 arrow-function example with comments whose second output differs from the first. The case is unusual and has active discussion. Code generators and comment-heavy codebases should run representative fixtures twice when upgrading.
GitHub recorded the last push on August 30, 2026, and release 3.9.6 was published on July 21. The repository had 52,229 stars, 1,155 open issues, and 260 open pull requests. Those queues include old requests, language edge cases, dependency tracking, and patches. Recent activity, 16 workflows, and the passing suite show current maintenance.
Prettier formats code; it does not replace linting or codemods
Prettier settles layout. It does not find unused variables, enforce application rules, repair types, or prove that code is secure. The docs recommend disabling lint rules that conflict with formatting. For source transformations, the API guide warns that modified AST nodes can have stale location data and points authors toward jscodeshift.
Our 35,265 passing tests support confidence in parsing and printing across the documented formats. ESLint or another analyzer can own semantics while Prettier owns layout. Biome is attractive when combining those jobs reduces tool overhead. dprint is the better comparison when the requirement is control over formatter behavior.
Adopt Prettier when consistency matters more than personal style
For most JavaScript or TypeScript teams, the answer is yes. Install an exact local version, format one deliberate migration, connect the editor to that copy, and make CI check the result. Test generated code and parser-edge syntax during upgrades. The 38-second source install and zero-failure suite also make contributor setup credible.
Walk away when the team intends to preserve hand-shaped line breaks or demands new style switches. Also reconsider it when synchronous embedding is mandatory or the main language depends on a poorly maintained plugin. Prettier is mature precisely because it limits what formatting choices remain open.
