I Over-Engineered the Sticky Note
#261007 Build

I Over-Engineered the Sticky Note

, 3 min read

I turned comments off on my Ghost blog and built a 200-character sticky note in their place, with no brief and nobody to stop me.

A sticky note is a square of paper with a strip of glue on the back. The one under this post has a Cloudflare Worker, a bot check, an approval queue on my phone and a rule about which colours it is allowed to be.

There was no brief. I'm a product manager, and this is the least product-manager thing I have done. Nobody asked for it and nothing was scoped. I built, and built some more, and overbuilt, for no one's satisfaction but my own. It was freeing.

I did have a reason. I turned comments off on this site, because sometimes people need a space just to speak, and not get replied to. A sticky holds 200 characters and, optionally, a name. That is room for "this saved me an evening" or "you're wrong about the ending, but nicely wrong", and no room for an essay. As a feature it is a text box with a limit, and I spent far more time on how it feels than on what it does.

The paper is where it got away from me. Each sticky is held on by a strip of tape in its own colour or pattern. Most are pastel, about one in four takes one of the theme's bold colours, and none is ever allowed to match the post it sits under. The handwriting is Caveat, and a long sticky is written smaller, the way you'd squeeze words onto a real one. A short sticky leaves empty paper, which apparently could not be left empty, so it gets a pencil doodle, sometimes in blue or red biro. Where it can, the doodle matches the post. A homelab post might get a little server and an F1 post a car.

Stickies also needed somewhere to go. They sit in loose rows around the blank one until there are too many, and after that they pile up with the newest on top. A tap lifts one out of the pile, larger, to be read, and a second tap slides it back under the others. They can be dragged around as well, and on a phone a sticky has to be held for a moment first so that swiping past still scrolls, which is a problem a text box doesn't have. Each visitor's arrangement stays in their own browser. Everyone else sees the pile as it was.

The crumple took the longest. Anyone who starts a sticky and thinks better of it can press the little x, or Escape. A fade would have done. The sticky crushes into an uneven paper ball, with creases and a shadow, different every time, and flies off the page. The most worked-on part of the whole system is the part for people who decided not to use it. I would have cut it from anyone else's roadmap.

Getting one onto the wall has its own machinery. Cloudflare Turnstile checks that the visitor is a person, without setting a puzzle. Pressing the push pin shows the sticky to its writer, marked as waiting, and sends it to my phone with two buttons, approve and delete. Nobody else sees it until I've pressed one. Members skip the check and the wait, and theirs go up at once in a hand-drawn frame. Mine carry a small Author stamp and a double frame, and I get the same 200 characters as everyone else.

All of it runs in a Cloudflare Worker, the same one that handles the red SEEN stamps under posts and a lot of other jobs specific to this site. That is why Dungeon, the theme, is open source and the Worker isn't yet. The next piece of overbuilding is to pull stickies out into a Worker of their own that anyone can use, on any blog platform, with or without Ghost.

The one thing I refused to build was replies. There are no threads, likes or counts of who agreed with whom. Anyone who feels like answering a sticky can write another sticky, and whoever wrote the first one would have to dig through the pile to find it, and then guess whether it was meant for them. One reply invites another, and soon the space under a post is about the people in it. A comment box is a forum and a sticky is a note on the fridge, and nobody argues with a fridge note. If something deserves a longer answer, it probably deserves its own post.

There's a blank sticky under this post. It has room to say that the whole thing is overbuilt, and an x in the corner for anyone who'd like to see where the time went.