Markdown Won. Here's Why - and How to Speak It

Markdown is what you type into a chat and what the model types back. It’s what every README, every agent-instruction file, every note you’ll actually find again in two years is written in. That isn’t a fluke of fashion. Markdown won the way the cockroach won: not by being the most advanced thing in the room, but by being impossible to kill.

A vintage woodcut engraving: a single plain sheet of paper wearing a small crown, enthroned on an ornate pedestal, while a fallen clock tower and a graveyard of toppled, tangled clockwork machines lie in ruin around its base.

It’s worth sitting with how little Markdown does. There’s no Markdown app you have to buy. No premium tier, no version that goes obsolete and strands your files on a dead hard drive. A heading is a #. Bold is two asterisks. That’s not a missing feature set, that’s the entire point. While word processors spent thirty years growing ribbons, side panes, and a haunted basement of XML you can’t open without exactly the right software, Markdown sat in the corner being plain text. Then the machines showed up, and it turned out the corner was the throne.

There’s a de-evolution joke in here somewhere. The notion that going backward, getting simpler, refusing the upgrade, is sometimes the smarter adaptation. Markdown is a de-evolved word processor. It gave up on being impressive and accidentally became the one format everything speaks.

Why it won

That last one is why this matters now, and not just to tidy people. The lingua franca between you and an AI turned out to be the format that barely qualifies as one. Of course it did. The path of least friction usually wins, and there is nothing with less friction than text that already looks fine before anything renders it.

The basics you actually need

You can learn the entire working vocabulary in about the time it takes to read this list.

That’s the language. The rest is flavor.

See it work

Talk is cheap. Here is a scrap of raw Markdown source:

**Markdown** reads two ways. As a list:

- raw, like this
- or rendered, like below

> A blockquote is just a line that starts with a greater-than sign.

And here is that exact scrap, handed to the same site you’re reading right now:

Markdown reads two ways. As a list:

A blockquote is just a line that starts with a greater-than sign.

Same characters, two faces. You could have read the source and known precisely what you were getting. Try that with a .docx.

There’s one place Markdown stops dressing things up entirely: the fenced code block. Triple backticks tell the renderer to keep its hands off and show every glyph exactly as typed, whitespace and all. It’s how code stays code. It’s also the only reason ASCII art survives contact with a formatter, which is the only reason I can show you a glitch-koan from LOUUY (a 7-billion-parameter model I fine-tuned into a character and keep on my laptop) without it getting “helpfully” reflowed into mush:

L O U U Y
L O U U Y
L O U I . Y
L O . . Y
 .   .   .
they don't hallucinate. they crash.
show me the file.

Outside those backticks, Markdown would flatten that spacing on sight. Inside them, the glitch is preserved exactly, because the format finally agreed to stop helping.

A soft Kodachrome-style photograph: a plain paper crown on a velvet cushion inside a glass museum case, shelves of ornate jeweled crowns blurred behind it.
Still the working crown. The jeweled ones are exhibits now.

Footnotes, the one bit of syntax worth the extra keystrokes

Everything above is the working vocabulary. Footnotes are the one thing past it I use constantly, because they solve a problem prose has always had: you want to say a second thing, but not here, and not loudly.1

There are two ways to name one, and they behave identically.

Numbered. A caret and a number in the text, and a matching definition anywhere in the file:

Markdown won on stubbornness.[^1]

[^1]: Also on timing, but stubbornness makes the better sentence.

Named. Same shape, but the label is a word instead of a digit:

Markdown won on stubbornness.[^cockroach]

[^cockroach]: Which is a polite word for what the cockroach has.

The label is bookkeeping, not display. Nobody reading the rendered page ever sees the word cockroach, and nobody sees your 1 either. The renderer strips both, numbers every footnote in the order it appears in the text, and links each one to its entry at the bottom. Which means you can number them [^1], [^1], and [^7], in that order, and still get 1, 2, 3 on the page.

That is the actual argument for named footnotes. Numbered ones look tidy until you insert a paragraph in the middle and every reference after it now says something different from what it means. [^cockroach] never goes stale, never has to be renumbered, and tells you what it is when you find it six months later in a diff. Numbers are fine for two. Past that, use words.

A few things that surprised me:

Where to go from here

Markdown didn’t win because it’s powerful. It won because it’s humble, legible, and refuses to die, and then the most powerful machines we’ve ever built turned out to prefer it too. De-evolution, one # at a time.


  1. Hello from the basement. You came a long way for this. Whatever you were reading is still up there, several screens north, and the arrow at the end of this line puts you back in it without you having to hunt for your place. ↩︎

  2. And notice the numbering. I labeled these live and order, in that order, and the renderer assigned 1 and 2 without being asked. It also put a small return arrow at the end of each one to send you back to where you were reading. ↩︎