Plain text that renders rich
Markdown is a lightweight markup language created by John Gruber in 2004. You write plain text with simple symbols; a parser turns it into rich, formatted HTML — headings, bold, links, code blocks, the works.
The current standard is CommonMark (spec 0.31.2). Before CommonMark, every parser disagreed about edge cases. CommonMark formalized the syntax so 'this Markdown' produces 'this HTML' everywhere it matters.
Where you already meet Markdown
- GitHub — README files, issues, PRs, discussions, wiki pages.
- Documentation — MkDocs, Docusaurus, VitePress, Read the Docs.
- Notes — Obsidian, Notion, Bear, Typora, Logseq.
- Static sites & blogs — Hugo, Jekyll, Astro, Next.js MDX.
- Chat — Slack, Discord, Mattermost (Markdown subsets).
- Technical writing — API docs, changelogs, RFCs, runbooks.
Why a plain-text format keeps winning
Markdown files are just text. They diff cleanly in git, they survive editor changes, and they outlive whatever shiny tool you wrote them in. Open a Markdown file from 2010 — still readable. Open a 2010 Word doc with embedded macros — good luck.
How rendering works
A Markdown processor (parser + renderer) reads your text, builds an abstract syntax tree (AST) of blocks and inlines, then walks the tree to emit HTML. Different processors share the spec but vary in extensions.