I replaced Google Analytics with an analytics system I can talk to
- ai
- analytics
- build-in-public
- mcp
- privacy
I removed GA from my sites and built my own analytics. No cookie banner, no dashboard safari. I ask Claude questions about my visitors and it answers. It also sees the AI bots GA never could, and on one ordinary day they made more requests to my site than every human combined.
On August 1 I removed Google Analytics from my website. Nothing replaced it, because the replacement was already running. It had been collecting alongside GA for weeks, and the numbers matched.
I built it myself. It is called Peeko, and it now runs the analytics for five of my sites: this one, Weirdo, the iOS game I put in the App Store this week, and my product pages. One dashboard, a two kilobyte script per site, and a database I own. It holds this site's full history since July 7, more than 2,600 pageviews from about 1,080 visitors, most of them from the US.
This is not a post about why Google Analytics is bad. It is about what analytics looks like when you design it for how you actually work now.
Why I left
Google Analytics answers questions I never ask, and makes me dig for the ones I do. Every visit to the dashboard was a small archaeology project. Add the cookie banner it forces on your visitors, and the fact that your traffic data lives in someone else's product, and the trade stopped making sense.
The privacy-friendly alternatives are good. But they are still someone else's product, and none of them were built for the thing that changed how I work this year.
What I built instead
Peeko is cookieless by design. No banner, because there is nothing to consent to. It never stores an IP address. Visitors are counted with a hash that rotates daily, so even I cannot follow a person across days. It collects exactly what I need and nothing more.

Adding a site is a paste. When Weirdo went live on August 4, I created its site in Peeko at 19:11 and the first visit landed at 19:13. The game had analytics before it had a second visitor.
That part is table stakes. The interesting part is what sits on top.

I stopped opening the dashboard
Peeko has an MCP server. That means Claude Code, Claude Desktop, or any AI tool that speaks the protocol can connect to it and read my analytics directly.
So I do not click through charts anymore. I ask.
"How many visitors this week, and where did they come from?" "Which pages hold people the longest?" "Did the post I published yesterday actually drive anyone to the portfolio?"
The answer comes back in seconds, in plain language, with the numbers pulled live. The connection is read-only and scoped to my account. It cannot run SQL, and there is no IP for it to leak because none was ever stored.
Half my questions now get asked mid-session, while I am building something else. Analytics went from a place I visit to a colleague I interrupt. It even taps me on the shoulder: when people are on the site right now, the little LED screen on my desk lights up and tells me.
When I do open it, it shows the visit, not the person
The dashboard still exists, and I gave it the same care I would give a client's product, because the whole point of building your own tools is that nobody makes you settle.
Every human visit reads as a small story: where it came from, the pages it moved through, how long it stayed, on what device, in which country. Every visitor has a profile with a history but no identity. A journey, never a name. No IP was stored, and the hash that counted them expires at midnight.
The machines get the same treatment. Every bot has its own profile: when it first showed up, which pages it reads, what it came back for, how often it returns. Not a log line. A profile, laid out with the same care as the human ones.
Designing an analytics tool where the individual visit is legible but the individual person is unknowable was the most interesting design constraint in the project.

The visitors Google Analytics has never seen
Here is the part I did not expect. An increasing share of my traffic is not human. Recruiters' assistants, research agents, the crawlers feeding every AI model. JavaScript analytics is structurally blind to all of it, because crawlers do not run JavaScript. GA has never counted a single one.
Peeko tracks them server side. I turned that on for mahdif.com two days ago, and the first full day of data was August 5.
That day, humans made 89 pageviews here. The bots made 232.
More machine than human, on an ordinary Wednesday, and until this week I had no instrument that could see it. Thirteen different crawlers, run by ten companies.
Before that number gets away from me: about a third of those bot hits were robots.txt and sitemap.xml, which is bookkeeping, not reading. Strip those out and it is 151 real page reads against 89 humans. Still more machine than human, on a site I wrote for humans.
Some details I keep coming back to. Anthropic's ClaudeBot hit the site 40 times, but only ten of those were pages. The other thirty were robots.txt and the sitemap, checked over and over. Bing's crawler, with fewer than half the hits, actually read more of my writing. Twice, someone asked ChatGPT a question and it came to read my homepage to answer them. And the essay I published that morning was picked up by crawlers nine times before the day was out.
I rebuilt this site agent-first a few weeks ago. This is the instrument panel for that bet.

Where it reads lower, honestly
Peeko shows about ten percent fewer visitors than my old first-party setup did, because ad blockers drop third-party trackers and I have not worked around that yet. I take accurate-but-lower over inflated.
And it does far less than Google Analytics. No attribution modeling, no audiences, no funnels. If your job is ad spend, this is not your tool. It is deliberately small: it answers a builder's questions about real visitors, and now it answers them in conversation.
The reversal
For fifteen years, analytics meant a dashboard you visit to feel informed. The dashboard was the product.
It is not anymore. The answer is the product. The dashboard is just one way of looking at it, and these days it is not even my main one.