Slack's engineering team rebuilt its notification system from scratch to address years of accumulated complexity. The legacy system had four conflicting preference models across desktop and mobile, hidden coupling between what users were notified about and how they received notifications, and unreliable state sync across clients. The rebuild introduced a unified three-option model (All new posts, Mentions, Mute), decoupled activity notifications from push notifications via a new desktop_push_enabled preference, added auto-save behavior, and rewrote legacy iOS pages using modern React components. Migration of millions of users was handled via read-time fallbacks rather than database-level changes to ensure safe rollbacks. Post-launch, settings engagement increased 5x and sustained over weeks, support tickets decreased, and users reported feeling more in control of their notification experience.
Table of contents
IntroductionDiagnosing the Noise ProblemSimplifying Notifications at ScaleWhat “Simple” Really Looked LikeClosing ReflectionSort: