BUILD

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
HOW IT'S BUILT
FROM THE README

What's under it.

  1. 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.

  2. Events without code

    Add one attribute to a link, button or form. Email, phone, social and outbound links are tracked on their own.

  3. 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.

  4. Hardened by default

    Bots are filtered, ingestion is rate-limited per address, and login attempts are counted before the password is checked.

INTERACTIVE DEMO
The dashboard running in your browser on generated traffic for a made-up site.

example.com

Analytics · Demo data

1,949
Visitors▲ 5%
4,037
Pageviews▲ 4%
214
Conversions▼ 3%
11.0%
Conversion rate▼ 8%
2.1
Pages / visitor▼ 1%

Pageviews per day

Oct 14: 132 pageviews, 68 visitorsOct 15: 137 pageviews, 69 visitorsOct 16: 149 pageviews, 73 visitorsOct 17: 73 pageviews, 42 visitorsOct 18: 68 pageviews, 37 visitorsOct 19: 151 pageviews, 68 visitorsOct 20: 156 pageviews, 75 visitorsOct 21: 136 pageviews, 58 visitorsOct 22: 124 pageviews, 60 visitorsOct 23: 142 pageviews, 64 visitorsOct 24: 98 pageviews, 45 visitorsOct 25: 101 pageviews, 40 visitorsOct 26: 168 pageviews, 80 visitorsOct 27: 125 pageviews, 60 visitorsOct 28: 142 pageviews, 65 visitorsOct 29: 141 pageviews, 73 visitorsOct 30: 174 pageviews, 81 visitorsOct 31: 226 pageviews, 91 visitorsNov 1: 65 pageviews, 42 visitorsNov 2: 163 pageviews, 76 visitorsNov 3: 147 pageviews, 72 visitorsNov 4: 153 pageviews, 75 visitorsNov 5: 157 pageviews, 77 visitorsNov 6: 130 pageviews, 65 visitorsNov 7: 107 pageviews, 46 visitorsNov 8: 82 pageviews, 40 visitorsNov 9: 155 pageviews, 84 visitorsNov 10: 144 pageviews, 73 visitorsNov 11: 159 pageviews, 77 visitorsNov 12: 132 pageviews, 73 visitors
Oct 14Peak 226/dayNov 12

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.