ChrisJM All articles
Behind the Scenes

Dead Links, Warm Welcome: I Turned My Error Page Into a Corner Shop

ChrisJM
Dead Links, Warm Welcome: I Turned My Error Page Into a Corner Shop

Photo: Bryan Pready, CC BY-SA 2.0, via Wikimedia Commons

The old 404 page on this site was, and I say this with affection, an insult. One line of text. Centre-aligned. Something along the lines of "Page not found" in a font I hadn't thought about since about 2018. No navigation, no search, no apology. Just a door slammed in someone's face.

It sat there for years because an error page feels like infrastructure rather than content, so it never made it onto a list of things worth an evening. Then in late September I was looking at my referrer logs and noticed something: a couple of hundred people a month were landing on that grey nothing. Not bots, mostly. Real people following a link someone had posted somewhere in 2021, or a URL they'd half-remembered from a conversation.

That's a lot of people standing in my hallway being told to go away. So I turned the hallway into a corner shop.

The thinking before the building

I didn't want a clever page. I wanted a page that behaved like a decent shopkeeper: acknowledge the mistake, don't make a fuss, and put something useful within reach.

Three jobs, in order. Tell the visitor plainly that the page doesn't exist. Offer them a short, curated shelf of things worth reading rather than a sitemap dump. And give them one obvious way to talk to me, because someone who's ended up lost on a personal site is often exactly the sort of person who'd have something interesting to say.

The shop metaphor came from the shops near me — the proper little ones, with a hand-written price list taped inside the window and a rack of newspapers that's slightly too big for the aisle. The whole appeal of a corner shop is that it's specific to its street. It knows what its regulars want. That felt like the right register for a 404.

What went on the shelves

Six links, no more. They change roughly monthly. The rule is that everything on there has to be something I'd genuinely recommend to a friend who'd just walked in:

That last touch is daft and I love it. It costs nothing, it's two lines of code, and it quietly tells a visitor in California that a human being in Britain is probably asleep.

The bell, the cat, and the penny tray

Every shop needs a bell over the door. Mine rings — a short, slightly tinny sound — but only if you click the little brass bell drawn in the corner. No autoplay, no surprise noise in an open-plan office. It's a joke for people who choose to be in on it.

The cat is a small ASCII animal that sits on the counter and rotates through a handful of one-liners about lost parcels and misplaced URLs. It's the deliberately silly feature in the brief. Some readers have been unkind about it. Some have emailed to say it made them laugh out loud, which I will be dining out on for years.

The penny tray is the part I'm fondest of. It's a shared scrap of the page: anyone can post a link they think belongs in the shop, and I review what comes in before it appears. It's a take-a-penny, leave-a-penny job. It has produced about a dozen genuinely good links and two that made me question humanity, which is a far better ratio than the rest of the internet manages.

The build, briefly

No framework, no database, no clever routing. The page is static HTML with a bit of hand-written CSS that reuses the same design tokens as the rest of the site — same fonts, same spacing, same slightly off-green accent colour. The shelf is a plain text file that I edit by hand, parsed on build. The penny tray is the only moving part, and it's a tiny form that writes to a moderation queue before anything goes live.

Total build time was about four evenings. The bell took longer than it should have, because I insisted on generating the sound rather than shipping a sample, and then discovered I'd made something that sounds like a bicycle bell recorded in a bathroom. It's staying. It's the shop's whole character now.

So what did visitors do?

I gave it a full month and then sat down with the numbers, fully expecting to be embarrassed.

In October, the page was hit 847 times. Roughly two-thirds of those were real visits by my reading of the logs. Of the real visitors, about one in five clicked through to something on the shelves — that's a fair bit better than the old page managed, which was, in effect, nothing at all.

The contact form picked up 34 messages. Normally I'd get maybe five or six a month from the whole site. Most were a line or two saying hello. Four were proper long emails from people who'd found the site via a dead link and ended up reading for an hour. One person asked whether the cat was available for hire.

And the referrers are the interesting bit. The biggest source of 404 traffic was a forum post from 2022 discussing one of my projects. That thread had been quietly shunting people into a wall for four years.

What I'd do differently

Two things. First, I'd have kept the shelves shorter for the first fortnight while I worked out what people actually clicked — six felt right afterwards, but the data was noisy for the first week. Second, I'd have put the "did you mean..." search suggestions in from day one rather than adding them later; they take the sting out of a mistyped URL far better than a list of links can.

I would not, for the record, remove the bell. Not for anyone.

The case for dead ends with personality

A small personal site doesn't really have the option of being slick. What it does have is a voice, and the error page is one of the few places where a visitor is guaranteed to be paying attention. Nobody lands on a 404 by accident and carries on scrolling without reading.

Which means it's an opportunity going spare on most sites, mine included for far too long. If you've got a grey line of text sitting there doing nothing, stock it. Put three links, one honest apology and one daft thing on it. Cost you an evening. The people who land there will notice, and a few of them might even say hello.

Now, if you'll excuse me, the cat needs topping up.

All Articles

Related Articles

Why My Portfolio Now Has a Shelf for Things I Never Finished

Why My Portfolio Now Has a Shelf for Things I Never Finished

Carriage B, Seat 14: What I've Actually Finished on British Trains

Carriage B, Seat 14: What I've Actually Finished on British Trains

Rain, Routers and Rough Drafts: How ChrisJM Actually Gets Made

Rain, Routers and Rough Drafts: How ChrisJM Actually Gets Made