Files
Todo/SETUP_PUSH_NOTIFICATIONS.md
Paul Bailey 3f1abd527e feat: add auto-prompt for push notifications on app load
- Create NotificationPrompt component that appears 3 seconds after app loads
- Add to main layout so it shows on all pages (for logged-in users)
- Prompt only shows if permission not yet requested
- Users can dismiss temporarily or permanently
- Add slide-up animation for smooth appearance
- Create simplified SETUP_PUSH_NOTIFICATIONS.md guide

Users will now be automatically prompted to enable notifications
instead of having to go to the profile page.
2025-12-07 01:24:20 +00:00

84 lines
2.1 KiB
Markdown

# Setup Push Notifications - Required Steps
## You MUST do these 3 steps for notifications to work:
### Step 1: Install the web-push package
```bash
npm install
```
This installs the `web-push` package that was added to package.json.
### Step 2: Generate VAPID keys
```bash
npm run vapid:generate
```
This will output something like:
```
VAPID_PUBLIC_KEY=BNxxx...
VAPID_PRIVATE_KEY=xxx...
VAPID_SUBJECT=mailto:your-email@example.com
```
**Copy these 3 lines and add them to your `.env` file.**
⚠️ **Important**: Keep the VAPID_PRIVATE_KEY secret! Don't commit it to git.
### Step 3: Update your database
```bash
npx prisma db push
```
This adds the `PushSubscription` table to your database.
### Step 4: Restart your server
```bash
npm run dev
```
## That's it!
Now when users open your app:
- After 3 seconds, they'll see a notification prompt at the bottom-right
- They can click "Enable Notifications" to subscribe
- Or they can dismiss it and enable later from their profile page
## What happens automatically:
✅ Notification prompt appears 3 seconds after app loads
✅ Only shows if user hasn't been asked before
✅ Users can dismiss temporarily ("Later") or permanently ("Don't ask again")
✅ Notifications are sent when:
- Items are added/removed/completed in shared lists
- Users are invited to lists
- Invitations are accepted
- Collaborators are removed
## Testing
1. Open your app in Chrome
2. Wait 3 seconds
3. Click "Enable Notifications" when the prompt appears
4. Open another browser/incognito window
5. Log in as a different user
6. Add an item to a shared list
7. See the notification in the first browser!
## Troubleshooting
**"Push notifications not configured" error**
- Make sure you ran `npm run vapid:generate`
- Make sure you added the keys to `.env`
- Restart your dev server
**Prompt doesn't appear**
- Check browser console for errors
- Make sure you're on localhost or HTTPS
- Clear localStorage and refresh if you dismissed it permanently
**Notifications don't send**
- Check server console for errors
- Verify VAPID keys are correct in `.env`
- Make sure database was updated with `npx prisma db push`