A Plain-Text Todo System for the Next 10 Years
Guiding principles
- We will use UTF-8-encoded plain-text text files, with Markdown markup, as the storage medium. Text files are small, simple, and integrate well with a lot of software.
- We won't employ any software that is proprietary, not general-purpose, or that has not existed for the last 10 years. This system is expected to be used and evolve for the next 10 years, so we can't rely on businesses to last that long or on specialized software to remain popular and to be supported for that long.
Needed tools
- A plain-text editor. I will be using vim from the command line.
- A way synchronize text files across computers and the cloud. The files should be local-first, meaning each client has a full copy of the data and is able to work and make modifications even offline. I will be using a self-hosted git repository on a Linux VPS -- the same one which hosts this website.
- Some regex-based search tools. I will be using Bash and Python scripts for processing files.
The file structure
We will assume the following file and directory structure:
\INBOX.md
- A place for capturing unsorted work items and thoughts. Must be regularly reviewed and cleaned up.
\projects
- A directory to track our higher level projects and task associated. Each project is a text file, with tasks appended daily as they come up and checked of when they are completed.
\reference
- A directory to keep non-actionable information which is useful to be referenced in the long-term.
Resources
- “Getting Things Done”, book by David Allen.
- Plaintext Productivity.