top of page


David Brown

There's already thousands of to-do/productivity apps out there. And none of them work for me. They focus on "dates" and productivity and checklists. They don't actually help me organize my priorities. They don't encourage dumping ideas. So, like every other self-aggrandizing developer, I made my own.

I'm convinced the "perfect" to-do app is a pipe dream. There are many different modes of productivity that work for different people, and no one app can meet the needs of all.

However, I do think there is some clear dissonance between most modern to-do apps and the way that most of our brains work. We are not robots - brains are not intrinsically good at lists and checkboxes and linear thinking and digital representations - these are learned behaviors. Brains are dynamic and flexible and capable of constantly shifting and reprioritizing. So, I've set out to create a to-do app that captures the more human side of planning and execution. Here are some of the main design goals:

  • Goals, not tasks. You might think this is just a subtle wording difference, but it is more a principle. One problem with modern to-do apps is their focus on checkboxes and tasks means that we learn to optimize for checking the most number of boxes in a day, rather than making the most progress on our goals.

  • Dynamic kanban-style board that seemlessly mixes goals with dates and goals without dates. The columns of the kanban board are based on date ranges, and when you set a target date for a goal, it will automatically fall into the appropriate column. Don't have a specific final date in mind, but you want to work on a particular goal this week? Just put it in the "this week" column and under the hood it will get assigned a date that makes it fall into that column.

  • I don't want to be punished for missing a due date. No bold red text, no "overdue". Instead - every goal that has a target date, if you miss that target date, it just gets automatically rolled into the other goals with target dates before today.

  • Hierarchical goals - everything is for a greater purpose. I have lofty goals - things that will likely take me all of my life, or more. Most to-do apps don't encourage big picture goals, because these aren't things that have dates or fall into particular lists. I want to encourage my big visions by putting them in as top-level goals, that can then be filtered by to see how what I'm doing today moves me towards my dreams.

  • Planning vs execution mode. There are three primary ways we engage with to-do lists - 1) Planning mode - i.e. looking at our to-do list and thinking about what things we want to add and reorganize to plan our day 2) Execution mode - i.e. looking at the to-do list and deciding which thing to do, then doing it and checking it off 3) Ad hoc add mode, where we add goals as they come up. Most to-do apps don't explicitly make different views for planning and execution, meaning that "planning" often boils down to just figuring out what checkboxes to check today. Planning mode should be a distinct workflow that encourages you to think about the high-level goals in your life.

  • Recurring goals that update based on when you complete them. If I don't floss my teeth for three days in a row, and I finally floss tonight, I don't want my to-do app to tell me to go back in time and floss for the last two days. I also want my to-do app to recognize that if I said I should floss at 10pm, but in reality it happens at 2am, that maybe 2am is a better time to suggest it tomorrow.

I've made a beta version of my app (screenshots below), and so far, my workflow is wonderful. I no longer have anxiety about planning my day. I no longer stress when I fall behind a few days on all my recurring habits; dijido just picks up where I left off and I keep on going. I am constantly reminded of what my big picture goals are because every goal can be traced up the hierarchy to the real reason why I'm doing this seemingly mundane task.

If you're interested in trying it out, contact me and I can set you up with an account; caveat being it is not currently designed for use by anyone... but me :)


Full nodejs front and backend code to self-host dijido

bottom of page