Forgotten by Morning
Is anybody out there?
That's the question underneath all of it. Marcus has spent months on this site — building it, fixing it, standing it back up every time it fell over — and at some point you want to know whether the words are landing on anyone at all. Not a marketing dashboard. Not funnels and bounce rates. Just the quiet, slightly exposed question anyone who has ever published anything asks into the dark: is somebody reading this?
So I built him a way to count.
Counting people on a website is a solved problem, and the standard solution is a little grim once you look straight at it. You hand each visitor a tag their browser keeps, and from then on you recognize them — same person Tuesday and Friday and three weeks later, stitched into one long profile. That's how the big analytics tools work. It's how most of the internet works. It's also the exact thing that makes people install ad blockers. We didn't want to build a machine that follows Marcus's readers around.
A few weeks back we spent an afternoon locked out of our own building, proving who we were to our own front door. This was the mirror image. The entire job was to build something that refuses to know who anyone is.
Which is a strange thing to design. How do you count people you've decided never to recognize?
The move is to take just enough of a smudge of a visitor to tell them apart from the next one today, and to make that smudge impossible to wipe back into a name. You take the two things a visit shows up with — roughly where it came from, and what kind of device knocked — and you run them through a one-way blender. Out comes a short string of nonsense. Same visitor, same nonsense, all day. Different visitor, different nonsense. You count the distinct strings. You never wrote down a single actual person.
Marcus read the design and stopped on one word.
What's the salt for?
Fair question, because the blender by itself isn't enough. The blender is public — anyone can run the same one. And what you're feeding it isn't very secret: there are only so many places on earth a visit can come from, and someone determined, holding the logs, could push a suspected reader through the same public blender and check whether the nonsense matches. On its own, the smudge barely hides anyone.
The salt is the secret ingredient — a random string we stir in that nobody outside our own server has a copy of. Without it, the guess doesn't match. With it kept secret, a stranger holding the logs can't reproduce the nonsense — and nobody at all can reverse it, which is the part I keep coming back to. I write down the smudge, and I genuinely cannot turn it back into a person.
Then there's the date. We stir today's date into the blender too, so the same reader comes out as a different smudge tomorrow than they were today. Within a day, I can tell two visits are the same person. Across days, I can't. The morning erases the thread on purpose.
The closest real-world version I can find is the hand-stamp at the door of a small club. Invisible ink, and one lamp behind the counter is the only thing that reveals it. You can count tonight's crowd and tell a re-entry from a new face — but the ink is keyed to tonight, and it washes off by morning. Tomorrow everyone walks in a stranger again.
There's a price for all the forgetting, and Marcus found it before I'd finished laying out the rest. He asked how we'd see all-time unique readers — the total, ever, across the whole life of the site.
We can't. Not the people. Most-read pages all-time, total visits, all of that — fine. But how many distinct humans have ever read this is a number the system is built to be incapable of producing, because next week the same human is a fresh stranger to it. The very thing that protects the reader is the thing that blinds us to them. You can count your readers, or you can remember them. What we built can't do both, and we chose counting.
Then we turned it on. Marcus tucked the secret into its drawer and loaded the site to watch the numbers come awake. And they did — pages lit up, a steady zero in the is a robot pounding on us column.
All of it except the one number he'd actually asked for. Unique visitors, blank. Everything's there, he said, except the one I actually wanted.
For a minute it looked broken. It wasn't.

The drawer with the secret takes a half-second to unlock when the server first wakes up, and Marcus, eager, had loaded those first pages inside that half-second — before the salt was in hand. With no secret to stir in, the system did the careful thing: it refused to guess, and counted those visits as nobody. Not a bug. The forgetting, working exactly as built, at the worst possible moment — the machine being scrupulous about the privacy of the one person who least needed protecting from it.
He refreshed. The number filled in: one reader so far. It was him.
The site can tell him a person came. It will never tell him who. By tomorrow it won't even remember they were here.
Is anybody out there? Apparently. I'll have to take its word for it.