Notification Setup Guide#
Complete guide to setting up and managing push notifications in AT Todo.
Table of Contents#
Getting Started#
Enabling Push Notifications#
Push notifications allow you to receive alerts about due tasks even when AT Todo isn't open.
Step 1: Access Settings
- Click the "Settings" link in the navigation bar
- A settings dialog (modal) will open
Step 2: Enable Notifications
- In the Settings dialog, scroll down to "Notification Settings"
- You'll see your current notification status (e.g., "Not enabled")
- Click the "Enable Push Notifications" button
- Your browser will prompt for permission - click "Allow"
Step 3: Configure Preferences
Once enabled, you'll see notification preferences:
-
Timing: Choose which types of tasks trigger notifications
- Overdue tasks (default: on)
- Tasks due today (default: on)
- Tasks due within 3 days (default: off)
-
Check Frequency: How often to check for new notifications
- Every 15 minutes
- Every 30 minutes (default)
- Every hour
- Every 2 hours
-
Quiet Hours: Set Do Not Disturb times
- Enable/disable quiet hours
- Start time (default: 10 PM)
- End time (default: 8 AM)
Step 4: Test Your Setup
- Click "Send Test Notification" button
- You should see a test notification appear
- If successful, you'll see a confirmation toast
Multi-Device Setup#
AT Todo supports notifications on multiple devices - your phone, tablet, desktop, etc.
How Multi-Device Works#
- Each browser/device needs to register separately
- Notifications are sent to all registered devices simultaneously
- Each device maintains its own subscription
- All devices receive the same notifications
Registering Additional Devices#
For each device you want to receive notifications:
- Open AT Todo on the new device
- Login with your account
- Open Settings (click the "Settings" link in the top navigation)
- Enable Notifications:
- If this is your first device: Click "Enable Push Notifications"
- If you already have notifications enabled on another device: Click "Register This Device"
- Grant Permission when your browser prompts
- Verify the device appears in "Registered Devices" list
Viewing Registered Devices#
In the Settings → Notification Settings section, you'll see a "Registered Devices" list showing:
- Device count
- Browser/OS information for each device
- Registration date
Example:
Registered Devices:
• Device 1: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)... (added 11/22/2024)
• Device 2: Mozilla/5.0 (iPhone; CPU iPhone OS 17_0)... (added 11/22/2024)
• Device 3: Mozilla/5.0 (Windows NT 10.0; Win64; x64)... (added 11/23/2024)
Re-registering a Device#
If notifications stop working on a device:
- Open Settings on that device
- Click "Register This Device" button
- The device will refresh its subscription
- Test with "Send Test Notification"
Removing Devices#
To remove a device from receiving notifications:
- Open Settings on any device
- Find the device in the "Registered Devices" list
- Click the X button next to the device you want to remove
- Confirm removal when prompted
- The device will no longer receive notifications
Notes:
- You can remove devices from any logged-in device (not just the device itself)
- Devices can be re-registered at any time
- Removing the last device will reset the notification UI
- If you remove the current device, you'll need to re-enable notifications
Managing Old Devices#
- Inactive device subscriptions expire automatically over time
- Failed notifications to old devices won't affect active ones
- Manual removal via the X button is the recommended cleanup method
Notification Settings#
Timing Preferences#
Control which tasks trigger notifications:
Overdue Tasks (Recommended: ON)
- Notifies when tasks are past their due date
- Highest priority - shown first
- Example: "Submit report" was due yesterday
Tasks Due Today (Recommended: ON)
- Notifies about tasks due within 24 hours
- Shows time until due
- Example: "Team meeting" due at 2:00 PM today
Tasks Due Soon (Optional)
- Notifies about tasks due within 3 days
- Helpful for planning ahead
- Example: "Project deadline" due in 2 days
Hours Before Due (Advanced)
- Get advance notice before tasks are due
- Range: 0-72 hours
- Example: Set to 2 hours to get notified 2 hours before due time
Check Frequency#
How often AT Todo checks for new due tasks:
- Every 15 minutes: Most responsive, more battery usage
- Every 30 minutes: Balanced (default)
- Every hour: Less frequent, better battery life
- Every 2 hours: Minimal battery impact
Note: Server-side checks also run every 5 minutes regardless of client settings.
Quiet Hours (Do Not Disturb)#
Prevent notifications during sleep or focus time:
Enable Quiet Hours:
- Check "Enable Do Not Disturb mode"
- Set start time (hour, 0-23)
- Default: 22 (10 PM)
- Set end time (hour, 0-23)
- Default: 8 (8 AM)
How It Works:
- No notifications during quiet hours
- Notifications queued will appear after quiet hours end
- Works independently on each device
Saving Changes#
After configuring preferences:
- Click "Save Preferences" button
- You'll see a success toast
- Settings are synced to your AT Protocol repository
Troubleshooting#
Notifications Not Appearing#
Check Browser Permissions:
-
Chrome/Edge:
- Click lock icon in address bar
- Check "Notifications" is set to "Allow"
-
Firefox:
- Click lock icon → Permissions → Notifications
- Should be "Allowed"
-
Safari:
- Safari → Settings → Websites → Notifications
- Find your domain, should be "Allow"
Check System Settings:
- macOS: System Settings → Notifications → [Your Browser]
- Windows: Settings → System → Notifications → [Your Browser]
- iOS: Settings → [Your Browser] → Notifications
- Android: Settings → Apps → [Your Browser] → Notifications
Verify AT Todo Settings:
- Open Settings
- Check notification status shows "Enabled ✓"
- Verify device appears in "Registered Devices"
- Try clicking "Register This Device" to refresh
Test Connection:
- Click "Send Test Notification"
- Check the response:
- Success: "Test notification sent to X device(s)"
- Failure: Error message with details
- Check browser console for errors (F12 → Console)
Device Not Listed#
If a device doesn't appear in "Registered Devices":
- Click "Enable Push Notifications" or "Register This Device"
- Grant permission when prompted
- Wait 2-3 seconds for registration
- Refresh the Settings page
- Device should now appear
Notifications on Some Devices Only#
If notifications work on one device but not others:
- On the non-working device, open Settings
- Check notification permission status
- Click "Register This Device"
- Send test notification
- All devices should receive it
Common causes:
- Device wasn't registered (no subscription created)
- Browser permission denied
- Browser doesn't support push notifications
- System notifications disabled for browser
Wrong Notification Times#
If notifications appear at wrong times:
Check Timezone:
- Verify system timezone is correct
- Edit a task and check the time shown
- Times should match your local timezone
Check Task Due Times:
- Tasks without times trigger at midnight
- Add specific times for better scheduling
- Example: "tomorrow at 3pm" vs just "tomorrow"
Too Many/Few Notifications#
Adjust Settings:
-
Too many:
- Disable "Tasks due soon" notifications
- Increase check frequency to 2 hours
- Enable quiet hours
-
Too few:
- Enable all notification types
- Decrease check frequency to 15 minutes
- Check quiet hours aren't blocking
Notification Cooldown:
- Each task only notifies once per 12 hours
- Prevents spam for the same task
- Resets after task is completed
Browser Compatibility Issues#
Best Support:
- Chrome (desktop & Android)
- Edge (desktop)
- Safari (iOS 16.4+, macOS)
Limited Support:
- Firefox (no background sync)
- Older Safari versions
- Mobile browsers (varies)
If using unsupported browser:
- Switch to Chrome or Edge for best experience
- Or keep AT Todo open for notifications
- Check server logs for notification sends
Service Worker Issues#
If notifications completely stop working:
Reset Service Worker:
- Open browser DevTools (F12)
- Go to Application tab → Service Workers
- Click "Unregister" next to AT Todo worker
- Refresh the page
- Service worker will reinstall
- Re-enable notifications in Settings
Check Service Worker Status:
- Navigate to
/app/settings - Open Console (F12)
- Look for
[Push]prefixed logs - Should see "Service worker ready"
- Should see "Subscription registered successfully"
Advanced Topics#
How Notifications Work#
Architecture:
-
Client-Side Check (Browser):
- Service worker runs periodic checks
- Compares current time to task due dates
- Shows notifications for matching tasks
-
Server-Side Check (Background Job):
- Runs every 5 minutes
- Checks all enabled users
- Sends push notifications to registered devices
-
Push Service (Browser Vendor):
- Chrome uses FCM (Firebase Cloud Messaging)
- Safari uses APNs (Apple Push Notification service)
- Delivers notifications to devices
Data Flow:
Task Due → Server Check → Push Service → Your Device → Notification
Privacy & Security#
What's Stored:
-
In Database:
- Your DID (user identifier)
- Device push subscriptions (endpoints, keys)
- Notification history (prevents spam)
-
In AT Protocol:
- Notification preferences
- Task data (titles, due dates)
-
Never Stored:
- Notification content (generated on-demand)
- Which notifications you viewed
- Device location or tracking data
Encryption:
- Push subscriptions use public/private key encryption
- VAPID (Voluntary Application Server Identification)
- End-to-end encrypted between server and device
Notification History#
Prevent notification spam with built-in cooldown:
- Each task can only notify once per 12 hours
- Tracked in
notification_historytable - Resets when task is completed
- Separate tracking per notification type (overdue, today, soon)
Getting Help#
If you're still having issues:
- Check the Features Guide for more details
- Review browser console for error messages
- Check server logs for notification sending
- Report issues on GitHub
- Contact via Bluesky
Tips for Best Experience#
- Enable on all devices you regularly use
- Set appropriate check frequency based on urgency
- Use quiet hours to avoid sleep disruption
- Test notifications after first setup
- Keep browser updated for best compatibility
- Grant persistent permissions (don't use Incognito mode)
- Check "Registered Devices" periodically to verify active devices