Satsu
Web-Analytics, die jede Interaktion und jeden Live-Besucher zeigt — ohne Cookies, ohne Consent-Banner, ohne Rauschen.

// DAS PROBLEM
Ich wollte Analytics für meine eigenen Projekte und konnte mit den Optionen nichts anfangen: Cookie-Banner, DSGVO-Aufwand, Dashboards voller Rauschen. Also habe ich Satsu gebaut. Die erste Version lief auf einem einzelnen Express-Server; ein unabhängiger Entwickler hat das Skript in zwei indonesischen Regierungsprojekten eingesetzt (mehr gibt das NDA nicht her). 2026 habe ich das Ganze als Plattform neu gebaut — sieben Services plus Tracker um eine Event-Pipeline — und öffentlich auf satsu.pro relauncht.
// WAS ICH GEBAUT HABE
Ein Tracker, der nur rohe Signale liefert — Pageviews, Custom Events, SPA-Navigation, ausgehende Klicks, Downloads, Scroll-Tiefe — in 1.953 Bytes abhängigkeitsfreiem JavaScript, gemessen am Produktions-Build.
Eine Go-Event-Pipeline — Ingest → NATS JetStream → Processor → ClickHouse — mit Bot-Filter und Geo- und Geräte-Anreicherung im Stream; der Ingest bleibt oben und puffert weiter, während alles dahinter neu deployt.
Ein eigener AI-Traffic-Channel — ChatGPT, Perplexity, Claude & Co. — dazu Goals mit Conversion-Rates, Live-Besucher und Aufschlüsselung nach Land, Gerät und Browser.
Mandanten-Struktur Organisation → Workspace → Site mit Teams und Einladungen, einer org-gebundenen Read-only-API und Stripe-Billing (Merchant of Record) mit weichen Limits: Hinweise und Upgrade-Nudges, nie gelöschte Daten.
Ein selbst gehostetes Monorepo: CI baut jedes Image, deployt pro Push eine vollständige Verify-Umgebung und schaltet Produktion nur über main frei — Docker Swarm auf Hetzner.
// DER SPANNENDE TEIL
Satsu erkennt einen Besucher, ohne je ein Cookie zu setzen. Der Processor bildet pro Tag eine Session-ID als sha256(siteId | maskierte IP | User-Agent | Datum | Salt), gekürzt auf 16 Hex-Zeichen — das Datum steckt im Hash, also rotiert die ID um Mitternacht UTC, und dieselbe Person ist morgen eine neue, nicht verknüpfbare Session. Und weil ClickHouse nur rohe, angereicherte Events speichert, entsteht alles darüber — Sessions, Bounce, Channels, Goals — erst zur Query-Zeit: Ein besserer Classifier wirkt rückwirkend auf die gesamte Historie, ohne eine einzige Zeile neu zu verarbeiten.
// IM PRODUKT


// ERGEBNIS
Live auf satsu.pro seit dem Relaunch im Juli 2026, mit freier Registrierung und bezahlten Plänen. Ein Drittentwickler hat Satsu in zwei südostasiatischen Regierungsprojekten eingesetzt (unter NDA); es verarbeitet rund 620k–1 Mio. Events pro Monat.