Notifications
Real-time notifications with WebSocket push, channels, in-app delivery, and admin campaigns. This is the
pack-notifications pack.
No special integration needed
Out of the box, notifications run on the base services:
- Postgres for notification records.
- Valkey / WebSockets for real-time push to connected clients.
The default delivery channel is in-app plus WebSocket push. There is no third-party account to create and no pack-specific environment variables to fill in for the default setup.
Optional email channel
If you want notifications to also go out by email, set the base template's RESEND_API_KEY. The pack falls back to
Resend when an email channel is configured. Without it, email delivery is skipped and only the in-app/WebSocket channel
is used.
What it depends on
- A starter pack for auth. Notifications are addressed to signed-in users, and the inbox also lists pending
organization invitations, so the pack requires the
invitationscapability. All three starters provide it; on the free one the invitation list simply stays empty. - The starter's Resend config for the optional email channel.
What you get
- A header inbox dropdown with an unread badge that updates live, in whichever layout you installed.
- A full
/notificationspage: mark read, mark all read, and invitation items you can accept or decline. - A typed
sendNotificationhelper on the backend that writes the row, pushes it over the socket, and optionally emails it. Feature code calls that and nothing else. - Two socket events,
notification/newandnotification/count, that the mobile app listens to as well.
In the admin
On top of a starter, this pack adds a Notifications section to the admin app: compose a broadcast, see the campaign list and each campaign's detail, and an engagement widget on the dashboard.
Environment variables
None required. RESEND_API_KEY (from the base template) is optional and only enables the email channel.