Joe’s To Do List

I want to make a to do list app. Yes, I recognize this has been done before. Yes, I recognize that it’s been done quite well. Yes, I even recognize that even the idea of making a to do list app is cliched; the default app for learning a Javascript web framework is a todo app. But I don’t care. I’ve tried using many of them - Asana, Wunderlist, Notepad, Google calendar, little scraps of paper, writing on my hand - and none of them have stuck. Even when using a todo app I still find myself often feeling overwhelmed by day to day tasks. Something this simple shouldn’t be that complicated.

So what do I want?

As a user, I want to be able to open my phone, click on the todo app, click once, type anything, and add what I typed as a new task. The entire process should take at most ten seconds.

As a user, I want to be able to see at a glance what are the tasks that are most applicable to me right now. I also want to be able to quickly search and filter to find tasks.

As a user, I want to be able to be able to review and categorize tasks as part of a dedicated process that’s optimized for doing so. Rarely will this be at the same time as I add the task.

As a user, I want a clear and opinionated organizational scheme. This organizational scheme should include tags for categorization, a score for importance, and a date for deadline. The app should be flexible about requiring adherence to the organizational scheme in the short term, but strict about it in the long term. As such, the backlog, or subset of reviewed and un-categorized tasks, should be easily accessible, and should feel cluttered when it is cluttered.

What do I not want?

As a user, I don’t care about sharing. This todo app isn’t for an organization, it’s for an individual.


  1. Seamless offline mode. When I’m using a todo app, I don’t particularly care if the content gets synced to the cloud immediately. I want to record the thought in my head as quickly as possible so that my brain can move on to more important matters. The app can handle the details of synchronization later.
  2. Seamless integration between multiple devices, as long as it doesn’t slow me down.
  3. Recurring tasks. Checking off tasks is easy. In fact, it’s invigorating. Being able to set up recurring tasks makes adding tasks much easier, and that means more opportunities to complete tasks.
  4. Markdown.
  5. Notifications. Especially with regards to deadlines. But be smart about it. Deadlines come in different flavors (by this time, on this day, sometime this week, etc), and the notification system should reflect this.
  6. Collaboration. Kind of. I’d like other people to be able to push tasks into my backlog. I absolutely hate it when people tell me to do things. I’m usually busy, and by the time I’m not busy I’ve usually forgotten. I’d love to be able to say, “just go log it in my to do list”.


Calling my todo list a todo list is a bit of a misnomer. It’s more like my extended short term memory. The types of things I store in there aren’t necessarily (and aren’t usually) tasks. Sometimes they’re ideas, or names of people I’ve just met, or songs I overheard on the radio and want to go download. My “todo list” application should be flexible enough to accommodate all of these types of data. And I expect it to get cluttered over time. That’s ok, its purpose isn’t to provide judgement. The purpose of my todo app is simply to remove these items from my mind, so that my mind can move on to more important matters. It’s pretty simple, so it shouldn’t be that complicated.

I’m going to try coding up a prototype, so we’ll see how it goes. I might have to eat my words.


Now read this

[notes] The Lean Startup

The Lean Startup: How Today’s Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses (2011) by Eric Ries # Buy from Amazon These are my notes from reading The Lean Startup. I’ve re-arranged and summarized them... Continue →