Last week I joked that I made a new app, but it turned out just to be an open source version of the template project I start most of my Mac apps from.
This week I'm not joking.
And it all stems from a tweet I posted earlier this year:
One day I will get around to either releasing or open sourcing the dozen or so bespoke, one-off Mac apps I've built just for myself.
Today is not that day.
The app I'm announcing today is in the same vein: a one-trick pony that serves a very specific purpose - it fills a need I personally have. So I built it, have been using it, and I'm now putting it out there.
It's called Three Things Today.
That's it's full name. Mostly, I just refer to it as Three Things. It's a blend of an extraordinarily simple task manager plus calendar that follows my main rule for staying productive, which Daniel summarized recently:
Never underestimate the healing power of taking even one small step when you're under that terrible weight of "too many tasks to handle."
Let me be clear: this does not replace my beloved OmniFocus or Fantastical. That’s not its purpose. Three Things supplements those other apps. It's what I use to plan my days and weeks at a level above the nitty gritty details that OmniFocus handles, but not quite as high up as what you might call your "life goals".
Feel free to skip ahead to the details about the app below, but it'll probably make more sense if you stick with me just a bit longer so I can explain how I personally get things done and how Three Things helps.
Every day, amidst the usual responsibilities of two young kids, chores at home, finding five minutes to actually talk to my wife, bug reports and dev work from my day job, etc., my goal is to accomplish three things. Sometimes even just two. Maybe.
They don't have to be anything seriously big, time consuming, or significant. Just three things that move forward whatever current projects or goals I'm focusing on. Often times they'll be related to my software business or other freelance work. Other times it might be an errand that I've been putting off or some skunkworks development I want to do for my day job.
But if I can go to bed at night knowing that along with the chaos of a career, family, and every day life, I did something else, I'll feel good.
So, I plan out my days - usually seven to ten days in advance - each with the two or three tasks I hope to accomplish. Basically, this splits each day into thirds. I try to do one thing in the morning, another around lunch, and one more after work. Often times, though, I'll get busy and wind up taking care of stuff after everyone else has gone to bed.
The point of this system isn't to be rigid. It's not a todo list with hard deadlines. More than anything else it’s flexible and forgiving. It lets me look ahead into the near future and see what's on the horizon, and, more importantly, know if I'm over committed. Knowing that I can do at most three things each day - usually just two - and having everything stacked up in front of me day-by-day is illuminating.
David Sparks has written extensively about his move to block (née, hyper) scheduling. This is a similar system - my own take on it that just happens to use a bespoke Mac (and iOS?) app molded around my workflow. Oh, and to steal a quote from David just so we’re all on the same page about this type of system:
I’ve received lots of affirmation from readers that have been doing this in some form or another for years and ask me, in one way or another, “What took you so long?” Some folks call it block scheduling, others call it fancier things like value-based time management. I'm certainly not the first guy to this party, and I find that comforting.
So what is Three Things? Well, it’s a calendar that lets you schedule tasks on each day. It’s meant to be excruciatingly pragmatic and realistic about how life works. (At least my life.) It literally will not allow you to schedule more than three tasks per day.
And that’s very important and also the point of this system. I already have over a decade’s worth of habits, workflows, and actions in OmniFocus using various combinations of defer and due dates to keep me on track. Three Thigns lets me plan and schedule my near-term road ahead and enforces restrictions that make sure I don’t overbook myself. And that’s why it’s pragmatic. I built it knowing that even on my best of days, I’m at most going to have the time and energy to do three things on top of the rest of life’s commitments.
I also intentionally described the app as realistic. That’s the other key feature of the app. I know (and Three Things knows) that life happens. That shit happens. Some tasks will take longer than I expect. And some days a fire will break out at work and I’ll have time for nothing else. And yet other days I just won’t be feeling it and would rather take a mental vacation. So, I do.
On those days, Three Things has your back because of two magical menu items:
If a task just didn’t get done or you skipped it - hit ⌘D and Three Things will automatically move it to your next available slot in the future.
Every task management app has a feature that will let you postpone, delay, or snooze a task. You can tell them to push a todo item out by a day or a week, etc. But I like to think Three Things is smarter than that. Because the app knows that you can only do two or three things a day - and because it enforces that rule - the app knows when you do and do not have time available. So when you defer a task, it won’t accidentally reschedule it for a day that’s already overflowing with commitments. Instead, it smartly places it on a day that’s free.
But what about that “Defer All Tasks” menu item? Glad you asked.
Assuming you’ve scheduled your tasks in a mostly chronological order in which they need to be accomplished, then simply postponing one of them can delay others. I don’t want to get too far into the weeds of making one task depend strictly on another, but as an example: I often schedule out large app features I’m working on in bite sized pieces across a number of days. If you know how software development works, then you’ll know that you can’t normally just rearrange the order of those tasks.
So, with Three Things, when you defer all your tasks, the app will take all incomplete items scheduled today and in the future, and push them all ahead by one day.
Some tasks really are due on a specific day. Again, I’m not trying to make this app a full-blow task management solution. I already have OmniFocus for that. But, each task can optionally be marked as deferrable or not.
If a task can’t be deferred, i.e., if it truly is due on a specific date, then when you defer everything else, all of you other items will flow around your scheduled tasks as appropriate. Your fixed-date commitments will stay put and the app will assume everything else is flexible and rescheduled them appropriately.
The way it works for me is before I shut down for the day (or sometimes before I get started the next morning), if there’s anything that didn’t get taken care of, I can defer all and Three Things fixes my schedule for me.
I know what you’re about to ask: Why not just use a calendar you weirdo?
Because that’s for things that have a scheduled time or hard due date. Because calendars are sacred ground that shan’t be fucked with or else they become meaningless. I’ve attempted to put my higher-level tasks onto a separate calendar alongside my real appointments, but it’s always too fiddly. Calendar apps are great at being calendars. But they’re almost universally lousy when it comes to todo lists. And in my case it’s even worse because the things I’m throwing at them don’t really belong on a specific date and don’t fall into the Reminders.app bucket either.
And dedicated task management apps are built for the individual items and low-level details of what needs to be done and in what order, etc.
Three Things isn’t either of those. It’s also not a project management app or a bug tracker. It’s not a Kanban board or a backlog.
By and large, everything I put into it is flexible and malleable. Its contents can mostly be shifted around, delayed, and rescheduled without consequence. I primarily use it to see how booked I am and to break down larger chunks of work into manageable pieces that could still themselves contain smaller actions.
Basically, it fits my brain. Maybe it’ll fit yours, too.
Current status of Three Things
I’m making Three Things available today for anyone to download and use. For now, the app is completely free. And that’s because while the app works, it still lacks polish, may or may not contain horrible-awful bugs, and is still missing a few small features I want to add before calling it one-point-oh.
Specifically, the app is missing the ability to:
- Reorder tasks within a day. The plumbing and UI work is done - as you’ll see when you drag tasks from one day to another - but when you drop a task onto another day, it just positions it after any existing items on that day.
- Assigning colors to tasks. Currently, all tasks are the same shade of blue.
- An iOS version. I 100% plan on making an iOS companion app - especially because I want that for myself. No ETA on that yet.
- Other random UI niceties and polish.
- Data export. I have no intention of locking away your data in a proprietary format. The app will absolutely support importing/exporting everything as JSON and/or possibly a standard calendar feed.
Things that do work:
- Mostly everything involving the day to day use of the app. You should be able to schedule new tasks, drag them to other days, mark them complete, and defer them. If any of that feels broken or I missed an edge case, I’d love to know.
- iCloud sync! Yep, everything will stay in sync across all of your Macs.
Also, assuming at least one other person besides myself expresses interest in this app, I do plan on charging for it eventually. I’m not yet sure if it will be paid up-front with a free trial or some type of basic version with an in-app purchase to unlock extra features. I’d appreciate feedback on this.
Have at it. I’d absolutely love to hear any and all feedback you have. Bugs. Feature requests. Even if you just want to tell me this is the dumbest app idea ever. Please, feel free to reach out here or @tylerhall.