The bell exists in two mounts — the sidebar footer on desktop and the mobile header — and both read the same shared state, so the badge always agrees. The panel shows the last 30 days of in-app rows, offers Mark all read, a one-tap sound mute, and a dismissible card offering desktop alerts.
Also called: alerts icon · what did I miss · notification panel · inbox badge
- 1The panel is portaled to the body and positioned off the bell's measured viewport rect: it flips above when there is no room below, right-aligns then clamps into the viewport, and caps its own height.
- 2Opening the panel refreshes immediately instead of waiting for the next poll tick.
- 3Clicking a row marks it read and navigates to its link.
- 4The toaster's '+N more' pill opens whichever bell mount is actually laid out.
The header records the duplication it replaced: 'pre-2.0 it ran a private 60s loop from BOTH mounts, sidebar + mobile header, doubling every request.' The portal-and-measure architecture exists because 'the bell lives in the sidebar footer at the very bottom of the screen', so a naive dropdown opened off-screen.
- Two mounts double-polling and disagreeing
- A dropdown that could not fit below the trigger
See it on your own jobs
Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.
or keep browsing features →