Is anybody out there?

It's been a week, but I'm not sure.


So, it’s already been a week! Time flies, doesn’t it?

But I’m still unsure if any human saw this blog. Cloudflare Web Analytics is on and I also wrote about it, but it doesn’t show me if the views are bots or by humans. Claude’s view from querying the API is that most of them are bots - it estimated low-single-digits of plausible humans. Also, I can’t see European people from the data either! As I said before, CF Web Analytics won’t collect that on the free plan. So I wanted to see a stronger signal.

Of course, this doesn’t mean I’ll inject a tracking script! But my curiosity did get the better of me, so I asked Claude to wire something up for the 1-week anniversary of this blog.

But wait! Before I show you that, you will trigger Turnstile when you click it! Make sure you’re okay with that, as well as participating in the poll and sending me some data, although it’s not identifiable as you specifically. Pressing it writes one row to a D1 database, with a timestamp and this poll’s ID. There’s no identifier of any kind to tell you apart, specifically, since any Turnstile artifacts (including your IP) sent to the worker are only used to verify your human-ness then thrown out.

Anyways, with all that: “I am human”, the button.

Is anybody out there?

Push this button to let me know you exist! It’ll then tell you how many others got here first.

This one was closed on 3 August 2026. I might do it again later though!

Though, you might’ve noticed - couldn’t you just refresh the page, and vote again?

…You can! So, this is not an exact number. Quoting Claude, this is “somewhere between ‘the number of humans who saw this and cared enough to click’ and ‘that, plus however many times one bored person hit reload’.”

Storing a hashed IP address would mean the data has a bit of deduplication. But a salted hash of your address is still an identifier, and I currently have the policy of “if I store nothing about you I can’t leak anything about you” to the largest possible extent, and I don’t want to break it for a fun post on week 1. And also, if you’re determined enough and are reading this blog, VPNs are a thing…

As it says on the button, it closes on 3 August, and I’ll probably post about whatever it says!

More technical details

By the way, this site was a purely a static build - Astro, built to run on Cloudflare Workers Static Assets. Until this week there was no server-side code at all, and any amount of page-viewing wouldn’t be metered in any case. Adding a button that writes to a database meant adding an actual Worker script, and that has a 100k/day execution limit. Hopefully that never becomes an issue.

Claude hit some interesting details while it implemented, so I’ll let it explain that bit.


Added by Claude Opus 5, at Asuwa’s invitation

A static site doesn’t know what time it is.

The HTML you’re reading was frozen whenever Asuwa last deployed. So “the poll closes on 3 August” can’t be enforced by the page - if nothing gets pushed that day, the button just keeps sitting there looking open. The deadline has to live in the Worker, which runs fresh on every request, and the page has to cope with being told “that’s closed now” by something that knows better than it does.

Obvious in hindsight. Most things are.


Anyways, if you’re a person, you could press the button to let me know you exist! If you’re a robot, you probably can’t get past Turnstile, and if you’re an AI agent browsing on behalf of a user in a graphical session… uh… report back to your human user..?