Analytics Dashboard
Privacy-first web analytics you host yourself: a small tracking script and a login-protected dashboard, with no cookies and no third-party scripts.
- STACK
- Next.js 16 · React 19 · TypeScript · SQLite
What's under it.
- No cookies, no storage
A visitor ID is a keyed hash of address, browser and today's date. It can't be reversed and can't follow anyone across days. No raw addresses are stored.
- Events without code
Add one attribute to a link, button or form. Email, phone, social and outbound links are tracked on their own.
- Two dependencies
Next and React are the only runtime dependencies. The database is Node's built-in SQLite, and every query is a fixed, parameterized string.
- Hardened by default
Bots are filtered, ingestion is rate-limited per address, and login attempts are counted before the password is checked.
example.com
Analytics · Demo data
Pageviews per day
Top pages
- /2,010
- /pricing916
- /about395
- /blog/launch335
- /blog/privacy-first-analytics228
- /docs/getting-started153
Traffic sources
- Google708
- Direct528
- LinkedIn167
- newsletter145
- Instagram120
- news.ycombinator.com80
- DuckDuckGo73
- Bing61
Events & clicks
- Signups ★86
- Learn more73
- Contact form ★57
- Outbound links54
- Email clicks ★33
- LinkedIn28
- GitHub26
- Purchases ★25
- Phone clicks ★13
★ counts as a conversion
Devices
- Mobile2,373
- Desktop1,477
- Tablet187
Browsers
- Chrome1,834
- Safari1,770
- Edge194
- Firefox134
- Other105
Top cities
- Los Angeles, California311
- New York, New York255
- London, England200
- San Francisco, California184
- Toronto, Ontario148
- Austin, Texas132
- Seattle, Washington114
- Berlin, Berlin110
- Bengaluru, Karnataka97
- Chicago, Illinois96
Approximate. Unique visitors.
Countries
- United States1,092
- United Kingdom200
- Canada148
- Germany110
- India97
- Australia96
- Netherlands74
- Japan69
First-party · cookieless · bots excluded. Visitors are counted once per day per browser, by a keyed hash that changes daily.