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.
purpose | plain application |
---|---|
content management | static site generators like zola |
office | the LaTeX document preparation system |
passwords | pass |
to-do and notes | markdown, todo-md |
music notation | lilypond |
accounting | see plain text accounting |
IRC | ii |