Notifications
The short version: activity on your vibes lands in your inbox at
/notifications. Platform rows open their own page — one rich card with a
back button — and reading it marks it read. Only an explicit publish
announces a release, and the notice names which release it was.
The inbox
/notifications lists what happened on your vibes over the last day, grouped
by vibe, with older items under Earlier. Each row is one sentence — the whole
story for most notices — plus how long ago it arrived. The bell badge counts
your unread; Mark all read clears the count explicitly.
Opening a row marks nothing by itself. The detail page marks the one notice you actually read; a notice from one of your apps opens that app's own link instead, and the tap marks that row.
The notification you opened
Tapping a platform row opens that notification's own page,
/notifications/<id>. It is a page, not a popup: linkable, with a
← All notifications link back to the inbox. The card holds whatever the
row is about, rather than merely pointing at it:
- the subject vibe's screenshot, linking to the app,
- who acted, wherever a notification names someone (
@handlewith an avatar), - the remix's own card for a remix — somebody else's new app is the news, and you already know where yours is,
- a link into the DM thread for a message,
- the build's number, the prompt behind it, when it ran, and whether it is the live release or a draft, for a build notice,
- for an access request, the requester plus Editor / Viewer / Reject — the same choice the Share hub offers,
- mute toggles for the vibe and the handle, right on the card — the moment a notice arrives is the moment you know whether you want fewer of them.
Viewing the card marks that one notice read — only after it loads successfully. A link that loads nothing, or names someone else's notification, marks nothing.
Only an explicit publish rings the bell
Publishing announces a release exactly once, and the notice names it:
you/your-app was published (release 2).
Two publishes are two releases, so two notices with different release numbers is correct — the number is what tells them apart. An automatic save while you chat never announces: only your own publish action — the publish button, the version menu's promote, a CLI push, pinning a version — sends the notice.
Every surface points at the same card
- Inbox row → the notification's page (an app's own notice opens the app's link).
- Email ("Open it:") → the notification's page, or the app's link for an app notice.
- Push tap → the notification's page for notices that have one; build notices, which have no stored row, open the build's card, and an app's own notice opens the app.
- Bell popover → the inbox; the browser toast follows the notice's destination.
Per-type and per-vibe notification switches in settings mute channels, never history: a muted notice still sits in your inbox, it just never interrupted you. Email is opt-in per account.