Block-based content models: why every modern CMS converges
Notion, Linear, Sanity, Substack, Ghost — different stacks, same content model. Here is why.
There is a quiet convergence happening in publishing tools. Open Notion, Linear, Sanity Studio, Ghost 5, Substack — they look different, but underneath they all model content as a typed array of blocks. Markdown is becoming a transport format, not the storage format.
What blocks unlock
- Static analysis: a callout has a tone; a code block has a language. The renderer can reason about that.
- Multi-target rendering: web, RSS, email, mobile app — all from the same payload.
- AI-friendly: LLMs emit structured JSON cleanly. Markdown rounds-trips badly through them.
- Migrations: add a new block type without rewriting the parser.
{ "version": 1, "blocks": [ { "type": "heading", "level": 2, "text": "Hello" }, { "type": "paragraph", "content": [ { "type": "text", "text": "This is a typed block." } ] } ]}You can still author in markdown if you want — just compile it to blocks at write time. The storage format wins by being typed, queryable, and renderer-agnostic.
Read next
Tangents that earned their keep
May 8, 2026 · 2 min
Building YasirOS — a personal operating system in the browser
Most portfolios are documents. YasirOS is a system. Here is the design philosophy, the six laws, and the trade-offs that make it work.
Apr 24, 2026 · 1 min
Five engineering opinions I changed my mind about this year
A list of takes I would have defended at length last year, that I now think are wrong or incomplete.
Discussion
Be the first to reply
Sign in to reply, react, and follow the thread.
Sign inThe thread is empty — for now. Reasonable take? Pushback? Drop it here.