Labs · First-party analytics
Private analytics, without the trackers.
Private website analytics and a till that runs in the browser, crunching the numbers for you — so you can get on with the work that matters.
First-party means the analytics are part of your build, not a service bolted onto it. Your own site records the visit, into your own database, and nobody else gets a copy. The dashboard below runs on sample figures, shaped like a real shop's.
Traffic · sample data
Visits
1,847
Takings
£12,070
Top source
Cookies set
0
Visits per day
peak 97
Where the visits came from
- Instagram1,284
- Direct / QR code806
- Google731
- Facebook402
- Newsletter217
- Local press96
Read off the referrer and the campaign tag on the link — not from following anyone around. A visit from Instagram is a visit from Instagram; it isn't the same person you saw on another site last week, because there is nothing to match them with.
Takings, till and website together
£12,070
- Website£6,310214 orders
- Counter · tap-to-pay£4,820386 orders
- Phone order£94041 orders
One build runs the shop and the till, so there is one set of numbers rather than two to reconcile at the end of a shift. Card payments at the counter land beside the web orders, same day, same figure.
Most-read pages
/order3,120/2,874/order/celebration-cakes1,466/crumb-club903/about611
Why there's no banner
No cookies. Nothing stored on your device.
A consent banner exists because of what a site puts on the machine in front of you. The rules ask for permission to store or read information there — a cookie, something in local storage, anything that persists after you leave. Turret's tracking stores nothing on the device, so there is nothing to ask permission for.
Visits are counted on the server, from the request itself: which page, which referrer, which campaign tag was on the link. To avoid counting one person five times in an afternoon, the request is reduced to a salted hash that is thrown away nightly and never stored in the raw.
That hash is still information about a visitor, so it belongs in your privacy notice like anything else. What it isn't is a tracker: it cannot follow anyone off your site, and it is gone by morning.
One stored event, in full
{
"event_type": "page_view",
"path": "/order/celebration-cakes",
"referrer": "https://www.instagram.com/",
"utm_source": "instagram",
"utm_medium": "social",
"utm_campaign": "spring-window",
"session_id": "sha256(ip + user-agent + daily salt) → 9f2a…c41b",
"created_at": "2026-02-27T09:14:22Z"
}That is the whole record. There is no second table holding the parts that would name someone, because those parts were never collected.
The trade you're not making
What each one takes from a single page view.
A third-party tag takes
- A persistent cookie with an ID that survives the visit
- That same ID on every other site running the tag
- Device, screen, fonts, timezone — enough to fingerprint
- An advertising profile the visitor never sees
- Data leaving the country you host in
Yours takes
- The page that was viewed
- Where the click came from
- The campaign tag, if there was one
- A salted hash that expires daily, to count a visit once
- Nothing else, and nothing stored on the device
The data sits in your own database, on your own hosting, and nobody sells it on. It is the same argument as the rest of the build: the shop build keeps its own numbers this way, and has no consent banner in it to dismiss.
Talk to us about yours