The attodo.app, uhh... app.
1# Notification Setup Guide
2
3Complete guide to setting up and managing push notifications in AT Todo.
4
5## Table of Contents
6
7- [Getting Started](#getting-started)
8- [Multi-Device Setup](#multi-device-setup)
9- [Notification Settings](#notification-settings)
10- [Troubleshooting](#troubleshooting)
11
12---
13
14## Getting Started
15
16### Enabling Push Notifications
17
18Push notifications allow you to receive alerts about due tasks even when AT Todo isn't open.
19
20**Step 1: Access Settings**
21
221. Click the "Settings" link in the navigation bar
232. A settings dialog (modal) will open
24
25**Step 2: Enable Notifications**
26
271. In the Settings dialog, scroll down to "Notification Settings"
282. You'll see your current notification status (e.g., "Not enabled")
293. Click the "Enable Push Notifications" button
304. Your browser will prompt for permission - click "Allow"
31
32**Step 3: Configure Preferences**
33
34Once enabled, you'll see notification preferences:
35
36- **Timing**: Choose which types of tasks trigger notifications
37 - Overdue tasks (default: on)
38 - Tasks due today (default: on)
39 - Tasks due within 3 days (default: off)
40
41- **Check Frequency**: How often to check for new notifications
42 - Every 15 minutes
43 - Every 30 minutes (default)
44 - Every hour
45 - Every 2 hours
46
47- **Quiet Hours**: Set Do Not Disturb times
48 - Enable/disable quiet hours
49 - Start time (default: 10 PM)
50 - End time (default: 8 AM)
51
52**Step 4: Test Your Setup**
53
541. Click "Send Test Notification" button
552. You should see a test notification appear
563. If successful, you'll see a confirmation toast
57
58---
59
60## Multi-Device Setup
61
62AT Todo supports notifications on multiple devices - your phone, tablet, desktop, etc.
63
64### How Multi-Device Works
65
66- Each browser/device needs to register separately
67- Notifications are sent to **all registered devices** simultaneously
68- Each device maintains its own subscription
69- All devices receive the same notifications
70
71### Registering Additional Devices
72
73**For each device you want to receive notifications:**
74
751. **Open AT Todo** on the new device
762. **Login** with your account
773. **Open Settings** (click the "Settings" link in the top navigation)
784. **Enable Notifications**:
79 - If this is your first device: Click "Enable Push Notifications"
80 - If you already have notifications enabled on another device: Click "Register This Device"
815. **Grant Permission** when your browser prompts
826. **Verify** the device appears in "Registered Devices" list
83
84### Viewing Registered Devices
85
86In the Settings → Notification Settings section, you'll see a "Registered Devices" list showing:
87
88- Device count
89- Browser/OS information for each device
90- Registration date
91
92Example:
93```
94Registered Devices:
95• Device 1: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)... (added 11/22/2024)
96• Device 2: Mozilla/5.0 (iPhone; CPU iPhone OS 17_0)... (added 11/22/2024)
97• Device 3: Mozilla/5.0 (Windows NT 10.0; Win64; x64)... (added 11/23/2024)
98```
99
100### Re-registering a Device
101
102If notifications stop working on a device:
103
1041. Open Settings on that device
1052. Click "Register This Device" button
1063. The device will refresh its subscription
1074. Test with "Send Test Notification"
108
109### Removing Devices
110
111To remove a device from receiving notifications:
112
1131. **Open Settings** on any device
1142. **Find the device** in the "Registered Devices" list
1153. **Click the X button** next to the device you want to remove
1164. **Confirm removal** when prompted
1175. The device will no longer receive notifications
118
119**Notes:**
120- You can remove devices from any logged-in device (not just the device itself)
121- Devices can be re-registered at any time
122- Removing the last device will reset the notification UI
123- If you remove the current device, you'll need to re-enable notifications
124
125### Managing Old Devices
126
127- Inactive device subscriptions expire automatically over time
128- Failed notifications to old devices won't affect active ones
129- Manual removal via the X button is the recommended cleanup method
130
131---
132
133## Notification Settings
134
135### Timing Preferences
136
137Control which tasks trigger notifications:
138
139**Overdue Tasks** (Recommended: ON)
140- Notifies when tasks are past their due date
141- Highest priority - shown first
142- Example: "Submit report" was due yesterday
143
144**Tasks Due Today** (Recommended: ON)
145- Notifies about tasks due within 24 hours
146- Shows time until due
147- Example: "Team meeting" due at 2:00 PM today
148
149**Tasks Due Soon** (Optional)
150- Notifies about tasks due within 3 days
151- Helpful for planning ahead
152- Example: "Project deadline" due in 2 days
153
154**Hours Before Due** (Advanced)
155- Get advance notice before tasks are due
156- Range: 0-72 hours
157- Example: Set to 2 hours to get notified 2 hours before due time
158
159### Check Frequency
160
161How often AT Todo checks for new due tasks:
162
163- **Every 15 minutes**: Most responsive, more battery usage
164- **Every 30 minutes**: Balanced (default)
165- **Every hour**: Less frequent, better battery life
166- **Every 2 hours**: Minimal battery impact
167
168**Note**: Server-side checks also run every 5 minutes regardless of client settings.
169
170### Quiet Hours (Do Not Disturb)
171
172Prevent notifications during sleep or focus time:
173
174**Enable Quiet Hours:**
1751. Check "Enable Do Not Disturb mode"
1762. Set start time (hour, 0-23)
177 - Default: 22 (10 PM)
1783. Set end time (hour, 0-23)
179 - Default: 8 (8 AM)
180
181**How It Works:**
182- No notifications during quiet hours
183- Notifications queued will appear after quiet hours end
184- Works independently on each device
185
186### Saving Changes
187
188After configuring preferences:
1891. Click "Save Preferences" button
1902. You'll see a success toast
1913. Settings are synced to your AT Protocol repository
192
193---
194
195## Troubleshooting
196
197### Notifications Not Appearing
198
199**Check Browser Permissions:**
200
2011. **Chrome/Edge**:
202 - Click lock icon in address bar
203 - Check "Notifications" is set to "Allow"
204
2052. **Firefox**:
206 - Click lock icon → Permissions → Notifications
207 - Should be "Allowed"
208
2093. **Safari**:
210 - Safari → Settings → Websites → Notifications
211 - Find your domain, should be "Allow"
212
213**Check System Settings:**
214
215- **macOS**: System Settings → Notifications → [Your Browser]
216- **Windows**: Settings → System → Notifications → [Your Browser]
217- **iOS**: Settings → [Your Browser] → Notifications
218- **Android**: Settings → Apps → [Your Browser] → Notifications
219
220**Verify AT Todo Settings:**
221
2221. Open Settings
2232. Check notification status shows "Enabled ✓"
2243. Verify device appears in "Registered Devices"
2254. Try clicking "Register This Device" to refresh
226
227**Test Connection:**
228
2291. Click "Send Test Notification"
2302. Check the response:
231 - Success: "Test notification sent to X device(s)"
232 - Failure: Error message with details
2333. Check browser console for errors (F12 → Console)
234
235### Device Not Listed
236
237If a device doesn't appear in "Registered Devices":
238
2391. Click "Enable Push Notifications" or "Register This Device"
2402. Grant permission when prompted
2413. Wait 2-3 seconds for registration
2424. Refresh the Settings page
2435. Device should now appear
244
245### Notifications on Some Devices Only
246
247If notifications work on one device but not others:
248
2491. On the non-working device, open Settings
2502. Check notification permission status
2513. Click "Register This Device"
2524. Send test notification
2535. All devices should receive it
254
255**Common causes:**
256- Device wasn't registered (no subscription created)
257- Browser permission denied
258- Browser doesn't support push notifications
259- System notifications disabled for browser
260
261### Wrong Notification Times
262
263If notifications appear at wrong times:
264
265**Check Timezone:**
2661. Verify system timezone is correct
2672. Edit a task and check the time shown
2683. Times should match your local timezone
269
270**Check Task Due Times:**
2711. Tasks without times trigger at midnight
2722. Add specific times for better scheduling
2733. Example: "tomorrow at 3pm" vs just "tomorrow"
274
275### Too Many/Few Notifications
276
277**Adjust Settings:**
278
2791. **Too many**:
280 - Disable "Tasks due soon" notifications
281 - Increase check frequency to 2 hours
282 - Enable quiet hours
283
2842. **Too few**:
285 - Enable all notification types
286 - Decrease check frequency to 15 minutes
287 - Check quiet hours aren't blocking
288
289**Notification Cooldown:**
290- Each task only notifies once per 12 hours
291- Prevents spam for the same task
292- Resets after task is completed
293
294### Browser Compatibility Issues
295
296**Best Support:**
297- Chrome (desktop & Android)
298- Edge (desktop)
299- Safari (iOS 16.4+, macOS)
300
301**Limited Support:**
302- Firefox (no background sync)
303- Older Safari versions
304- Mobile browsers (varies)
305
306**If using unsupported browser:**
3071. Switch to Chrome or Edge for best experience
3082. Or keep AT Todo open for notifications
3093. Check server logs for notification sends
310
311### Service Worker Issues
312
313If notifications completely stop working:
314
315**Reset Service Worker:**
316
3171. Open browser DevTools (F12)
3182. Go to Application tab → Service Workers
3193. Click "Unregister" next to AT Todo worker
3204. Refresh the page
3215. Service worker will reinstall
3226. Re-enable notifications in Settings
323
324**Check Service Worker Status:**
325
3261. Navigate to `/app/settings`
3272. Open Console (F12)
3283. Look for `[Push]` prefixed logs
3294. Should see "Service worker ready"
3305. Should see "Subscription registered successfully"
331
332---
333
334## Advanced Topics
335
336### How Notifications Work
337
338**Architecture:**
339
3401. **Client-Side Check** (Browser):
341 - Service worker runs periodic checks
342 - Compares current time to task due dates
343 - Shows notifications for matching tasks
344
3452. **Server-Side Check** (Background Job):
346 - Runs every 5 minutes
347 - Checks all enabled users
348 - Sends push notifications to registered devices
349
3503. **Push Service** (Browser Vendor):
351 - Chrome uses FCM (Firebase Cloud Messaging)
352 - Safari uses APNs (Apple Push Notification service)
353 - Delivers notifications to devices
354
355**Data Flow:**
356
357```
358Task Due → Server Check → Push Service → Your Device → Notification
359```
360
361### Privacy & Security
362
363**What's Stored:**
364
365- **In Database**:
366 - Your DID (user identifier)
367 - Device push subscriptions (endpoints, keys)
368 - Notification history (prevents spam)
369
370- **In AT Protocol**:
371 - Notification preferences
372 - Task data (titles, due dates)
373
374- **Never Stored**:
375 - Notification content (generated on-demand)
376 - Which notifications you viewed
377 - Device location or tracking data
378
379**Encryption:**
380
381- Push subscriptions use public/private key encryption
382- VAPID (Voluntary Application Server Identification)
383- End-to-end encrypted between server and device
384
385### Notification History
386
387Prevent notification spam with built-in cooldown:
388
389- Each task can only notify once per 12 hours
390- Tracked in `notification_history` table
391- Resets when task is completed
392- Separate tracking per notification type (overdue, today, soon)
393
394---
395
396## Getting Help
397
398If you're still having issues:
399
4001. Check the [Features Guide](/docs/features) for more details
4012. Review browser console for error messages
4023. Check server logs for notification sending
4034. Report issues on GitHub
4045. Contact via Bluesky
405
406---
407
408## Tips for Best Experience
409
4101. **Enable on all devices** you regularly use
4112. **Set appropriate check frequency** based on urgency
4123. **Use quiet hours** to avoid sleep disruption
4134. **Test notifications** after first setup
4145. **Keep browser updated** for best compatibility
4156. **Grant persistent permissions** (don't use Incognito mode)
4167. **Check "Registered Devices"** periodically to verify active devices