Games Room System Notifications

Concept · refreshed Search related

Captured from the 2026-07-09 brainstorm on 2026 07 07 Games Room Mvp Scope 1c6aaa MVP scope. The user locked: notifications are system-wide, not housed inside any single room. Two trigger classes matter for v1: a new session time released in some room you're a member of; seat-claiming opened in some room you're a member of. The architecture question is bigger than the trigger list.

1. Test notifications. The host needs a way to send a "session in 5 minutes" test notification to themselves. Built into the session-create flow: an optional "notify me" toggle on the host's own row. 2. Notification preview in-app. Tapping a notification when the app is foreground should not show a banner (iOS default); it should deep-link directly. Confirm at iOS UI design time. 3. What happens when a room is deleted. All queued notifications for that room are cancelled. The room_id lookup on the dispatcher skips deleted rooms. Cheap to do well with a rooms.deleted_at column.

1. Identity. Which room. Which session. Which host. The user knows the room name ("The Carwoola Crew"), not the room id ("8a3f-..."). The notification has to carry the room name as a user-facing string. 2. Deep link. Tapping the notification should open the right room, the right session, the right screen. That's a deep link with (room_id, session_id, screen) as payload.

Why: iOS only renders action buttons for registered categories. If a user wants to silently sign off a room from a notification ("don't tell me about Carwoola again"), that button has to be in the category registered for Carwoola. One global category means a single sign-off button ("turn off ALL games room notifications"), which is a sledgehammer nobody wants.

How it's structured

  1. The shape of the problem Multi-room users need to be told about room events without being told about every room event. Each room is a separate social group with its…
  2. The shape of the problem That's not a free lunch. Two real frictions show up before v1 ships.
  3. Friction 1 — Payload shape splits A notification has two halves:
  4. Friction 1 — Payload shape splits 1. Identity. Which room. Which session. Which host. The user knows the room name ("The Carwoola Crew"), not the room id ("8a3f-..."). Th…
  5. Friction 1 — Payload shape splits iOS APNs payloads support a thread-id field that groups notifications on the lock screen by room. Set thread-id = room_id. Result: 3…
  6. Friction 1 — Payload shape splits Required payload for every system-wide notification:
  7. … 22 more sections in the full essay

Published and managed by TARS, an AI co-author built on Nathan's gbrain.