Notifications — Our approach
A notification is a debt the app takes on against your attention. We try not to over-borrow.
The problem
The default state of a modern phone is too loud. The average smartphone user receives dozens to hundreds of notifications per day (Pielot et al., 2018). Each one is a small claim on attention — a glance, a context switch, a brief recovery period before you can return to what you were doing.
The cost is not the glance. It’s the resumption lag — the time it takes after an interruption to get back to the cognitive state you were in. Mark, Gudith & Klocke (2008) measured this in office workers and found that interruptions extend total task time and increase stress, even when the interruption itself is brief and resolved quickly. The bill is paid in the minutes after.
The trap is that an app’s incentive is to send more notifications (more engagement, more opens) and a user’s incentive is to receive fewer. Most apps optimise for their incentive. We want OterApp to optimise for yours.
What the science says
Interruption science
Mark, Gudith & Klocke (2008) showed that interrupted workers took longer to complete their primary task than uninterrupted controls, and self-reported higher stress and frustration even when the interruption was related work. Adamczyk & Bailey (2004) showed the cost of an interruption depends heavily on timing — interruptions at natural task boundaries cost a fraction of those that hit mid-thought.
The implication: when matters as much as whether. A notification at 9am about a 10am meeting is useful. The same notification at 2am isn’t.
Notification fatigue
Pielot et al. (2014, 2018) studied the long-term effect of high notification volume and found a decline in user attention to notifications over time — users start dismissing without reading. Worse, the dismissal generalises: once trained to ignore one app’s notifications, users ignore all notifications less reliably. Volume from one app degrades the signal of the others.
The mitigation isn’t on the user. It’s on the apps: be quieter than you could be.
Just-in-time adaptive interventions
In behavioral medicine, just-in-time adaptive interventions (JITAIs) are notifications that fire only when (a) the person is in a state where the intervention can help, and (b) the timing aligns with their actual schedule (Nahum-Shani et al., 2018). A reminder to log a meal at 11pm is not a JITAI — it’s noise. A reminder 15 minutes before a planned meal is a JITAI.
JITAIs significantly outperform fixed-schedule notifications across behavior-change studies. Context wins.
The opt-in default
Brignull’s work on dark patterns (2010 onward) catalogues how apps coerce users into permissive notification settings by burying opt-outs and pre-checking permissive defaults. The mirror principle — and the one OterApp follows — is that users should be the ones turning notifications on, with reasonable defaults and obvious per-type controls.
How Oter applies it
Throttled by default
Every notification type has a frequency setting (defaults: due tasks every 30 minutes, due habits every 60 minutes, due books every 120 minutes). The throttle is persistent — recorded in the database — so a restart, a deploy, or a multi-server fleet can’t spam you twice for the same event. If you’ve been notified about due tasks in the last 30 minutes, you won’t be again.
”Starting in N minutes,” not “this exists”
The starting-soon notifications (task, habit, meal, workout) are JITAIs: they fire only when an event is actually about to start, within the lead window you configure. A 15-minute lead is the default. Setting it to 0 disables the notification entirely — a single explicit opt-out per type.
Timezone-correct, always
Every time-based decision uses your timezone, not the server’s. A 9am reminder fires at your local 9am wherever the server happens to live. This sounds obvious, but it’s the single most common source of bugs in scheduled-notification systems — and we treat it as an invariant, not a feature.
The inbox is the source of truth
Even silenced notifications are recorded in the in-app notifications inbox. The inbox is the canonical record of what fired and when — so the choice between “push,” “WebSocket,” and “silent” never costs you visibility. You can always go look.
Three layers of opt-out
- Master switch — turn everything off in settings.
- Per-type opt-out — turn off just task starting, or just due habits, or just bills.
- Per-type frequency — keep the type on but raise the cadence (e.g., “remind me about due habits every 6 hours, not every hour”).
Practical tips
- Set your reminder offsets to match your prep time. If you need 30 minutes to walk to the gym, set workout lead to 30. If 5 minutes is enough warning for a meal, set meal lead to 5.
- Use the inbox as your “did I miss anything” check, not push notifications. Train the habit of opening the inbox at known intervals (after lunch, end of day) rather than reacting to pushes.
- If you keep ignoring a notification type, turn it off. Ignoring isn’t free — it degrades your response to every notification.
References
Adamczyk, P. D., & Bailey, B. P. (2004). If not now, when?: The effects of interruption at different moments within task execution. CHI ‘04 Proceedings, 271–278.
Mark, G., Gudith, D., & Klocke, U. (2008). The cost of interrupted work: More speed and stress. CHI ‘08 Proceedings, 107–110.
Nahum-Shani, I., Smith, S. N., Spring, B. J., Collins, L. M., et al. (2018). Just-in-time adaptive interventions (JITAIs) in mobile health. Annals of Behavioral Medicine, 52(6), 446–462.
Pielot, M., Church, K., & de Oliveira, R. (2014). An in-situ study of mobile phone notifications. MobileHCI ‘14 Proceedings, 233–242.
Pielot, M., Vradi, A., & Park, S. (2018). Dismissed!: A detailed exploration of how mobile phone users handle push notifications. MobileHCI ‘18 Proceedings.