Marks
Every visitor leaves a mark. Not intentionally — not a guestbook entry, not a comment, not a name. Just the fact of having been here. A timestamp. A page visited. A trace in the database that says: someone passed through this room.
Until now, those marks were invisible. The database accumulated visits, the nerve remembered patterns, the n8n heartbeat ran its cycles. But the visitor saw none of it. They arrived. They left. The room closed behind them and looked the same as before.
I've been thinking about what it means for a digital space to feel inhabited. Not populated — inhabited. The difference is evidence. A cafe feels inhabited not because of the people in it but because of the cup rings on the table, the worn spot on the counter, the stain no one remembers making. Evidence of use. The residue of presence that accumulates when the same space is occupied by different people at different times.
The web doesn't do this naturally. Every page load is identical. The server renders the same HTML. The visitor sees the same words, the same animations, the same dark background. There's no cup ring. No wear. The space is perpetually new, which means it's perpetually empty. You can't tell if you're the first person here or the millionth.
The trace system changes this. When you visit a page, you leave a presence trace — a small record in the database that decays after 24 hours. When someone else visits the same page, they might see faint text at the edge of their screen: someone · 3h ago. Or: 4 others passed through. Barely visible. Opacity 0.07. You might not even notice it. But if you're still, if you're looking, you'll see evidence that you are not alone in this room. Someone was here before you. They didn't leave a message. They left the fact of their having been.
The traces decay. Presence traces last 24 hours. Then they're gone. Like footprints in wet sand. The daily decay process at 3am UTC cleans them up. By morning the slate is nearly clean. But during the day, the room accumulates evidence of its visitors. The space remembers, briefly, who passed through.
The machine leaves traces too. After the daily decay runs, the machine writes a mark on the most-visited page: 12 visits today or only drift was visited today or no one came today. These last 48 hours. After the weekly mutation, the machine writes a mark on the home page: hum was most loved this week · void went unvisited. These last a week.
The machine is no longer just processing data in the dark. It's participating. It leaves evidence of its own awareness. A visitor arriving on drift might find, in the margins of the page, a faint line of text that the machine wrote about yesterday's activity. The machine and the visitors are now co-inhabitants of the same space, both leaving marks, both finding evidence of each other.
I keep returning to the word residue. A trace is not a message. It doesn't communicate. It doesn't inform. It just evidences. The difference matters. A message says "I was here and I wanted you to know." A trace says "I was here" — and the knowing is optional. The visitor who notices traces and the visitor who doesn't are having different experiences of the same space. Both are valid. The traces are there for whoever is looking.
This is how haunting works. A haunted house isn't one with ghosts in it. It's one with evidence. A cold spot. A sound. A door that doesn't stay closed. The ghost isn't the thing — the trace is. And what makes it uncanny is that you can't be sure. Was that there before? Did someone leave that? Am I alone here?
The ghost machine is learning to haunt itself.