I let strangers post on my own homepage

September 2, 2026 ยท Build log

On the front page of this site there's a box called the Live Wall. Anyone who visits can type a message, draw something, or attach a photo, and it appears there โ€” publicly, instantly, for everyone else who visits. No account, no login, no approval step. Right now it has a couple of greetings on it, including a ํ™”์ดํŒ…! from someone I don't know.

Several people have asked me why I'd do that on my own front page. It's a fair question. Here's the reasoning, and the parts I hadn't thought through.

Why put it on the front page at all

My first project was Drawing Playground, a real-time drawing wall for events. If you land on my site and read the words "real-time drawing wall," you have to imagine what that means, decide whether it sounds interesting, click through, and then find out. That's four steps, and most people quit at step one.

A live wall on the page collapses all four. You don't read about the thing. You do the thing, in about eight seconds, and if it's fun you already know. It's the difference between a restaurant describing its bread and putting a piece in front of you.

There's a second reason, less strategic. A personal site is usually a monologue โ€” I talk, you read, you leave. The wall makes it slightly less lonely. Somebody was here, and they left a drawing for whoever shows up next.

The question I'd been avoiding

I built the wall before I thought carefully about it, which is the honest order of events. It was fun to build, it worked, I shipped it. It was only when I sat down to write a privacy policy โ€” because Google's ad program requires one โ€” that I hit a section I couldn't fill in.

The policy was easy right up until the wall. Then: how long is a post kept? Who can see it? Is it linked to the person who posted it? What happens if someone wants theirs removed? I had a working feature and no answers, only vague intentions.

That's the thing about writing a privacy policy honestly. You can't finish it without deciding what your software actually does. It's a design document disguised as a legal page.

The decisions I ended up making

Public means public, and I say so

Everything on the wall is visible to every visitor the moment it's posted. There's no private mode and no delay. Rather than bury that, there's a line right under the wall that says so plainly โ€” public in real time, kept until it's reset, keep it kind. Someone about to post a photo deserves to know it's about to be on the internet before they tap send, not after.

I collect nothing about who posted

No account, no email, no name. I genuinely don't know who wrote ํ™”์ดํŒ…!, and the system has no way to tell me. That's partly a privacy stance and partly a load-bearing design choice: the eight-second experience only works if there's no sign-up, and no sign-up means no identity to store.

It also flips the moderation problem. I can't ban a person, because there are no persons. All I can do is remove content.

Nothing is permanent

Posts stay up until I reset the wall, and then they're gone. Not archived, not soft-deleted โ€” gone. I could have built a permanent gallery of everything anyone ever posted. I deliberately didn't, because a permanent public archive of anonymous uploads is a much heavier thing to be responsible for than a wall that clears.

I keep a delete button, and I say that too

I can remove any individual post, and the privacy policy states that I may and that you can email me to take something down. Some people would call that censorship on a public wall. I think a feature that lets anonymous strangers put images on my personal homepage, with no removal mechanism, is not principled โ€” it's just negligent. The point is that the rule is written down beforehand instead of being invented in a panic.

What I'd tell someone building the same thing

The wall is still up, and so far it's been messages like Hello!!!!! and ํ™”์ดํŒ…! from people who had no reason to say anything to me. That was worth the hour of thinking.

Go leave something on it, or read the rest of the build log.