There are three kinds of notifications in Sort Stack:
- Reminder notifications
- Imminent Deadline (Deadlines less than 12 hours in the future) notifications
- Overdue notifications
Notifications have two distinguishing qualities:
- Stickiness
- Bundling
Their stickiness actually came about by accident. I had originally intended each notification to only mention one task: the task whose triggering time was elapsed. However, what I failed to consider was that the way I had implemented the feature caused all tasks with elapsed triggering times to be mentioned, regardless of whether they had already triggered a notification. I was going to “fix” this, so that each notification would only mention one task, but decided to leave this “bug” in the solution because I liked it more than my original idea. A task can be unstuck by either resolving it or clearing its reminder time field.
Because notifications are sticky in Sort Stack, users can be reminded of tasks multiple times. In contrast, a traditional to-do list app like Things 3 only reminds a user of a task once at the time they designate.
The other distinguishing feature of how Sort Stack handles notifications is that Sort Stack’s notifications are bundled if they were scheduled to fire at the same time. For example, if two tasks — “Take medicine” and “Pay rent” — had the same triggering time of 8 AM, only one notification would fire. One design consideration throughout Sort Stack’s development was scalability. In the context of notifications, this meant accounting for the scenario where several tasks triggered a notification simultaneously. By bundling notifications, a user is unlikely to get bombarded by notifications. An additional benefit of bundling notifications is that users are less likely to be desensitized to notifications by getting too many of them. Lastly, you only need to keep the most recently sent notification of a given type because of this bundling property.
As an added bonus, I ensured that notification names were always grammatically correct, which meant creating a special wording of each notification type to account for the scenario where only one task is mentioned in a notification.