tingdo
Thinking out loud

The task manager that doesn't want to manage you

Why "overdue" is a design choice, and what changes when you stop making it.

There’s a small moment of resistance, every morning, before I open my task manager. Not because the work is hard. Because I know what’s waiting. A pile of yesterday’s tasks marked red. Three things I promised myself I’d do today, last Wednesday. A project that’s been “due Friday” for two weeks. Before I can think about what to do, I have to clear what didn’t get done, maybe because it wasn’t that important. Drag things forward. Pick new dates. Tell the app, in effect, when I’ll try again, and apologize for the last attempt by moving on from it.

But here’s the thing the app doesn’t know. It doesn’t know that the meeting on Tuesday ran long. It doesn’t know that the client emergency on Wednesday rewrote my whole week. It doesn’t know that the thing I called “urgent” on Monday turned out to matter less than what came up on Thursday. A task manager sees a list. It doesn’t see a week.

And yet most task apps act as if they do. They nudge me to assign dates to tasks that do not have a real due date. The interface is built around due dates, calendar columns, “today” filters, “this week” views. Without dates, the app feels half-empty, almost broken. So I pick dates I don’t really mean, and the app turns those guesses into accusations.

This is the assumption I wanted to design against.

Where “overdue” actually comes from

The strange thing is that the methodology most of these apps were inspired by doesn’t really believe in due dates.

In Getting Things Done, David Allen makes a careful distinction between things that have a hard deadline and everything else. A hard deadline is a flight to catch, a tax return, a meeting at three. These belong on a calendar. They are non-negotiable, and they are rare. Everything else, the long quiet majority of your work, is a next action. Sorted not by when, but by where you are and what you have with you. Phone calls when you have your phone. Errands when you’re out. Computer work when you’re at your desk.

What this means in practice is that most of your tasks have no date at all. They are not late. They are simply waiting for the right moment. GTD treats this as the default state of work, not an edge case.

Most task apps invert this. They were built around the calendar, because the calendar was already the dominant productivity metaphor when they were designed. So every task gets a date, every list gets a “today,” every project gets a deadline that nobody set out loud. The thing GTD called rare became the thing that holds the whole system together. And the thing GTD called the default, the dateless next action, became a second-class citizen with a small icon somewhere in a side panel.

Look closely and you’ll see that most task apps are, underneath, just calendars with checkboxes. The “today” view is a calendar day. The “this week” view is a calendar week. The “overdue” pile is just yesterday’s calendar, still hanging around.

Once dates are everywhere, “overdue” follows automatically. It is the natural consequence of pretending that everything has a deadline.

What happens when you invent deadlines

So here is what I actually do, most mornings. I open the app. I look at the red. I pick a task that was due three days ago and tell the system it’s due today. I take another one and push it to Friday, knowing already that Friday is unrealistic. I snooze a third one for a week, less because next week is the right time and more because I want it out of my face. None of this is planning. It’s housekeeping. It’s the work I do to make the app usable before I can use it.

And while I’m doing it, there is a feeling.

First comes the frustration. Not at the app exactly, but at the situation. I picked these dates myself, in good faith, when the week ahead looked different than it turned out to be. Now I’m spending the first ten minutes of my morning negotiating with a list that has already decided I’m behind. The list isn’t wrong, in a technical sense. The dates have passed. But the framing assumes that the passing of those dates is a failure on my side, when really, the week just did what weeks do.

Underneath the frustration, something quieter. I started to feel guilty about my own task list, which, when I write it down, sounds ridiculous. The tasks are mine. The dates are mine. The fact that the world moved differently than I expected is not a moral failing. But the reasonable adult part of my brain that knows I haven’t actually done anything wrong is no match for a list that quietly tells me, every morning, that I did.

The guilt is small. That’s the trouble with it. If it were dramatic, I would notice it and push back. Instead it just sits there, a low hum under the surface, and over months it changes how I relate to the system. I start opening the app less. I stop capturing things that feel inconvenient to track, because tracking them means rescheduling them later. I keep a parallel list, somewhere, that feels more honest. I don’t quit the app. I just trust it a little less every week.

This isn’t what anyone designed for. Task apps were built to help people stay organized, and for a long time, dates were the most obvious way to structure that. But somewhere along the way, the structure outgrew the intent, and feeling slightly behind became the default condition of using a task manager.

What changes when “overdue” simply doesn’t exist

A few months ago I started building a small task manager called tingdo, and this is the first design decision it makes: there is no overdue state.

Not hidden, not softened, not collapsed into a less alarming color. It doesn’t exist. Real deadlines still exist, of course. Some things genuinely have to happen on a specific day, and the app lets me set a date for them. But once a date is set, the app treats yesterday’s date and today’s date the same way. Both are surfaced, plainly. Neither is marked as failure. If the date mattered, I’ll notice. If it didn’t, the task waits, the way a note on a kitchen counter waits, without judgment.

