Just Fucking Use Plaintext.
If your data needs a proprietary UI, a license server, and a prayer to open, it’s not “organized.” It’s hostage.
If a text editor can’t open it, you don’t own it.
What plaintext buys you
- Longevity: your files will still open in 30 years.
- Interoperability: every tool speaks text. Even bad ones.
- Transparency: you can see what changed without a decoder ring.
- Control: no vendor, no format lock-in, no ransom note.
What you’re probably using instead
It stores invisible state, breaks on export, and needs its own app. The opposite of durable.
Free until it isn’t. Search works until it doesn’t. Export exists as a concept.
You can’t diff them. You can’t merge them. You can only fear them.
They look nice in demos and collapse under version control.
Plaintext is not primitive
Plaintext does not mean “unsophisticated.” It means the sophistication is visible.
- Markdown beats rich text.
- CSV beats mystery spreadsheets.
- YAML/TOML beats binary configs.
- Logs you can read beat dashboards you can’t.
Examples (notice how boring this is)
Notes
# meeting-notes.md
- Decision: ship Friday
- Risk: database migration
- Owner: Alex
Follow-up next week.
Config
# app.toml
port = 8080
log_level = "info"
max_connections = 100
Data
user_id,email,created_at
42,[email protected],2025-01-01
43,[email protected],2025-01-02
Choose your excuse
“But it’s not user-friendly.”
Skill issue. Editors exist. GUIs can be built on top of text. You cannot build durability on top of proprietary blobs.
“But we need rich formatting.”
You need headings, lists, links, and emphasis. Markdown solved this before your app existed.
“But we’ll migrate later.”
No you won’t. You’ll discover the export is lossy and call it “technical debt.”
“But this tool is more powerful.”
If the power disappears when the app does, it was never power.
Just fucking use plaintext.