Notifications (“notifs”) are out of control these days. Apps are desperate for attention and notifs are how they compete for it.

Apps have started fighting dirty in this attention arena. These days they’ll use any excuse to raise a notif. But notifs have different importance, so some are low-signal and some are high-signal, but there’s no way to no the difference without checking.

Here’s an example from Twitter.

The Safari tab tells me I have 3 notifs from Twitter. But a glance at the Twitter UI shows that it’s just telling me there are 3 tweets I haven’t seen yet. Big deal. There’s an ocean of crap I haven’t read on the internet and never will.

If these were 3 new direct messages, or even responses to my Tweets, that would be a different story. Those are worthy of attention—new tweets are not.

The Solution

In software engineering we ran into this problem a long time ago and solved it.

For debugging, most software spews out highly-granular logs describing everything the system is doing. When it malfunctions, we go in and read these logs.

Some log messages indicate an error that must be investigated. Some log messages are just warnings that may be harmless. We don’t want the non-critical messages to drown out the critical ones, wo we tag each message with its “log level” (ERROR, WARNING, …) and use that to filter what we see. We specify filters like “show all messages at the WARNING importance level or above”.

Notifs should adopt this concept of importance levels.

Here’s an example hierarchy that could work for social media apps:

  1. DIRECT—New direct message
  2. RESPONSE—New response to post/tweet
  3. CONNECT—New friend/Connection request
  4. CONTENT—New content available in your feed
  5. TIP—New feature the app wants to tell you about

For the Twitter example I gave, by setting my notif preferences to “importance >= CONNECT”, I would see when someone DMed me or replied to my tweets, but not when new unread tweets became available to me.