Skip to content

docs(notifications): spec per-type notification preferences (email + bell) - #1156

Open
leahpeker wants to merge 3 commits into
mainfrom
spec-push-notification-prefs
Open

docs(notifications): spec per-type notification preferences (email + bell)#1156
leahpeker wants to merge 3 commits into
mainfrom
spec-push-notification-prefs

Conversation

@leahpeker

@leahpeker leahpeker commented Jul 24, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • adds .claude/docs/spec-push-and-notification-prefs.md — phased spec for push notifications (web push first, Capacitor/FCM later) and per-type notification opt-outs
  • key design points: opt-out-only NotificationOptOut model enforced once at notification creation (SSE + push inherit prefs for free), grouped settings toggles with a separate email toggle for types that also send email (event invites, co-host invites, check-in nudges), and splitting event_comment into event_comment_hosting / event_comment_attending — the attending fan-out is net-new (attendees currently get no comment notification)
  • builds on spike-native-push.md and app-store-readiness.md; supersedes the spike's raw-APNs sender choice with FCM

Test plan

  • docs-only change — review the spec content, especially the open questions section

Phased spec: notification opt-outs (model + prefs API + settings UI),
event_comment split into hosting/attending (attending fan-out is new),
web push (PWA) first, Capacitor/FCM later. Builds on spike-native-push.md
and app-store-readiness.md.
no push infrastructure exists (no service worker, capacitor shell, or fcm/apns
dependency) and push isn't wanted, so phases 3-5 are cut. phases 1-2 stand:
per-type opt-outs across the two real channels, and the hosting/attending
comment split.

decisions folded in: checkin_nudge and rsvp_declined_note are host-facing and
always on; milestone/blast email keys stay deferred. renamed the file since it
is no longer a push spec.
@leahpeker leahpeker changed the title docs(notifications): spec push notifications + per-type preferences docs(notifications): spec per-type notification preferences (email + bell) Aug 1, 2026
@leahpeker

Copy link
Copy Markdown
Collaborator Author

rescoped: push cut, email + bell only

Confirmed there is no push infrastructure in the repo — no service worker, no Capacitor shell,
no FCM/APNs dependency. Push isn't wanted, so phases 3–5 are removed and the file is renamed
(spec-push-and-notification-prefs.mdspec-notification-prefs.md). The push research
survives in spike-native-push.md / app-store-readiness.md if it's ever revived.

Phases 1–2 stand: per-type opt-outs across the bell and email, then the hosting/attending
comment split.

Decisions folded in:

  • checkin_nudge and rsvp_declined_note are host-facing and now always on — a host needs
    to know who can't make it and that check-in is open. Both dropped from the settings UI table.
  • Bell and email are independently toggleable per type.
  • Milestone-reminder and event-blast email keys stay deferred.
  • Push-title question is moot and removed.

One open question left, which overlaps Issue 1143: RSVP confirmation emails are scoped to
send on all status transitions including waitlist promotion, so they need a NotificationType
to hang an email toggle on. waitlist_promoted exists (with no producer at all today), but a
plain "you're going" confirmation has no type yet. That gets decided here or in 1143.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant