Notifications System - nself-org/nchat GitHub Wiki
The nChat notification system provides comprehensive, production-ready notification infrastructure with:
- Web Push Notifications - Native browser push via Web Push API
- Email Digests - Scheduled email summaries
- Batch Operations - Efficient bulk notifications
- Reminders - User reminders with snooze/recurrence
- Per-Channel Preferences - Granular control
- Keyword Alerts - Custom keyword notifications
- Quiet Hours - Do-not-disturb scheduling
- Multiple Channels - Email, Push, SMS
npx web-push generate-vapid-keysAdd to .env.local:
NEXT_PUBLIC_VAPID_PUBLIC_KEY=<public-key>
VAPID_PRIVATE_KEY=<private-key>import { usePushSubscription } from '@/hooks/use-push-subscription'
const { subscribe } = usePushSubscription()
await subscribe()await fetch('/api/notifications', {
method: 'POST',
body: JSON.stringify({
type: 'mention',
title: 'You were mentioned',
body: '@alice mentioned you',
userId: 'user-uuid',
}),
})-
GET /api/notifications- List -
POST /api/notifications- Create -
PUT /api/notifications- Update -
DELETE /api/notifications- Delete
GET /api/notifications/preferencesPUT /api/notifications/preferences
POST /api/notifications/subscribeDELETE /api/notifications/subscribe
-
POST /api/notifications/digest- Send now -
PUT /api/notifications/digest- Settings
-
POST /api/notifications/batch- Create -
GET /api/notifications/batch- Status
GET /api/remindersPOST /api/remindersPUT /api/remindersDELETE /api/reminders
const { isSubscribed, subscribe } = usePushSubscription()const { preferences, updatePreferences } = useNotificationPreferences()- Docs:
/docs/Notifications-System.md - Issues: GitHub
- Email: [email protected]