# How Slack Rebuilt Notifications 📣

[Slack](https://yomu.fyi/company/slack) · Frances Coronel · Mar 19, 2026

**Type:** Problem & solution

## Summary

Slack redesigned its legacy notification architecture to address user confusion, conflicting desktop and mobile preference systems, and tight coupling between notification content and push delivery. The engineering team unified four separate preference models into a single framework with three channel options: All new posts, Mentions, and Mute. To ensure safe rollback and backwards compatibility without direct database mutations, Slack implemented a read-time translation strategy alongside a new desktop\_push\_enabled preference and auto-saving cross-platform React UI components. This decoupling of activity from push delivery resulted in a fivefold sustained increase in settings engagement, reduced reliance on per-channel overrides, and eliminated synchronization mismatches across mobile and desktop clients.

## Context

Slack's legacy notification system suffered from four conflicting mental models across desktop and mobile, inconsistent state synchronization between clients, and hidden coupling between what users were notified about and how notifications were delivered. Consequently, notification issues became one of the top three drivers of Customer Experience support tickets as users struggled to predict or control notification behavior.

## Approach / What changed

Slack unified notification options into three settings (All new posts, Mentions, or Mute) and decoupled in-app activity from push notifications. To migrate users safely without risky database-level changes, Slack introduced a new desktop\_push\_enabled preference and used a read-time translation strategy to map legacy Off settings to Mentions with push disabled. The team also implemented auto-saving React preference modals and rewrote legacy iOS screens to establish cross-platform parity.

## Takeaways

- Slack decoupled notification content triggers from push delivery channels, allowing users to track in-app activity while selectively disabling push notifications on desktop or mobile.
- To maintain backward compatibility and enable safe rollbacks during migration, engineers avoided direct database mutations and instead used read-time logic alongside a backfilled desktop\_push\_enabled field.
- Post-launch metrics showed a sustained 5x increase in settings engagement and a reduction in per-channel overrides, with the majority of users adopting the default Mentions and DMs configuration.

**Tags:** [Android](https://yomu.fyi/topic/android), [Architecture](https://yomu.fyi/topic/architecture), [iOS](https://yomu.fyi/topic/ios), [Migrations](https://yomu.fyi/topic/migration), [Refactoring](https://yomu.fyi/topic/refactoring)

[Read original post](https://slack.engineering/how-slack-rebuilt-notifications)
