Tom MacWright

Tom MacWright

I have used all the todo lists

Todo lists are boring. I have used all of them: here is what I have learned.



Things is one of those pieces of software that has been painstakingly improved over years and years of hard work by brilliant people. It’s a relic of the age of Panic and OmniGroup: companies that would build beautiful user interfaces for Mac users who would gladly pay significantly more than 99 cents for their perpetual licenses. This was before flat design homogenized interfaces, before the Mac App Store gaslighted downloadable software.

Things is a good piece of software that got lost on the eternal quest to sync: they started on a sync solution over 6 years ago and are still working on a solution. Their early implementations were what drove me away - sometimes todo list items would disappear, or on sync turn up empty.

I don’t use Things now because there’s no web client. Not that I love web clients for interfaces, but seeing my todos in a web interface is a solid guarantee that those are synced and real, whereas hoping my MacBook and iPhone find each other on an unreliable home wifi network makes me worry something will be lost in the void.

Viscerally, I didn’t like completing tasks in Things that much: the task became grey, and to get rid of it you actually need to click a button. The satisfaction of getting something out of the way was tempered by this UI. While Things supports a Dock badge representing a number of tasks to complete, the number within the UI is pretty de-emphasized.


2Do is the spiritual successor to Things, in my book. While Things circles around the target of sync, 2Do has grown features in every other direction: scheduling, search, spatial, an Android client in addition to iOS. Its search interface rivals that of an SQL client. It has everything you need for the patented-and-proven GTD method.

Before the flat redesign, 2Do was much less attractive than Things. After it, the interface is perfectly fine, but still lacks the hours of pixel-perfecting that Cultured Code has clearly thrown into Things.

I don’t use 2Do because it’s too complicated and pushes me too hard into the GTD direction. The vast majority of my tasks don’t need a specific category, or spatial triggers, or anything: they just need to be in a list. It’s a tough balance for a UI to be able to handle that complexity when needed but downplay it when not.


Clear is the archetype of gesture-oriented minimal todo lists. In its first implementation, tasks were only text: you could put them into sub-lists, but there was ability to schedule, prioritize, or tag tasks. Eventually Clear acquired the ability to schedule tasks, and got a companion app on OSX that would sync with the mobile app via iCloud.

Completing tasks in Clear is really satisfying: the animation of the task sliding away, an X appearing, and the list sliding up is really good.


My OmniFocus phase didn’t last long: I used a trial version of the software since it’s rather expensive - $40 each for the OSX & iPhone apps. It felt like a superset of all software I had used before, and tried to introduce habits, like “reviewing” that I don’t have much need for. At the time, its sync and backup processes were clunky and loud, with dialog boxes asking me to schedule backups. I’ve heard this has improved since.


Somewhere after using Clear, I used TaskWarrior, and even built an OSX app to provide a taskbar count of my tasks.

It’s different from every other todo list I’ve used in that it’s open source, which is awesome. And along with that comes some cool points of simplicity: it stores tasks in a readable data file, it’s fairly customizable and controllable using shell scripting.

That said, the command line sucks for todo lists. Adding todos was simple and fun, but completing todos meant running task list, reading the list, figuring out which number the completed thing was, and then writing something like task done 10. This wasn’t fun.

What TaskWarrior lacked in terms of completing tasks it somewhat made up for with statistics: it had a few commands that would give monthly, daily, weekly charts of tasks completed. That was cool. But the annoying process of completing tasks killed the vibe.


Todoist is the todo list I use on a daily basis. Unlike the others, it has its roots in the web - the first and main version of the interface is a website.

Todoist does the most ‘gamification’ of any of these interfaces: it grades you with a ‘Karma’ score, provides lots of graphs and statistics, and has a prominent count of tasks in the UI. In my blurry memory of the past, the effect of an overdue task was more dramatic - instead of the task count turning a light red, it would acquire a bright red background. That probably distracted people and is thus lost in the sands of UX time.

Todoist also has a very satisfying effect when you complete tasks: clicking the checkbox immediately nixes the task on OSX, and in the iPhone app there’s a Clear-like swipe gesture.

Price (OSX + iOS)$50+$10? + $15Free / $30/yr$40+$40$10+$5Free & Open Source
ClientsOSX, iOSOSX, iOS, AndroidOSX, iOS, Android, WebOSX, iOSOSX, iOSCLI
SyncThings CloudWebDAV, Dropbox, iCloudWebOmni Sync ServeriCloudTaskserver

Originally I wrote that TaskWarrior doesn’t support sync. It does - it can sync with Taskserver-compatible services like Inthe.AM and FreeCinc

Due to marketing shenanigans, 2Do’s website doesn’t list the price for the Mac version, so it’s ?

Also Ran

In-between all of these I’ve used Gmail’s task list, Apple’s Reminders app, TaskPaper, and tried to use GitHub issues for all of my tasks.

I use GitHub issues more than any other website, but it’s not designed to be a task list: I feel like it’s designed around the queue never becoming complete, and it heavily de-emphasizes scheduling. And the only satisfying way to complete a GitHub issue is by closing it from a commit.


To-do lists do not make you productive.

September 10, 2015  @tmcw