Skip to content
Slicekit

Backend guides

Personal user notifications

A live personal inbox, localized email, daily digests, quiet hours and user-controlled delivery preferences.

View .md
On this page

A personal inbox alongside operator alerts

Personal notifications are product messages addressed to users. They are separate from admin notifications, which tell operators about registrations, billing and system events. The app bell combines both unread counts when a user has access to both.

Users read personal messages at /notifications and set delivery preferences at /settings/notifications. Server-sent events update badges and show toasts; polling provides a fallback. Rows can be marked read or unread and link to the relevant product surface.

Delivery users control

The system supports immediate email, daily digests at the user’s local hour, quiet hours and per-event preferences. Inbox messages render in the request language; background emails use the user’s saved language. Duplicate messages update an occurrence count and resurface the row as unread. Retention and delivery retries are configurable.

Add your product events

The template ships a test event and the reusable NotifyUserCommand entry point. Add your own catalog definitions for title and body templates, category, deep link, email defaults and opt-out rules. Translate domain events into notification commands beside the feature that owns them. Application-specific events and mute controls are yours to add.

Notifications, delivery attempts and preferences are included in data export and erasure. Keep those paths synchronized when extending the model. The repository references are docs/api/user-notifications.md and docs/frontend/user-notifications.md.

Scaffold with --no-notifications or run scripts/remove-user-notifications.sh to omit personal notifications. The independent operator alert system remains installed.

Verify

  • Send a test notification with two tabs open and confirm both unread badges update.
  • Change language and confirm the next inbox message and email use that locale.
  • Check delivery preferences, quiet hours and digest timing with your product events.

Live demo

Explore the running app

No sign-up. Pick an account to open the demo with its credentials prefilled, or open it and sign in yourself.

Open without signing in

Credentials are prefilled. Shared password Slicekit-Demo-2026!.