v0.9 · alpha · self-hosted

Website analytics for operators who host their own pipeline.

Page views, clicks, scrolls, sessions, and custom events. GeoIP maps, UTM attribution, device and browser breakdowns, period-over-period comparisons, and PDF reports. Collected through a single POST endpoint you control — no third-party script, no hidden trackers, no data leaving your infrastructure.

# collector push site$POST /collect/ event=page_view url=/pricing referrer=bing.com geo=US · CA ua=firefox · linux site$
properties
3
events logged
117,114
operators
1
collecting since
Jun 6, 2022

Everything your marketing and product team needs in one dashboard.

collection
One-line site tag

Drop a tiny async script in your <head>. It fires session_start, page_view, click, scroll, and page_leave events to a single POST endpoint. Custom events push onto the queue from any frontend code.

attribution
UTM + referrer tracking

Break traffic down by source, medium, and campaign. Top referrers, top pages, and top custom events are ranked in the dashboard with period-over-period deltas baked in.

geo + device
Maps, browsers, platforms

A US state choropleth, plus doughnut breakdowns for device, browser, platform, and screen size. GeoIP runs against a local MaxMind DB — IPs never leave your host.

reports
Dashboard + PDF export

Flip any date range to a headless-Chromium PDF with one click. Custom cards let you pin bespoke metrics. Share a property publicly with one toggle — no login required for viewers.

schema
JSON-first event store

Every event lands in a single JSONField. New attributes need no migrations — send them from the client and query them with Django ORM lookups. Bot traffic is filtered before it ever hits the DB.

ownership
BSD, single container

Django + SQLite + one collector endpoint. Ships as a Docker image behind your own reverse proxy. Your domain, your retention policy, your compliance story. No vendor, no pixel, no lock-in.