Most dates on tasks are guesses. The first post on this blog called them guesses wearing formal clothes, and Slate was built around that observation: software that cannot tell a hope from a promise punishes you for guessing wrong. It stamps a missed guess “overdue,” a word that belongs to missed flights rather than ordinary weeks. So tasks in Slate roll over to tomorrow without making you feel bad about it. That belief is the MindSlate, the filter every feature has to pass.

Some dates are not guesses

Then users pushed back, and they were right to. A gift needs to be bought before a birthday. A visa needs to be filed before a trip. If the gift shows up the day after the birthday, no amount of rescheduling helps.

The task itself can move all week, Monday to Tuesday to Wednesday. The birthday stays put. That is a real deadline, and Slate had nowhere honest to keep one. The only date on a task was the day it sat on, and that field was already busy being the plan.

The fix that would have made Slate a calendar

The obvious fix was pinning: give a deadline task a fixed spot that does not roll over, so it cannot slide past the date it is due. But then Day would mean two different things, a plan for most tasks and a fixed appointment for a few. Slate would have turned back into a calendar, quietly, one task at a time. The first post on this blog promised it would not be one.

Holding the line against good feedback

The feedback was not wrong. People do have real deadlines, and pinning would have solved the problem cleanly for them. Ignoring it outright would have been plain stubbornness. But saying yes would have made Slate a little more convenient and a little less honest: one real problem solved by breaking the rule underneath everything else. Slate is meant to be exactly one thing for the people who want that thing, and I would rather half the people who try it love it completely than leave everyone mildly satisfied.

How Day and Due split the job

Day did not change. A task sits where you plan to do it, and if you do not get to it, it rolls to the next day without ceremony, whatever else is true about that task.

Due is the new part: a second, optional field that holds the real deadline and never touches Day. The gift can be planned for Tuesday and due on Thursday. If Tuesday slips, the task rolls to Wednesday like any other task. Thursday stays where it is, and nothing is overdue until Thursday actually passes.

A simplified hand-drawn mockup of a task card labeled 'Buy the gift,' with two small pill-shaped fields beneath it: a plain cream DAY pill reading 'Tue,' and a coral-washed DUE pill reading 'Thu' beside a small flag icon.

A due date can sit on a task that has no day yet, waiting in the Idea Backlog. A recurring task cannot carry one at all, since the schedule itself is already the deadline; there the field becomes a reminder instead.

The visible cost is one small flag, and only on tasks that earned it. The flag gets louder as the deadline gets closer, and you can ask Slate to remind you before it arrives. Most tasks still show nothing but the day they sit on, because most of them are still just plans.

The rule was never about deadlines

MindSlate rules out pretending every date is a deadline. A few dates genuinely are, and pretending otherwise to keep the pitch simple would have been its own kind of dishonesty. Most tasks in Slate will never carry that flag, and that is the system working rather than a gap waiting to be filled.

Resisting a feature that looks like everyone else’s turned out to be the easy half. The work was in building the version that still tells the truth about which dates are real.