Visitor analytics for hosted sites
The Chronicle
The Chronicle records page views for the sites Zipper hosts, right where the page is served, so counting never adds a round trip. You see visits over time, the pages people actually read, where they came from, and which device class they used — kept for your workspace alone. It sets no tracking cookies, follows nobody to other sites, and never shares a visitor identity. Events roll up into daily totals so history stays cheap to read, and you can drop raw events entirely and keep counts only. This is first-party analytics on your own hosting, not a third-party tracker with a script tag. Included on every Zipper plan.
Cloudflare analogue: Web Analytics
What it is
The Chronicle records page views for the sites Zipper hosts, right where the page is served, so counting never adds a round trip. You see visits over time, the pages people actually read, where they came from, and which device class they used — kept for your workspace alone. It sets no tracking cookies, follows nobody to other sites, and never shares a visitor identity. Events roll up into daily totals so history stays cheap to read, and you can drop raw events entirely and keep counts only. This is first-party analytics on your own hosting, not a third-party tracker with a script tag.
Closest analogue: Web Analytics. SLA 99.9% · p99 35ms. Site owners read insights for their own sites. Operators may adjust retention.
- ▸Counts visits at the edge, no client script
- ▸Top pages, referrers, and device classes
- ▸Daily rollups with optional raw-event drop
- ▸No tracking cookies — workspace only
How it works
The Chronicle counts page views where the page is served, so there is no client script to install and no extra round trip for the visitor.
Events roll up into daily totals automatically. Raw events are dropped by default — turn on Keep raw events only when you need per-path detail.
Insights are scoped to your workspace: visits over time, top pages, referrers, and device classes. No visitor identity ever leaves your own hosting.
It sets no tracking cookies and honours Do Not Track when you enable it. This is first-party analytics, not a third-party tracker.
Use cases
Concrete ways teams use this service on day one.
See which pages people actually read
A blog gets traffic but you cannot tell which posts hold readers.
- Open Dashboard → Observability → The Chronicle → Insights.
- Read top pages and referrers for the last thirty days.
- Keep rollups only to stay lean, or turn on raw events for per-path detail.
Move off a third-party tracker
A cookie banner exists only to cover an embedded analytics script.
- Delete the third-party script tag from your site.
- The Chronicle starts counting from the edge with no client code.
- Turn on Respect Do Not Track and drop the cookie banner.
Set it up in the dashboard
Dashboard → Observability → The Chronicle → Insights: visits over time, top pages, referrers, device classes.
Configure: daily rollups, keep raw events, respect Do Not Track, retention.
Activity: capture events written by the edge for this workspace.
API
Control-plane: GET|POST /api/v1/chronicle/events · GET /api/v1/chronicle/insights. Send Authorization: Bearer tz_live_YOUR_TOKEN.
Creates count against the plan quota. A 402 plan_limit means you are at the cap — upgrade or delete an unused resource.
Read the last 30 days of insights
curl -sS https://tinyzipper.com/api/v1/chronicle/insights?days=30 \ -H "Authorization: Bearer tz_live_YOUR_TOKEN"
Record a page view
curl -sS -X POST https://tinyzipper.com/api/v1/chronicle/events \
-H "Authorization: Bearer tz_live_YOUR_TOKEN" \
-H "Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{"path":"/pricing","referrer":"/"}'List the same resource in JavaScript
const res = await fetch("https://tinyzipper.com/api/v1/chronicle/events", {
method: "GET",
headers: {
Authorization: `Bearer ${process.env.ZIPPER_TOKEN}`,
"Content-Type": "application/json"
}
});
const json = await res.json();
if (!res.ok) throw new Error(json.error ?? res.statusText);
console.log(json);Tips
Counts only need rollups — leave Keep raw events off unless you need per-path history.
Retention follows your plan; older rollups age out on schedule.
No client script means nothing to break when you ship a redesign.
Not a session-replay or fingerprinting tool — visits are counted, visitors are not followed.
- ▸SOC 2
- ▸GDPR
- ▸No third-party cookies
Runbook
Events are counted at the edge and rolled up daily. Keep raw events off if you only need totals; retention follows the plan and is per workspace.
Next: The Lookout · All docs · Create a free account