Opting Into Simplicity
This blog turns nineteen next month. Where did the time go?!
I started it in November 2007 because I was snowed in. A storm had come through, I was working from home, and I spent the day poking at a test server instead of doing anything sensible. The first post is called A day spent on tuning, and it is about an hour-long load across eighteen databases that I wanted to make quicker — and, while I was in there, simpler. Faster and simpler, like those were obviously the same job.
It is 743 characters long and it stops, mid-thought, on the sentence “So how does the current process work?”
I’m fairly sure there used to be more of it. Somewhere in nineteen years of upgrades and server moves and plugin churn, the rest of that post evaporated, and I couldn’t tell you when. The oldest copy I can find anywhere, including the Internet Archive, is from 2017, and it was already a stub.
So my first post is a question I apparently answered, in a paragraph that no longer exists.
Nine years of sediment
Until recently this ran on WordPress on a little Ubuntu box I rented from DigitalOcean — one gig of RAM, twenty gigs of disk, in a data center in San Francisco. The droplet was nine years old. Nine years! Nothing was wrong with it. It was patched, it was up, it served pages.
But I went in to take stock and found eight Apache virtual hosts. Some I still cared about. The
rest were ghosts: a domain for a business I closed, a subdomain I killed off last month, a user
group site that stopped resolving at some point without anyone noticing, me included. There was a
phpinfo() dump sitting at a guessable URL because one day in 2016 I needed to check something and
then just… didn’t delete the file.
That’s the part that got me. Not that any of it was dangerous — that I’d been paying for this machine since 2017 and it had quietly silted up with my own leavings. Configs for companies that don’t exist. Certificates for hostnames nobody has typed in a decade.
None of it was dramatic. That’s rather the point. The number of things that could one day want my attention only ever went up, and the number of evenings I wanted to spend being a sysadmin for my own blog did not.
WordPress was good! I just wasn’t using most of it
The easy version of this post is a WordPress dunk, and that version would be dishonest.
WordPress ran this site for nineteen years. Its whole deal is modularity — if you need a thing there’s a plugin for the thing, and you can hand the editor to someone non-technical and they can go write. That’s a hard problem, well solved, and it’s why WordPress runs such an enormous slice of the web.
But a system that can do anything has to be maintained like one, whether or not you use any of it. Mine was PHP, MySQL, a theme, a plugin stack, and a login page sitting on the open internet — all of it in service of 299 posts of text and pictures. And when it came time to leave, WordPress was a perfect gentleman: every post, page, comment, category and tag came out through its own REST API, no plugin, no scraping, nothing subtly lossy. Software that hands you all your data on the way out the door is good software. I left anyway.
Because a static site has no login page to brute force, no database to inject into, no plugin to go unmaintained, no PHP version to age out from under me. Those failure modes don’t get handled. They stop existing.
That’s what I was after. Not a faster blog — a blog with fewer ways to go wrong, one that will still be sitting here in ten years whether or not I’ve been paying attention.
The links had to hold
Going static is easy. Not breaking nineteen years of links is not.
There are 299 posts here and I have no idea where most of them are linked from. Forum threads. Other people’s blogs. Somebody’s bookmarks. A support note somewhere. Those links were made by people who found something here useful enough to point at, some of them a decade ago, and not one of them should have to find out I reorganized my site.
So every URL survived exactly as it was. Posts, pages nested three deep, category and tag archives, date archives, the paginated home pages, the feed — all at the addresses WordPress served them from. The build walks every internal link in its own output and refuses to finish if even one doesn’t resolve, so I know nothing broke instead of hoping.
Given how this post started, you’ll understand why I was careful.
An excuse to write real HTML
I rebuilt the front end on Pico CSS, which is classless: you write semantic
HTML and it styles the elements. A <nav> with a list in it looks like a nav. An <article> looks
like an article.
I won’t pretend this was a hardship. I like tight semantic markup and I don’t get many excuses anymore. It felt like building a page twenty years ago, except the defaults are good now.
The upshot, which I didn’t plan and don’t much care about: a page here is about 6.5 KB if you’ve been before. No JavaScript runs. Nothing on it phones anybody. That’s all downstream of having less, and having less was the idea.
The name
You may notice this used to be called jason’s hyperion blog. Hyperion hasn’t been a product name in years, and honestly it only ever appeared as a tag on twelve of these 299 posts — the umbrella the category sat under, never the subject. The name outlived the thing it named.
It’s jason w. jones now. Nothing moved. Every old link still works.
Which is roughly where I came in. Snowed in, nineteen years ago, writing about an hour-long process I wanted to make quicker and simpler and not bothering to tell the two apart.
I wouldn’t have called that a philosophy at the time. Turns out I had one anyway.