the ideal to-do app
APR 16, 2026
inkhaven
I, like many people, find myself hating all available to-do apps. As a bit of a productivity software nerd, I've tried many of them, including
- Todoist
- Amazing Marvin
- Tweek
- TickTick
- OmniFocus
- Any.do
- Apple Reminders
- 2Do
- Various Obsidian plugins, including Tasks, TaskNotes, Kanban
- Notion
- etc…
I find Todoist to be the best out of all of them, mainly because of its date-first setup and natural language processing features. But I am still kind of dissatisfied with it, and I wish there was something better.
my task management philosophy
A personal task management system (whether that's an app, bullet journal, whatever) should ideally help you communicate between your past, present, and future self by keeping track of the things you wanted/want/will want to get done. Preferably it will keep you from having to remember all of these things.
To that end, you have to represent tasks in an external system. For this, I have three axioms:
- Tasks and events are two different things
- Do dates and due dates are two different things
- Projects and areas are two different things.
1. tasks and events are two different things
To me, a task is something you want to get done, whereas an event is a function you have to attend at a particular time. For example, "Go grocery shopping" is a task. While I have to get it done, I do not technically need to be somewhere at a particular time. But "Go grocery shopping with Bob" is an event, because I have to be at the grocery store at a particular time to meet with Bob.
Events shouldn't go in the to-do app. Instead, they should go in the calendar. Knowing that I need to get to something later (but Not Now) makes it difficult to focus on any of the other tasks. Also, I want to interact with my task management system like it is a questbook, searching for shiny tasks to do, and it helps if all the tasks can be done Now for Immediate Reward.
Conversely, tasks should not go in the calendar. Timeblocking works in a pinch, but trying to schedule every task is too much overhead and doesn't account for varying motivation/energy levels. I also have a tendency to overbook myself when tasks start going in the calendar, putting way too many events in a day and forgetting to schedule breaks.
2. do dates and due dates are two different things
Even if you don't want to schedule tasks down to the minute, time still exists, and it's important to have a sense of where tasks lie in time. I think that the day is the correct unit of time for this — broad enough to be flexible, but short enough to be intelligible. Most todo apps agree, but they tend to miss the fact that a task usually has two relevant dates: a do date and a due date.
A task's do date is the date on which you hope to do the task. You need to handle all "do today" tasks by (i) completing them, (ii) postponing/delegating them, or (iii) deleting them. Once you've dealt with all of them, you should feel accomplished and free to let go of the day.
A task's due date, on the other hand, is a deadline imposed on you from the outside world. Something like "April 15th is Tax Day and if I do not pay my taxes Uncle Sam will come and get me." The due date is important task metadata that helps me decide what the do date should be, and how much you should prioritize the task.
Clearly, both of these are relevant to the task, and I think it is so wild that almost no to-do app has both of these built in. You obviously do not want the due date to be the do date??? I don't know, man.
3. projects and areas are two different things
The last axiom is a distinction of task groupings that I've shamelessly stolen from Tiago Forte's PARA method.
A project as a bundle of tasks with a clearly-defined end-state—something like "write a paper" or "complete x side project." These are basically super-tasks that are composed of subtasks. Meanwhile, an area is a category of tasks that doesn't have a clear end-state, usually requiring ongoing maintenance. Think "health" or "home" or "family".
Projects are clearly useful for breaking down a longer-term outcome into smaller parts. But I think areas are also important because they remind you not to lose track of the less measurable facets of your life. In practice, I go through my list of projects and areas to remind me of relevant tasks, à la David Allen's GTD Trigger List.
re: todoist
Alignment with these axioms is why Todoist is my current to-do app of choice. The main UI is day-first, and there's no push to use the calendar view if you don't want to. There are scheduled dates and Deadlines, which map one-to-one onto do dates and due dates. Bonus points for the gamification system, Karma.
…but there are still a lot of problems. Recurring dates are annoying on the whole, and you can't have recurring deadlines. I can sort tasks, but I can't manually reorder them after they're sorted. My favorite "planning" view is the Board (weekly kanban) view…except that it is truly a "week" view and not a "next 7 days" view, ending on Saturday no matter what day of the week it is. I want to use subtasks more, but I can't make them with keyboard shortcuts and it takes way too many clicks otherwise.
Also, I hate waiting to see if Doist will implement the features that I care about. It took years for Deadlines to be added, even though it was the community's number one feature request. And as with any proprietary software, I have no control over the features they add or remove, the software's lifespan, etc.
the wishlist
So, what would my ideal to-do app look like?
must-haves
- Quick task entry
- Preferably through natural language processing à la Todoist
- Creating a task should take no clicks
- Do dates and due dates built-in
- Recurring date support
- Day view listing all tasks with do date of today
- Next 7-day view for planning
- Moving tasks changes their do dates
- Two types of task groupings: projects and areas
- Ability to see tasks by project/area
- Keyboard shortcuts
- Sync between desktop and mobile
nice-to-haves
- Filters and sorting
- Markdown in task names
- Maybe some LLM nonsense
- Analytics
- Number of tasks done per day
- Time spent on task logs + predictions
- Location/context-based reminders
- Gamification :)
- Integrations
- Command palette
- and more…
Anyway, let me know if you've heard of such a thing. Or maybe I'll just ask Claude to make it.