| Signal | How | Stored as |
|---|---|---|
| Page views | beacon POST per page per session | aggregate counter per path |
| Project opens | click-through beacons | aggregate counter per project |
| Daily uniques | FNV hash of IP+UA, per-day marker, 50-day TTL | exists/not-exists — never linked to content |
| Referrers | document.referrer hostname only | aggregate per source |
| Devices | server-side UA classification | coarse buckets (mobile/desktop, browser, OS) |
The whole thing is a Cloudflare Pages Function + KV: ~200 lines, no vendor, no cost at small scale. A public dashboard shows the aggregates — transparency as a feature.
Open qalarc.com in your browser: no consent banner, no analytics vendor scripts. The dashboard shows everything we collect — because it's everything there is.
Our live analytics dashboard The privacy policy patternLogin systems, carts, remarketing pixels, cross-site ad attribution, anything storing content-linked user history. If your business needs those, do consent properly — don't bolt it onto aggregate analytics.