Writing
Notes from building Nudge
What we’re learning about reminders, timing, and getting things done.
What we’re learning about reminders, timing, and getting things done.
Most reminder apps stop the moment you swipe. Here's how a reminder can keep coming back until the task is actually done, without buzzing every 15 minutes.
If you search for "reminders that won't go away until you do them," you mostly find bug reports. People complaining that iOS Reminders keeps pinging even after they swiped it away. Forum posts troubleshooting Microsoft Outlook's sticky reminder behavior. Articles explaining how to turn persistent notifications off.
Most of those people aren't actually trying to get rid of persistent reminders. They're trying to get rid of badly implemented persistent reminders. When you dig into the underlying intent, there's a big group of people who genuinely want a reminder to hound them until they do the thing. They just don't want it to be stupid about how.
This post is for that group. The search query is underserved by existing apps, and the problem isn't hard to solve, it's just done wrong almost everywhere.
The default notification model on every phone treats every reminder as equally important, and treats dismissal as confirmation that the user has handled it. Both assumptions are wrong.
When you set a reminder to "pay rent" and another to "reply to Jake," those two do not have the same cost of failure. Missing rent means a late fee. Missing Jake's reply is mildly awkward. But the notification system fires both the same way, lets you swipe both away the same way, and moves on.
More importantly, dismissing a reminder rarely means "done." It usually means "not now." You're on a call, you're mid-sentence in an email, you're cooking. You swipe because you can't act in that moment. The app interprets your gesture as completion and never comes back.
The result is a learned helplessness. You know reminders can't be trusted. So you stop relying on them. So you miss things. So you set more reminders. So you ignore more of them. The loop reinforces itself. The underlying problem is that dismissal and completion are not the same event, but every mainstream app treats them as one. If you have ADHD, this loop will be painfully familiar; we wrote about why reminders don't work for ADHD brains.
The cheap version of a "persistent reminder" is one that keeps pinging every 15 minutes until you tap a magic "complete" button. This is the version that everyone turns off, because it makes your phone unusable during meetings.
The thoughtful version of persistence is different. It says: I know you can't act right now. I'll come back at a moment when you can. But I won't give up until the thing is done.
This has three components.
It distinguishes "dismiss" from "done." Swiping a notification away should pause it, not close it. The only way a reminder should mark itself complete is if you explicitly mark the task done in the app, or the external trigger it's watching fires (your calendar cleared, the deadline passed, etc).
It knows when you're available. A good persistent reminder doesn't come back every 15 minutes. It comes back at the next moment the user is likely to actually act. Usually that's when a meeting ends, when your calendar opens up, or at the times of day you actually respond. This is the core of what a context-aware reminder app actually is.
It escalates gracefully, not loudly. If the first attempts failed, the system changes tactic. It might upgrade from silent to gentle. It might change the message slightly. It might ask if the task needs to be deferred. It doesn't just shout louder. Most of the work is knowing when to shut up.
Stock iOS Reminders fires once at the time you set. Swipe it away and that's the end of it. The task sits in the list, but nothing comes back to you unless you set another reminder by hand.
Due and TickTick Premium both do real persistence, and they do it the same way: re-alert on a fixed interval until you acknowledge. Due's Auto Snooze will ping you every minute, five minutes, or hour until you respond. TickTick's Annoying Alert repeats the alarm until you deal with it. Both are honest about what they are, and for a hard deadline in the next hour they work.
The gap is the same in all of them. None separate "dismiss" from "done," so acknowledging an alert to get through a meeting quietly kills the reminder. And none pick the next moment you can actually act; the interval versions just repeat until you surrender, which is the behavior people turn off. Persistence on a timer trains you to acknowledge without doing.
For most tasks, Nudge caps itself at two nudges. A reminder that never lets up on everything would make your phone unusable. But when you flag a task as don't-let-me-forget, the cap comes off, and the nudge behaves differently.
The first nudge lands in a predicted "act window" based on your patterns. If you act, the thread closes. If you don't, it doesn't fire again immediately. It goes back into the scheduler to pick the next reasonable window.
The follow-up arrives when that window opens, typically a few hours later, or after the meeting you were in ends, or when your calendar clears. The message is slightly different. Instead of "Reminder: file the expense report," it becomes "Still need to file the expense report?" The wording acknowledges that this is a follow-up.
If you keep not acting, Nudge doesn't try louder. It backs off and comes back when your next window opens, and the task stays open until you mark it done or tell Nudge to drop it. The system is not giving up on the task, but it is also not going to hammer you at increasing volume.
Throughout this, the user can mark the task done anywhere. From the notification. From the app. From a quick reply in chat. Completion is easy. Dismissal is gentle. The persistence comes from the scheduler, not from badge count inflation.
The critical detail is the one most apps get wrong: the reminder should only stop when the task is actually done, not when the user has swiped at it enough times.
The way to do this without making your phone unusable is to be smart about when "back off" mode kicks in. If the user marks the task done, stop. If the user explicitly says "remind me tomorrow," stop until tomorrow. If the user has dismissed three nudges in a row on the same day, the system should offer to reschedule rather than keep trying.
What the system should not do is:
The combination of those four mistakes is what makes iOS Reminders feel like a broken tool. It's too aggressive when wrong and too forgiving when right.
Not every task needs persistent behavior. For most things, a single well-timed nudge is enough. The persistent behavior is reserved for:
Everything else gets one nudge, maybe a polite follow-up, and then drops off. The default is gentle. Persistence is opt-in.
If you've been looking for reminders that won't go away until you do them, the answer is not a louder alarm. It's a reminder that knows your day, waits for the right moment, keeps coming back without getting noisy, and actually closes when the task is done instead of when you swipe.
That's what Nudge is. If you've tried apps that buzz every 15 minutes and hated them, or apps that disappear the moment you look sideways and let you miss things, there's a middle path. It's quieter and more patient than either extreme.
Nudge is the persistent reminder that doesn't get annoying about it. Free on iPhone and web.
Nudge reads your calendar and learns your patterns, then holds each reminder until a moment you can use.