Satsu
Web analytics that shows every interaction and every live visitor — without cookies, a consent banner, or the noise.

// THE PROBLEM
I wanted analytics for my own projects and hated the options: cookie banners, GDPR overhead, dashboards buried in noise. So I built Satsu. The first version ran on a single Express server; an independent developer deployed its script inside two Indonesian government projects (the rest is under NDA). In 2026 I rebuilt the whole thing as a platform — seven services plus the tracker around one event pipeline — and relaunched it publicly at satsu.pro.
// WHAT I BUILT
A tracker that ships raw signals only — pageviews, custom events, SPA navigation, outbound clicks, downloads, scroll depth — in 1,953 bytes of dependency-free JavaScript, as served in production.
A Go event pipeline — ingest → NATS JetStream → processor → ClickHouse — that filters bots and enriches geo and device in-stream; ingest stays up and keeps buffering while everything behind it redeploys.
A first-class AI traffic channel — ChatGPT, Perplexity, Claude & Co. — alongside goals with conversion rates, live visitors, and country, device and browser breakdowns.
Organization → workspace → site tenancy with teams and invites, an org-scoped read-only public API, and Stripe billing (Merchant of Record) with soft limits: alerts and upgrade nudges, never dropped data.
One self-hosted monorepo: CI builds every image, deploys a full verify environment on each push, and gates production on main — Docker Swarm on Hetzner.
// THE INTERESTING PART
Satsu identifies a visitor without ever setting a cookie. The processor derives a daily session id as sha256(siteId | masked IP | user agent | date | salt), truncated to 16 hex chars — the date is inside the hash, so the id rotates at midnight UTC and the same person tomorrow is a new, unlinkable session. And because ClickHouse stores only raw enriched events, everything above them — sessions, bounce, channels, goals — is derived at query time: a better classifier reaches back across all history without reprocessing a single row.
// IN THE PRODUCT


// OUTCOME
Live at satsu.pro since the July 2026 relaunch, with free registration and paid plans. Deployed by a third-party developer into two Southeast Asian government projects (under NDA); handles roughly 620k–1M tracked events per month.