Notifications
Practical patterns for timely system communication across in-app, email, and push — without spam.
01 — Foundation
Notifications inform — they do not exhaust
Good notifications create confidence. Bad notifications become interruption spam.
Notifications communicate important system events — in-app messages, email digests, push alerts, and toasts. They should provide useful, timely information without competing for attention constantly.
02 — Channels
Match channel to urgency
Not every event deserves push, email, and a toast at once.
- in-app: inline messages and persistent banners first — corner toasts only as a last resort; see Toast Notifications
- email for summaries users can act on later — clear subject and single primary action
- push only for time-sensitive items users opted into
- user preferences for frequency and channel — respect opt-out immediately
03 — Priority
Priority and tone
Distinguish informational, success, warning, destructive, and critical — not everything is an emergency.
- understandable language with a clear purpose
- sensible timing — batch low-priority updates where possible
- actionable where needed — link to the task, not a generic homepage
- avoid meaningless updates and stacked interruption chaos
04 — Accessibility
Accessibility across channels
Accessibility is not only for on-screen toasts.
- screen reader support for in-app announcements — live regions used thoughtfully
- reduced motion for animated badges and toast entrances
- visible timing and persistent access where users must read before dismiss
- HTML email: semantic structure, alt text, and sufficient contrast
05 — Review
Before you approve
A short checklist for notification systems in code review.
- each notification earns its channel and priority level
- users can control volume; critical alerts are rare and specific
- in-app UI avoids toasts by default; see Toast Notifications when alternatives fail; forms follow Accessible Forms
Notifications should help users stay informed — not exhaust them.