You don’t need a TODO app

A relevant ad will be displayed here soon. These ads help pay for my hosting.
Please consider disabling your ad blocker on Pony Foo. These ads help pay for my hosting.
You can support Pony Foo directly through Patreon or via PayPal.

Recently, a tip on Coderwall, about how to organize your TODO list, brought about a discussion on Hacker News. In this brief post, I’d like to provide my take on the subject.


I’ve never been much of a fan of TODO lists, definitely never used a TODO application, and I’m one of those people who have no idea why they even exist, in the first place. Regardless, I’ve always kept these kinds of lists laying around in a variety of places, some more effective than others.

For instance, I’ve tried using Sticky Notes in Windows, and Ubuntu, but these never stick with me (bad pun intended). I usually don’t even look at them, or I close them, or hide them, it just doesn’t do it for me. They’re pretty, but they don’t get the job done. I end up ditching them every time. You have to find what works well for you. What kind of task-tracking is making you actually execute on those tasks?

Sending mails to myself, and keeping them in my Gmail inbox, is something I’ve done often to remind myself of things I ought to do. I’ve always proudly kept my inbox below ~5 items, and if you can’t do that (because apparently it’s really hard for people to use filters in Gmail, or something), then sending mails to yourself might not be a very good idea. If you are one of the illuminated ones who can keep his inbox clean of spam, then you might want to try it. I also make it a point to create lots of labels and choosing the “Show if unread” option. The single most important of the labels I use, is Notes. I use a filter which tags all my mails to self with that label.

I often use TODO.md files inside a project root, which usually contain a brief mention of where I left at the previous day, and what steps I was going to do next. Kind of a quick reminder of where I left off so I can quickly pick up the tab the next day. This is a particularly useful thing to do on fridays before leaving for home, and also mid-week, when you end the day in the middle the zone, with a bunch of things in your head, which you just know you’re going to have completely forgotten by the next morning.

A todo bash function

I’ve always liked keeping a clean desktop, with absolutely no icons whatsoever. As such, I feel that the best way to keep a TODO list I will actually act upon, is to have each item be a file in my desktop. That way, I’d always feel the urge to delete the items as soon as possible. Somehow, deep down, I feel this makes me finish my tasks sooner, rather than later. I guess there’s something psychology can explain about that. At the very least, it makes me add relevant TODO items, as I don’t want junk laying around in my precious desktop real estate.

Without further ado, behold my todo bash function.

todo () {
  touch $(echo ~/Desktop/$@)

IFS changes the internal field separator of the shell, and that trick allows my function to touch files with spaces on them.

Below is a list of usage examples, which will create empty files in my desktop named as the TODO items. Each of these will create a single file.

todo bugfix
todo feed the cat
todo "review pull requests"

Gmail, ~/Desktop and More

Combining all three of these, you get a pretty organized way of going through your day without spending time struggling with TODO apps getting in your way.

I use Gmail items to remind myself of tasks I don’t have to get to immediately, but maybe at some point in the next month or two. Project level items, which lie in the project directory, change pretty much on a workday-to-workday basis, and contain exactly what I was working on and what’s coming up. This is not to be confused with actual planning, which is done in a project management board of some sort: Jira, Pivotal, etc. Lastly, the todo bash function allows me to add a TODO item on my desktop from my command line, while sitting on any directory, to my desktop.

Below is a summary of the tasks I have laying around at the moment.

Gmail Inbox + Notes label

  • a gh notification of an issue I have to resolve at some point
  • an unresolved email about reviewing chapter 2 of my book
  • a link to a camera I want to buy as a present
  • some unread e-books


  • fix issues by reviewers and susan (book)
  • update figures (book)


Clean at the moment, I don’t have any unfinished tasks, or knowledge which I can’t just pick up from the Trello board.

You can find this bash function, and related shell things, in my dotfiles.

Liked the article? Subscribe below to get an email when new articles come out! Also, follow @ponyfoo on Twitter and @ponyfoo on Facebook.
One-click unsubscribe, anytime. Learn more.