Welcome to Vanilla Breeze
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
Device-local reader history lens. Tracks pages the reader has visited on this device only. Stored in localStorage, never sent to a backend, never aggregated.
This is the private half of the lens family. It records pages the reader has visited on this device only and surfaces them as a most-recent-first list. The data lives in localStorage under vb:recently-visited and never crosses the network.
Reader sovereignty is non-negotiable here: the component renders both a Pause toggle and a Clear control alongside the list, and an explicit explainer that this history is local-only.
<recently-visited limit="20"></recently-visited>
| Attribute | Type | Default | Description |
|---|---|---|---|
limit | number | 25 | Max entries kept in local history |
no-track | boolean | false | Don't append the current page on connect (useful for an embed on the home page) |
empty-text | string | built-in | Message rendered when history is empty |
Two localStorage keys are used:
vb:recently-visited{ url, title, ts } records, most-recent-first.vb:recently-visited:paused"1" when the reader has paused tracking. Existence of the key is the signal — absence means tracking is active.Both keys are reader-controllable: the Clear button removes the first; the Pause toggle manages the second. Privacy/incognito modes that block localStorage degrade silently — tracking just doesn't happen.
| Event | Detail | When |
|---|---|---|
recently-visited:clear | — | Reader clears the local history |