Notifications
Notifications keep you informed about activity in your spaces. When something relevant happens—a new post, a comment on your post, a member joins—you get notified.
What is a Notification?
A notification is a lightweight alert about space activity. Notifications are:
- Space-scoped: Each notification belongs to a specific space
- Activity-based: Generated from actions (posts, comments, reactions, member changes)
- Read/unread tracking: Mark notifications as read to manage what you've seen
- Aggregated: Similar events are grouped together to reduce noise
Notifications create awareness without overwhelming you with every minor action.
Notification Types
Content Activity
Post created - New post in a space you're in
Post pinned - Admin pinned a post (admins only)
Comment added - Someone commented on a post
Reaction added - Someone reacted to a post or comment
Member Activity
Member joined - New member joined the space
Member role changed - Someone was promoted to admin or demoted to member
Member kicked - Admin removed a member (admins only)
Member banned - Admin banned someone (admins only)
Application Activity
Application submitted - Someone applied to join (admins only, application mode spaces)
Application approved - Your application was approved (applicant only)
Application rejected - Your application was rejected (applicant only)
Application canceled - Applicant withdrew their application (admins only)
Different roles see different notifications—admins see moderation events, applicants see application status.
Aggregation
Similar notifications are grouped together. Instead of 10 separate "new post" notifications, you get one notification showing:
- The most recent 3 posts
- Total count of new posts
- Time window of activity
How it works:
Notifications of the same type in the same space within a time window get grouped. The aggregated notification shows:
- Sample items (e.g., 3 most recent identities who reacted)
- Total count
- First and last activity timestamps
This keeps your notification feed manageable while preserving the information.
Read State
Notifications start as unread. Mark them read to track what you've seen.
Marking read:
- Individual notification: Mark one notification read
- All notifications: Mark everything read at once
Badge counts: The API provides unread counts per space and globally, useful for showing notification badges in UIs.
Last read timestamp: Notifications track when they were last marked read, so you can show "new since you last checked" indicators.
Space Filtering
Notifications are always tied to a space. You can:
- Get notifications for all your spaces (global feed)
- Filter to a specific space
- Get per-space unread counts
This lets you build both a unified notification center and per-space activity feeds.
Notification Scope
Each notification has a scope—the thing it's about. Scope types:
- Post: Includes post preview (title, creator, timestamps)
- Space: Includes space preview (name, avatar)
- Application: Includes application details and status
- Member ban/kick: Includes who was banned/kicked and who did it
- Role change: Includes old role, new role, who changed it
The scope provides enough context to understand the notification without fetching additional data.
Visibility Rules
Notifications respect privacy and role permissions:
- Only visible to space members
- Admin-only notifications (bans, kicks, applications) only go to admins
- Applicant-only notifications (approval/rejection) only go to the applicant
- Deleted content doesn't generate new notifications
Notifications are private—you only see yours.
Lifecycle
Creation: Activity happens (post created, member joins). System creates notification for relevant users.
Delivery: Notifications appear in your feed immediately. Poll the API to get updates.
Reading: Mark notifications read as you review them.
Aggregation: New similar activity updates existing grouped notifications instead of creating duplicates.
Notifications persist—they don't disappear when read, so you can reference past activity.
Design Philosophy
Notifications embody DFOS's approach to awareness:
Relevant: Only notify about spaces you're in and events that matter to your role.
Grouped: Aggregate similar events to prevent notification fatigue.
Contextual: Include enough preview data to understand what happened without extra fetches.
Private: Your notifications are yours—no shared or public notification feeds.
Opt-in attention: Pull-based (you poll) rather than push (no interruptions). You check when you want updates.
This creates awareness that respects your attention rather than competing for it.