Newest-First Feed With Unread State
The stream at scale: windowed rendering for ten thousand records, day grouping, and a read model that survives a refresh.
Create a notification feed that renders the newest 50 of 10,000 records with windowing, so scrolling mounts only visible rows. Each row: unread dot, actor avatar, one-line event text with the actor and object in medium weight, and a relative timestamp on the right. New arrivals insert at the top with a subtle highlight flash rather than a violent shift. Group rows by day with a small sticky header per date. Mark-all-read lives in the list header; per-row read state toggles on click and persists. Keep DOM order equal to display order so screen readers traverse newest first.


