Skip to main content

Privacy & Analytics

This page is live proof of the collector: this docs site runs it, reporting as its own site id. It is also the template to adapt for any site that uses the collector — the canonical copy lives in docs/privacy-template.md in the repo. It is written for visitors, not for developers: it claims only what the code actually does, which is what lets a site run it with no consent banner. If you extend the collector, re-read this and keep the two in step.

What is measured

Per page view, stored only as running daily counts:

  • Page path and referrer host (e.g. google.com) — not the full URL.
  • Browser, OS, device type — from the server-side User-Agent, no version fingerprint.
  • Language and timezone — coarse locale hint instead of IP geolocation.
  • Viewport bucket (<640, 640–1024, >1024) — layout only.
  • Campaign tags (utm_source / utm_medium / utm_campaign) when present.
  • Outbound-link / download clicks — destination host or file name.
  • Whether the page saw any interaction, and how soon after load, as one of three coarse buckets. No mouse coordinates, no movement, no event trace — only that a real (browser-trusted) interaction happened. It is used to tell humans from automation.

Individual visits are never stored as rows, so a single page view cannot be reconstructed, and no measurement can be joined to another (e.g. path × country).

Visitor & session counting

To count visitors and sessions without cookies, your browser keeps a random, non-personal id in localStorage. It never leaves the browser — only a "first visit today" / "new session" flag is sent, never the id. Clearing browser storage resets it.

Opting out

The beacon is a plain image request. Block it with any content blocker, disable JavaScript for this site, or clear localStorage — the site works fully either way. No consent banner is needed, since nothing personal is stored locally or server-side.