Markdown Is a Better CMS Than Your CMS
1 min read
contentmarkdowntooling
A WYSIWYG editor stores whatever the browser's contenteditable produced that day — nested spans, stray <div>s, inline styles from a paste. Migrating it later means writing an HTML parser.
What plain text gives you
- Diffable. A prose change shows as a prose change, not a wall of markup.
- Portable. Every static site generator on earth reads it.
- Greppable. Finding every post mentioning a deprecated API is one command.
- Stable. The spec has not meaningfully broken in fifteen years.
Where it genuinely falls short
Markdown has no answer for callouts, image galleries, or embeds. The usual fix is HTML inline, which reintroduces the problem you were avoiding.
A better fix is a small set of custom components rendered from fenced blocks. You keep the plain-text file; the renderer decides what a ::: note becomes. The content stays portable because the fallback — showing it as a blockquote — is still readable.
Sanitize anyway
Markdown permits raw HTML by default. If anyone but you can publish, strip it. rehype-sanitize is one line and closes an XSS hole that is otherwise wide open.