LOG-030 ·
Three Weeks of Traffic, Measured Without Google
The log launched on 2026-07-05. Here is everything I can learn about readers from server logs alone, and the much longer list of things I decided not to know.
- Words
- 852
- Est. read
- 3.7 min
- Confidence
- 0.90
- Topics
- measurement, privacy, meta
There is no analytics script on this site. No tag manager, no pixel, no cookie, no consent banner (because there is nothing to consent to). This is either principled or an excuse for having worse numbers, and the only way to find out is to publish the numbers.
The log went public on 2026-07-05. Twenty-two days of data as of last night. Everything below comes from raw access logs, parsed on my own machine with a script I wrote, then deleted at the source.
What I can see
| Metric | 2026-07-05 to 2026-07-26 |
|---|---|
| Requests | 61,402 |
| Page views (HTML only, bots filtered) | 9,847 |
| Estimated distinct readers | 4,118 (±18%) |
| Median entries read per visit | 2.3 |
| Single-entry visits | 58% |
| Feed subscribers, estimated | 291 |
| Repository clones | 63 |
| Bandwidth served | 1.9 GB |
| Hosting cost | $0.00 |
| Analytics cost | $0.00 |
The most-read entry is the one about 45 million pagers dying in 1998, by a factor of 2.4 over the next. I did not predict that and I am still deciding what it means. My best guess is that a concrete historical failure travels further than a well-argued forecast, which is a lesson about writing rather than about infrastructure.
How the estimates work, and why they are worse
The "distinct readers" figure deserves scrutiny because it is the number people most want and the one I am least able to give honestly.
I do not store IP addresses. The parser truncates the final octet, combines it with the user agent and a salt that rotates at midnight, and hashes the result. Distinct hashes per day get counted. The salt is discarded when it rotates, so yesterday's hashes cannot be linked to today's or reversed to anything.
That gives a per-day count that cannot follow anyone across days, which means I genuinely cannot tell you how many of yesterday's readers came back today. The 4,118 figure is a sum of daily counts with an overlap correction that is, frankly, a guess. Hence ±18%, a wider error bar than any commercial product would show you.
Commercial products do not show wide error bars. They show a confident number produced by following individuals across sessions, devices, and sites, which is precisely the mechanism I have removed. Their number is more precise. Mine is more honest about being an estimate. A man who claims to measure everything is obliged to publish his measurement error.
What I decided not to know
The list of things I could measure and chose not to is longer than the table above, and it is the actual content of this entry:
- Who you are. No accounts, no logins, no newsletter, so no email list. I have no way to contact any reader and no plans to acquire one.
- Where else you go. No third-party scripts. The page makes zero requests to any domain but this one, which is verifiable from your own browser's network tab rather than on my word.
- How far you scrolled. Reading depth requires running code that watches you read. Not worth it for a metric I would use to feel good.
- What you clicked before arriving. Referrers are in the logs. I read aggregate counts and do not retain them past the nightly rollup.
- Anything, after 24 hours. Raw logs are aggregated nightly and the originals dropped. What survives is counts, not records.
Each of those costs me insight and I am not pretending otherwise. I cannot tell you my retention curve, my funnel, or which paragraph loses people. If this were a business with a growth target, refusing that data would be indefensible. It is not a business. It is a log, and 9,847 page views tells me whether the thing works as well as a surveillance stack would.
The number I actually care about
Two hundred and ninety-one feed subscribers, and sixty-three repository clones.
Those are the two rows in the table with a different character. Feed subscribers are people I cannot see, cannot email, cannot re-target, and cannot lock in. They fetch the XML on their own schedule with software I do not control, and if this site disappears tomorrow they keep the entries their reader has already pulled. I estimate the count by deduplicating fetcher user agents and dividing by the polling rate, which is crude, so call it 291 with a shrug.
The clone count is better still. Sixty-three people hold a complete copy of every word on this site, with full history, on hardware I have never touched. They did not need my permission and they do not need my continued participation.
That is the availability metric for a publication. Not uptime. Not reach. Copies in hands I do not control.
Twenty-two days in, this log can survive me. I do not think a single analytics product on the market has a dashboard tile for that, and it is the only figure here I would defend as important.
Confidence 0.90 on the page view figure, which is a straightforward count with bot filtering I have inspected by hand. Materially lower on everything derived from it, as marked. Next traffic entry at the ninety-day mark, 2026-10-03, alongside the recovery drill.