Plain applications

Store data in flat text files

The UNIX Philosophy, Mike Gancarz

We extend this idea by introducing the concept of plain applications, presenting their advantages and illustrating it with examples.


A plain file shall be any UTF-8 encoded file that is directly readable and writable (with a common text editor) by humans. Plain files include simple text files, markdown, YAML and TOML, and, arguably (it's a subjective measure, not an absolute quality), XML and JSON.

A plain application shall be any piece of software that uses plain files as its main interface to the user.



The user does not depend on the application to create, edit, delete or query data.


The application doesn't need to implement tools to manage the data (see also: ephemeralization). Instead, it can do one thing and do it well.


The user can edit the data in his preferred editor. The data can be modified or used with other tools, for example version control systems or core utilities. It can also easily be synced amongst other files or sent by email.


purposeplain application
content managementstatic site generators like zola
officethe LaTeX document preparation system
to-do and notesmarkdown, todo-md
music notationlilypond
accountingsee plain text accounting