blog

The Unreasonable Effectiveness of Plain Text

I have stored things in every format: Word documents, Notion pages, Evernote notes, Roam graphs, Bear entries, proprietary database blobs. Most of them are now either inaccessible or require a specific application to open.

My plain text files from 2011 open instantly in any editor on any device.

What makes plain text special

It is universal. Every operating system, every editor, every programming language can read and write plain text. There is no import/export step, no compatibility layer, no "open with" dialog.

It composes. Plain text works with every Unix tool ever written:

# Find all notes mentioning "deadline" modified this week
find ~/notes -name "*.md" -newer ~/notes/.last-week | xargs grep -l "deadline"
 
# Count words across all my writing
find ~/writing -name "*.md" | xargs wc -w | tail -1
 
# Full-text search with context
grep -r "the important thing" ~/notes -A 2 -B 2

It is transparent. You can see exactly what is in a plain text file. There is no hidden metadata, no embedded formatting, no version history you cannot access.

It lasts. A .txt file written in 1985 is readable today. Will a Notion page written in 2024 be readable in 2040? The honest answer is: probably not in its current form.

Markdown as a standard

Markdown is the closest thing to a standard for structured plain text. It is:

  • Readable as raw text (unlike HTML or rich text)
  • Convertible to anything: HTML, PDF, EPUB, LaTeX
  • Writable in any editor without special tooling
  • Supported natively by GitHub, GitLab, most note apps

The syntax is simple enough to memorise in an afternoon:

# Heading 1
## Heading 2
 
**bold**, *italic*, `code`
 
- unordered list item
1. ordered list item
 
[link text](https://example.com)
![image alt](image.png)
 
> blockquote

That is most of what you need, most of the time.

The apps built on this principle

The tools I reach for daily are all built on plain text at the core:

ToolPlain text formatWhy it works
Obsidian.md filesLocal-first, any editor
Zed / NeovimAny textThe editor is just a view
GitDiff-able textHistory for everything
Static site generators.md contentNo database, no lock-in
dotfilesShell scriptsPortable across machines

The real cost of rich formats

When you store something in a rich format, you are making a bet that the application that wrote it will be around to read it later. That bet has often failed:

  • PageMaker files
  • QuarkXPress documents
  • Flash projects
  • Various "revolutionary" note apps, circa 2016–2019

Plain text does not require that bet. The format is the content.


This is not a manifesto against rich applications. Some things genuinely need them. But for writing, notes, and configuration — plain text is almost always the right call, and almost always the one people talk themselves out of.