Prettier and Opinionated Code Formatting with James Long
Episode
50 min
Read time
2 min
Topics
Productivity, Fundraising & VC, Software Development
AI-Generated Summary
Key Takeaways
- ✓Opinionated formatting over configurable rules: ESLint's 100+ formatting rules still left room for team disagreement and couldn't handle dynamic JavaScript patterns like inline callback arguments. Prettier eliminates debate by accepting only one meaningful parameter — print width — and producing identical output regardless of how the original code was written, removing style decisions entirely from code review.
- ✓Prettier ignore as the escape valve: When teams resist adopting Prettier due to intentional formatting choices — such as aligned equals signs in enums — the practical response is to use `// prettier-ignore` comments above those specific blocks. Long estimates only 0.1% of a typical codebase genuinely warrants manual formatting exceptions, making blanket resistance to automation statistically unjustified.
- ✓Never run Prettier through ESLint: Using the ESLint-Prettier plugin routes formatting through ESLint's rule engine, which reruns fixers up to 10 times when fixes conflict, turning a sub-second formatting operation into a multi-second delay per save. Running Prettier directly as a separate process avoids this overhead entirely and keeps the two tools' responsibilities cleanly separated.
- ✓Unified AST toolchains solve the real performance problem: Tools like Biome and OXC format are faster not solely because they use Rust, but because they parse JavaScript once and pass a single AST through formatting, linting, and analysis sequentially. The traditional stack parses and regenerates code at each tool boundary, multiplying overhead — a structural inefficiency that a Rust rewrite alone would not fix.
- ✓Open source financial sustainability gap: Prettier has raised approximately $243,000 total across nine-plus years on OpenCollective, with no full-time maintainers and no backing company. Long frames this as the standard open source trajectory: initial creative energy drives adoption, but long-term maintenance requires compensation structures that donation models rarely provide at sufficient scale for tools used by millions of developers daily.
What It Covers
James Long, creator of Prettier, joins Josh Goldberg on Software Engineering Daily to discuss how the opinionated JavaScript formatter emerged from code-style debates at Mozilla, why deterministic formatting removes team friction, the technical complexity of building formatters, and the financial realities of sustaining popular open source tooling.
Key Questions Answered
- •Opinionated formatting over configurable rules: ESLint's 100+ formatting rules still left room for team disagreement and couldn't handle dynamic JavaScript patterns like inline callback arguments. Prettier eliminates debate by accepting only one meaningful parameter — print width — and producing identical output regardless of how the original code was written, removing style decisions entirely from code review.
- •Prettier ignore as the escape valve: When teams resist adopting Prettier due to intentional formatting choices — such as aligned equals signs in enums — the practical response is to use `// prettier-ignore` comments above those specific blocks. Long estimates only 0.1% of a typical codebase genuinely warrants manual formatting exceptions, making blanket resistance to automation statistically unjustified.
- •Never run Prettier through ESLint: Using the ESLint-Prettier plugin routes formatting through ESLint's rule engine, which reruns fixers up to 10 times when fixes conflict, turning a sub-second formatting operation into a multi-second delay per save. Running Prettier directly as a separate process avoids this overhead entirely and keeps the two tools' responsibilities cleanly separated.
- •Unified AST toolchains solve the real performance problem: Tools like Biome and OXC format are faster not solely because they use Rust, but because they parse JavaScript once and pass a single AST through formatting, linting, and analysis sequentially. The traditional stack parses and regenerates code at each tool boundary, multiplying overhead — a structural inefficiency that a Rust rewrite alone would not fix.
- •Open source financial sustainability gap: Prettier has raised approximately $243,000 total across nine-plus years on OpenCollective, with no full-time maintainers and no backing company. Long frames this as the standard open source trajectory: initial creative energy drives adoption, but long-term maintenance requires compensation structures that donation models rarely provide at sufficient scale for tools used by millions of developers daily.
Notable Moment
Long revealed that the productivity benefit Prettier became most known for — writing messy code and reformatting it instantly with one keystroke — was never the original design goal. He built it to eliminate PR review arguments, and the authoring speed improvement emerged as an entirely unplanned side effect after release.
You just read a 3-minute summary of a 47-minute episode.
Get Software Engineering Daily summarized like this every Monday — plus up to 2 more podcasts, free.
Pick Your Podcasts — FreeKeep Reading
More from Software Engineering Daily
Preparing for Q-Day
Jun 16 · 46 min
The Joe Rogan Experience
#2506 - Michelle Thaller
May 28
More from Software Engineering Daily
Developing Multiplayer Games in Godot
Jun 11 · 46 min
The James Altucher Show
The Science & Mechanics of Pleasure (a/k/a How to Have Great Sex) | Dr. Nicole McNichols Pt. 2
Feb 19
Books, tools, and gear mentioned in this episode
SignalCast may earn commission on purchases via these links. As an Amazon Associate, SignalCast earns from qualifying purchases.
Tools
- PrettierBy guest
“James Long, creator of Prettier, joins Josh Goldberg on Software Engineering Daily to discuss how the opinionated JavaScript formatter emerged from code-style debates at Mozilla”
“Tools like Biome and OXC format are faster not solely because they use Rust, but because they parse JavaScript once and pass a single AST through formatting, linting, and analysis sequentially.”
“Tools like Biome and OXC format are faster not solely because they use Rust, but because they parse JavaScript once and pass a single AST through formatting, linting, and analysis sequentially.”
“ESLint's 100+ formatting rules still left room for team disagreement and couldn't handle dynamic JavaScript patterns like inline callback arguments.”
More from Software Engineering Daily
We summarize every new episode. Want them in your inbox?
Preparing for Q-Day
Developing Multiplayer Games in Godot
SED News: Apple’s AI Problem, The Real Business Model of AI, and Token Cost Reckoning
Web Native Game Development
The Hardware Bottleneck AI Can’t Fix
Similar Episodes
Related episodes from other podcasts
The Joe Rogan Experience
May 28
#2506 - Michelle Thaller
The James Altucher Show
Feb 19
The Science & Mechanics of Pleasure (a/k/a How to Have Great Sex) | Dr. Nicole McNichols Pt. 2
The Vergecast
Jun 15
# The **epic** story of Markdown
The Prof G Pod
Jun 15
The Business of Media: 60 Minutes, Billionaire Owners, and the Podcast Economy — with Sara Fischer
Lenny's Podcast
Jun 7
Father of the iPod and iPhone on building taste, judgment, and creativity in the AI era | Tony Fadell
Explore Related Topics
This podcast is featured in Best Cybersecurity Podcasts (2026) — ranked and reviewed with AI summaries.
Read this week's Software Engineering Podcast Insights — cross-podcast analysis updated weekly.
You're clearly into Software Engineering Daily.
Every Monday, we deliver AI summaries of the latest episodes from Software Engineering Daily and 192+ other podcasts. Free for up to 3 shows.
Start My Monday DigestNo credit card · Unsubscribe anytime