Nearly Respectable
Nate's personal website and blog
HOME ARCHIVE TOPICS ABOUT ME
DISPATCHES
I made a blog engine

RESOURCES
Control Panel
Status Page
I made a blog engine
Posted on: 2026-05-17 15:23:28 Hits: 278 Tags: blog , cyberblvd , pisspot , tech

I occasionally have thoughts and ideas that I would like to share with the world.

Do I post them to Facebook? No. That's for photos of kids and travel. Do I post them to X? I never really got the point of Twitter/X, so I never signed up. Maybe I could make a YouTube video, but video is hard to grep. I considered just blasting out emails to everyone in my address book like it's 1997, but then people might start emailing me back and expecting me to reply to their emails.

A blog is probably the right format.

I never got into blogging during the heyday-- too busy doing other things. As I understand, most people who blog today do it through sites like Medium or Substack or other blog-as-a-service providers. That model never really sat right with me. I want an internet where people stand up their own servers and broadcast their messages to the world without censorship, and those kind of centralized services are antithetical to that ethos.

It's easy enough to provision a server and a domain name, but how should I actually serve the blog? I considered just writing static HTML, but that's kind of annoying. There are several static site generators available, but I prefer having a GUI. Debian packages WordPress, but I don't want to run that monstrosity. What to do?

While I was debating this, I also happened to be evaluating agentic coding tools for personal use. I was already an early adopter of agentic coding tools at work, but I wanted to try some new things in an environment that doesn't have pressure to ship. I had already implemented Pisspot, a modern CGI web framework for Python, so implementing a blog using Pisspot seemed like a great opportunity to try the framework and find any pain points. The "CyberBlvd" blogging engine, which runs this website, was the result of that work.

Since I was building a CGI web application, I thought it might be fun to use some other throwback technology-- HTML 3. This is the version of HTML that powered the mid/late 90s web, which is also when CGI was last relevant. You can think of it like a language of the Bronze Age. It's the peak of the pre-Modern Web. It's missing support for Javascript and CSS, which are the features that power modern, rich web applications. By contrast, writing HTML 3 is less about building applications in the browser and more about building hypertext documents, making it much closer to the original vision of the World Wide Web.

It was actually a lot of fun getting the coding agents to write HTML 3. Through elaborate prompting and context in the coding environment, I engaged the coding agents in a role play as if I were in 1999 at the peak of the first web bubble, and the agent and I were communicating through a bi-temporal socket. They were instructed to be very careful not to leak anachronisms into the public facing parts of the blogging engine. We wrote a lot of strict validators for output to prevent this. Because there's no pip in 1999, and Python libraries had to be "smuggled" back in time, the dependencies for the blogging engine are very light-- the aforementioned Pisspot framework, a markdown library, and an HTML DOM manipulation library.

Overall, I'm pretty happy with the result. It looks and feels like old-school web because it's implemented like old-school web. One side-effect of this is that it's very fast. The page loads and renders almost instantly in the browser. It reminds me how much we get used to loading 20 MB of React and waiting 5 seconds while everything renders and moves around in the browser window.

There are a few small things I need to fix/tweak in CyberBlvd, but it's now at the point where I'm ready to release it.

Now I just need to figure out what the hell I'm going to blog about.

CyberBlvd Engine Certified HTML 3.2 Compliant - Best viewed in Netscape Navigator 4.0