How I do todos
Many years ago, I kept a todo list in a single text file called todo. It was a minimal system with each todo item on single line. I kept track of items that needed attention by prefixing them with a hyphen, and completed items were prefixed with a hash. It looked like this:
- example item that needs attention
- another example item that needs attention
# completed item
- yet another item that needs attention
# another completed item
I kept the text file on a server that I could access from any machine with an SSH client. It was simple and easy to use, to a point.
Over time, the text file grew in size, making it difficult to scan visually. Managing multiple projects within a single file was also inefficient. When I started creating separate todo files for each project, everything began to fall apart. It may sound ridiculous, but the added friction of manually selecting the correct text file before working on my todos became too cumbersome for daily use. There were other shortcomings too, such as the lack of timestamps next to the todo items.
I'm not sure when I created my first dedicated todo list app, but I think it was around 2005/6. I remember there being apps/services that I could have opted to use instead of writing my own app, but it didn't feel right having my list of todos hosted on somebody else's server. Also, I was/am a web developer and so developing a quick app for myself seemed like a natural thing to do.
I've not kept count, but I've probably written and rewritten my todo app several times over the years. The current iteration is very minimalist and has been designed to somewhat mimic how I previously used a text file, only with a few added features:
- Hash tags for filtering and grouping todo items to projects
- Timestamps for when todo items are created and updated
- Pinning for keeping important todo items at the top of the list
- Automatic hyperlink detection and link creation
- A daily email digest sent automatically every morning
My current todo app works pretty well for me. It is hosted privately on my own server and I can access it via any device with an Internet connection and a browser. It's definitely a step-up from the single text file I used all those years ago.
I've built a demo of the my current app, for anyone who might be interested in this kind of thing. The only real differences between the demo app and my personal app are:
- I have stripped out any server-side calls for storing the todo items in a database. Instead, the demo app uses local storage for persistent storage of todo items.
- My personal app has paging of todo items.
Anyhow, that is how I do todos. How do you do todos?
Comments