{"slug": "rip-guestbook", "title": "RIP guestbook", "summary": "The author retired their 90s-era guestbook, which was built with nearly 30-year-old Perl code from Matt's Script Archive, due to an increasing inability to filter out hate speech and spam without using modern, non-period-appropriate fixes. Despite enjoying the nostalgic project, they grew tired of the guestbook becoming \"target practice for jerks\" and have taken it down. They plan to potentially rebuild a more secure version using a modern language like PHP, while ensuring it remains accessible to vintage computers.", "body_md": "RIP guestbook\nI took my 90s-era guestbook down today. Here's why.\nA year ago or so I made a video about a guestbook, and ever since I've hosted it at gb(dot)donttrythis(dot)net. It's been super fun running it, and I didn't expect it would last this long!\nIf you missed the video where I introduced this, you can find it here:\n- Via YouTube: https://www.youtube.com/watch?v=ZSBYO1BYrDM\n- Via PeerTube: https://tinkerbetter.tube/w/fae4mmdJm5LN1ja5N3RjtF\nToday, I've decided to retire the guestbook.\nWhy retire such an obviously awesome thing?\nWell, to start with, you have to understand the original intention.\nI didn't make a good guestbook. I made a period appropriate guestbook. My guestbook code was swiped from Matt's Script Archive, and is nearly 30 year old code at this point. The idea was to show in a video how simple this stuff was back then, which I then made available for nostalgic purposes.\nIt was literally decades-old Perl code which I altered only small amounts in attempts to filter out spam and terrible-horrible-no-good-very-bad comments. I detailed my simple DIY captcha in the video, but basically: I added a math question to the comment form and anyone who didn't answer it correctly got kicked out.\nThe guestbook code literally overwrote the HTML hosted on the server every time it ran. This led to a ton of interesting attempts at annoying visitors, most of which were (I assume) well-meaning attempts to futz with the site for fun. But occasionally, folks have posted hate speech, which I did my best to filter using 90s-era code (and a cron on the server to yell at me when unexpected events happen).\nAs time has gone by, more and more nasty comments have gotten through, and it's becoming increasingly tough to try and regulate this without employing non-period-appropriate fixes.\nIn short: I was tired of my guestbook being target practice for jerks. So, it's gone.\nIs it gone forever?\nI'll hopefully bring back a guestbook at some point, but what I don't want to do is try and support turn-of-the-century code. (I did enough of that as a legacy dev.)\nIf I build a new guestbook, I would probably do it in a modern, fancy[sarcasm detected] language like PHP. It wouldn't be strictly period appropriate but I would spend time making sure it functioned fine on hardware from the 90s, even if the server-side code was much more modern.\nOne thing I'm going to be playing with is static site generators. SSGs can do a ton these days and I'm betting I could render things multiple ways depending on user choice or detected browser strings. My favorite SSG is Eleventy and I'm trying a few new options for dynamic regeneration of my site inside my homelab.\nI could imagine a future in which there's a more modern guestbook on this site, with security features to prevent annoyances while still being accessible to vintage computers. But, that's not ready today.\nWe can have nice things.\nI am saddened that something as innocent as a 90s-era guestbook became a target for unsavory characters.\nThat said, I refuse to accept that we can't have nice things. I wrote about this in discussing why I was going back to Mastodon: I am tired of running away when the baddies show up.\nI think the lesson here is that we should build joyful infrastructure, but we should accept on the front-end that nasty folks will try and ruin it. And understanding that at the beginning will help us build cooler corners of the internet. Whether that's an ActivityPub client or a guestbook.", "url": "https://wpnews.pro/news/rip-guestbook", "canonical_source": "https://veronicaexplains.net/rip-guestbook/", "published_at": "2024-07-01 16:28:56+00:00", "updated_at": "2026-05-23 20:11:38.214486+00:00", "lang": "en", "topics": ["web3"], "entities": ["Matt's Script Archive", "YouTube", "PeerTube", "TinkerBetter"], "alternates": {"html": "https://wpnews.pro/news/rip-guestbook", "markdown": "https://wpnews.pro/news/rip-guestbook.md", "text": "https://wpnews.pro/news/rip-guestbook.txt", "jsonld": "https://wpnews.pro/news/rip-guestbook.jsonld"}}