I’ve spent the better part of the week working to develop a custom “classic” WordPress theme that would strip things down along with disabling Gutenberg and its HTML bloat.

In the end, I utilized Underscores, although I used basically nothing from its HTML or CSS. Instead, I used it to that I could use and try to understand valid WordPress code straight from Automattic. Along the way, I ran a bunch of my custom functions through ChatGPT (which wrote most of them to begin with) to get things passed through the translation stuff, although for all I know that wasn’t even necessary.

Whatever. At least most everything under the hood is consistently written now. Up front, at any rate, there’s very little in the way of styling. Most elements are just using your browser defaults.

Disabling the block editor meant I lost the Jetpack block for Markdown but it turns out that Jetpack also lets you write in Markdown right in the classic editor anyway.

There’s at least one flaw I’ve not yet managed to solve. The post dates in the list on the front page are not supposed to show the year, the way all the other post lists do. For some reason, filtering for is_front_page() isn’t working, but I’ve set that aside to delve into over the next few days.

All of this now in place, hopefully soon I can return to blogging about things other than the blog itself, and I’ve notes for at least three posts waiting to be tackled.


  1. I’m also trying another new approach to dark mode that utilizes filter: invert(90%) hue-rotate(180deg); applied to the body selector, but for some reason it doesn’t work right on mobile Safari, which I didn’t know until I moved from my development install on the laptop to the live site here.

  2. The above dark mode error is perplexing to me, as I’ve used filter: invert() before without trouble, but in this case somehow it’s turning all links the same color, visited and unvisited alike. I wonder if there’s some sort of weird Safari bug regarding filter: invert() as applied to links that are just using the browser’s default link colors.

  3. I’ve done away with the above process for dark mode and instead am now defining dark mode styles directly. Everything should be working.

  4. I’ve put caching in place, even though the site’s pages aren’t especially heavy anyway, and I think I managed to do it without breaking NGINX.