Skip to main content
The notifications page is at /admin/notify. It provides a broadcast tool that inserts notification records into the notifications table, which users see in real time via the in-app notification center.

Notification fields

Each notification record has the following structure:
FieldTypeDescription
user_idstringThe ID of the recipient user
titlestringShort headline displayed in the notification
messagestringFull notification body text
type'success' | 'info' | 'warning' | 'error'Controls the visual style of the notification badge
is_readbooleanWhether the user has dismissed the notification
The current broadcast interface sends all notifications with type: 'info'. To send a different type (e.g. warning or success), you would need to insert directly into the notifications table via Supabase or extend the UI.

Sending a broadcast to all users

The default mode sends the notification to every user in the profiles table simultaneously.
1

Open the Notify Users page

Navigate to /admin/notify. The panel shows the total number of active users that will receive the broadcast.
2

Write the notification title

Enter a short, clear headline in the Protocol Title field. This is the first thing users see in their notification list.
3

Write the message body

Enter the full notification content in the Encrypted Payload field. Be concise — users read notifications in a small panel.
4

Send the broadcast

Click Execute Protocol. The system maps every user ID to a notification record and inserts them all in a single batch. A success toast shows the number of users reached.
Broadcasts are sent immediately to all users and cannot be recalled after execution. Verify both the title and message content carefully before clicking Execute Protocol.

Sending a targeted notification

To send a notification to a single user rather than all users, insert directly into the notifications table via the Supabase dashboard or a direct API call:
INSERT INTO notifications (user_id, title, message, type, is_read)
VALUES (
  'user-uuid-here',
  'Your withdrawal has been processed',
  'Your withdrawal of $250.00 has been approved and sent to your wallet.',
  'success',
  false
);
Or via the Supabase client in a server action:
await supabase.from('notifications').insert({
  user_id: targetUserId,
  title: 'Account Update',
  message: 'Your identity verification has been approved.',
  type: 'success',
  is_read: false,
});

Transmission ledger

Below the compose form, the Transmission Ledger shows a history of all notifications previously sent, grouped by unique title and message combinations. Each entry shows:
  • The notification title and message
  • How many user records share that notification (N NODES)
  • The timestamp of the most recent matching record
Click the X icon on any ledger entry to delete all notifications with that title and message combination from the database.
Use the ledger to audit recent communications and remove outdated notifications that users may not have dismissed yet.

Build docs developers (and LLMs) love