The first time I used the app for a real week, I noticed something strange. The morning resistance was gone. I would open it, look at my next actions, and start working. There was no housekeeping to do first. No negotiation with the list. No quiet apology to myself before I could begin. The list was just a list. The few people I’ve shared the app with so far have said something similar: the first thing they noticed wasn’t a feature, it was the absence of a feeling.

What surprised me more was what happened with dates themselves. Once the app stopped punishing me for missed ones, I stopped picking them so freely. Dates became rare again, the way GTD describes them. I gave a date to the few things that genuinely had one, and left everything else alone. The default state of my work returned to what it should have been all along: a set of next actions, waiting for the right context.

The frustration went with the red. The guilt went with the badges. What was left was just the work.


Removing the overdue state changed something else, too. With the daily housekeeping gone, I started noticing the rest of the friction in the app. The smaller resistances, the ones I had stopped registering because the big one had been louder. And the most persistent of them turned out to be something I had taken for granted for years: the sheer number of decisions an app asks me to make before I can write down a thought.

The cost of asking before capturing

Here is how I capture a task in most apps. A thought arrives, somewhere between a meeting and the next thing. I open the app. I find the “Add task” button. I type the title. Then the form unfolds. Which project does this belong to? I scroll a list. Which context? I pick from another list. Is there a due date? I open a calendar. A priority? A tag? A reminder? Some of these are dropdowns, some are toggles, some are tucked behind a “more options” link. By the time I’m done, the thought has been turned into a small project of its own. And the worst part is that the original idea, the thing I actually wanted to remember, is now buried under five organizational decisions I wasn’t ready to make.

GTD has a clear position on this. Capture comes first. Clarify comes later. You write things down so that your mind can let go of them, and you decide what they mean and where they live in a separate step, on your own time. Mixing the two punishes both. Capture becomes slow, so you stop capturing. Clarifying becomes constant, so it stops feeling like a calm review and starts feeling like an interruption.

I had adapted to the mixing without noticing. Every new task was a tiny act of organization, and I had built the overhead into my habit. I would sort thoughts in my head before typing them, because sorting them after was too much work. I decided, quietly, which thoughts were worth the effort. Many of them weren’t. They never made it into the system. The losses were invisible, because they were made of things I hadn’t written down.

The second thing took longer to see. I noticed it only after I started building. Capture and search lived in different places in my head, because they had always lived in different places on screen. So when a thought arrived, I rarely checked whether it already existed. Checking was its own little task. Easier to just write it down again. Over time my list filled up with near-duplicates. Buy batteries. Get batteries. Batteries for the smoke alarm. None of these was wrong, but none of them was the same task, and the list had lost the thread.

If you put these two observations side by side, an interesting shape appears. Capture should be free of organizational pressure. And capture should be the same act as search, so that the thing you’re about to add is held up against the things you already have, in real time. Both of these point in the same direction. They point toward a single field that does more than one job.

One field, doing more than one job

The answer turned out to be a single input field. Not a search bar with a separate “add” button next to it. The same field. You start typing, and the app shows you what already exists, in real time, while you write what’s about to be new. If the thing you’re typing is already in your system, you see it before you finish the sentence. If it isn’t, you press enter, and it’s there. No form. No follow-up questions. No decision about where it belongs, unless you want to make one.

I call it the next bar, and it took me a long time to trust how much it could carry. Capturing a task, finding a task, jumping to a project, switching to a context, all of it lives there. The rest of the interface stays quiet, because it doesn’t have to do the heavy lifting. One place to type, and the app follows.

What it feels like, in practice, is that the moment of capture stops being a moment at all. You think, you type, you keep moving. The app stays out of the way until you ask it not to.

A task manager that doesn’t want to manage you

Looking at these decisions side by side, the same thing runs underneath them. Removing the overdue state was a decision about how the app treats my past. Reducing the interface to a single field was a decision about how the app treats my present. And a guided weekly review, which gathers the housekeeping into one quiet hour rather than scattering it across every day, is a decision about how the app treats my future. In each case, the answer was the same: the app should hold less, demand less, and assume more on my behalf.

Most task managers are built on a quiet assumption that the user needs to be steered. Dates keep you accountable. Buttons walk you through the right way to add a task. Notifications make sure you don’t forget. Each of these is well-intentioned, and each of them slowly takes something from you. The system stops being a place where your thinking lives and starts being a place that thinks back at you, often with a tone you didn’t ask for.

I wanted the opposite. I wanted an app that assumes I know what I’m doing, and gets out of the way so I can do it. How the weekly review actually works is its own story. The point isn’t any single feature. The point is the assumption underneath all of them. You are not behind. You are not failing. You don’t need to be managed. You need a clear view of what’s next, and a system that holds it for you without commentary.

That’s the whole idea. Enough clarity to move.


I'm Simon. I build tingdo, a calm task manager built around the GTD method, for people tired of the overdue pile.