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
120602
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 Natural Earth world map with click-through admin-1 drill-down, plus doughnut breakdowns for device, browser, platform, and screen size. GeoIP runs locally, 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
Typed schema, JSON extras

Hot fields (url, referrer, geo, UA, UTMs) live in typed columns for fast queries. Anything custom lands in an extra JSON column, no migration required, queryable with SQLite JSON1 (json_extract). Bot traffic is routed to a separate table so human dashboards never have to filter it.

stack
Built in Rust, ultralight

A single statically linked Rust binary plus SQLite. Ultra performant and very resource friendly, the whole stack runs as a tiny Docker image behind your own reverse proxy. Your domain, your retention policy. No vendor, no pixel, no lock-in.