tdy / blog / smart quotes

Smart quotes, broken builds

Updated August 2026 · 4 min read
Short answer

Word processors, chat apps and CMS editors convert your straight quotes into curly ones as you type. Parsers only accept the straight kind. A config that will not load or a command that fails for no visible reason is, a remarkable share of the time, a quotation mark wearing makeup.

what you pasted: {key: value}
what JSON requires: {"key": "value"}

Two characters pretending to be four

Your keyboard has two quote keys. Typography has at least six relatives: opening and closing double quotes, opening and closing single quotes, and a family of primes. Software converts between them automatically, a feature called smart quotes, because curly quotes look better in prose.

They do look better in prose. The problem is that parsers do not read prose.

The same conversion produces the curly apostrophe, so a contraction in pasted text is not the one your grep is looking for. Unicode goes further with lookalike apostrophes that are technically letters, such as U+02BC, which pass some validators and then break search, diffs and deduplication downstream.

Where they sneak in

You rarely type a curly quote deliberately. They arrive when text round-trips through something with smart punctuation enabled: Word, Google Docs, Pages, Slack, note apps, CMS editors, iOS keyboards. AI assistants too, whose output is curly-quoted by default because their training data was published prose. The quotes usually travel with their friends, the em dash and a real ellipsis character.

You can turn smart punctuation off app by app. macOS has a checkbox in Keyboard settings, iOS has one under Smart Punctuation. That only fixes what you type, though. It does nothing about what you copy, and copying is how the quotes actually get into your configs.

The clipboard is the checkpoint

Everything you paste passes through the clipboard, which makes it the one place a fix covers every source: the styled blog post, the Slack message, the AI answer, the internal wiki.

The nuance that matters is context. Prose should be allowed to keep its typography, and code copied from a repository should stay byte for byte what its author wrote, because a curly quote inside a string literal might be exactly what they meant. A cleaner worth using knows which one it is holding.

Text cleaning is coming next to tdy.

tdy is a Mac menu-bar app that already tidies every link you copy. Straightening smart quotes and stripping invisible characters on copy is the next upgrade. One email when it ships, nothing else.

Join the launch list

Related