Notifications & email
Statecraft delivers notifications through two channels: an in-app bell in the editor header and transactional email. The channels cover three event kinds — new comments, replies to threads, and workspace invites.
The in-app bell
The bell appears in the editor header. An unread count shows when there are notifications that have not been opened; clicking the bell opens a dropdown listing the most recent notifications.

Each notification carries a title, a short body, and a link. Clicking the notification navigates to the linked page (a comment thread, a workspace invite acceptance page) and marks the notification as read. A Mark all as read action clears the unread count without opening each entry.
The bell updates reactively — new notifications appear without a refresh, over the same realtime connection the rest of the editor uses.

Event kinds
- New comments — a root comment on a project. Delivered to every owner and editor in the workspace except the comment author. Viewers never receive comment notifications.
- Replies — a reply on an existing thread. Delivered to every prior participant in that thread except the reply's author.
- Workspace invites — a pending invite into a workspace. Delivered to the invitee (if they have an account; new sign-ups receive email only).
Email notifications mirror the in-app events for comments and invites. Email is a per-user preference, togglable from the account profile page's notification settings. Two independent toggles:

- Workspace invites — on by default. Turning this off stops invite emails but does not stop the in-app bell or the pending- invite entry on the home screen.
- Comment notifications — on by default. Turning this off stops emails for both root comments and replies.
Every comment email contains an unsubscribe link that flips the comment-notifications toggle without requiring a sign-in. Invite emails do not carry an unsubscribe link because invitees may not yet have an account to attach the preference to.
Who receives what
The recipient rules are deliberately conservative:
- Root comments are sent to workspace owners and editors only. Viewers are read-only stakeholders and are not involved in back-and-forth feedback loops by default.
- Replies follow thread participation, not workspace role — a viewer who has replied in a thread previously will be notified of subsequent replies in that thread. Viewers do not originate threads, so they only ever receive reply notifications to threads they've participated in.
- Every recipient list is re-filtered against current workspace membership at send time. Removed members stop receiving notifications immediately.
Unsubscribing
Three ways to stop a class of email:
- In-app — open the account profile page's Notifications settings and toggle off the relevant category.
- Comment email footer — one-click unsubscribe link that flips the comment-notifications toggle without requiring sign-in.
- Leave the workspace — removes all notifications from it, since recipient lists are filtered against current membership.
The in-app bell has no per-category preference; it is always on for every kind.