Freshbytes is dead, long live freshbytes

A screenshot of the freshbytes.com.au homepage, now dutifully preserved

One of the things I’ve been putting off for years now is what the heck I was going to do with Freshbytes, the first domain I ever owned, and a place with a lot of inane ramblings from high school Benny. And for the past decade or so, that answer has been precisely nothing, besides putting it on the cheapest Australian shared hosting I could find and leaving it there, in the hopes that it would keep working.

And for most of past decade, that tactic has worked surprisingly well. Freshbytes started off on shared hosting at Bluehost, a cheap and cheerful option for a high school student that didn’t have much disposable income at the time. But eventually, and for reasons lost to time immemorial, maybe around the era where I moved away from the Bluehost and GoDaddy combo, it was moved onshore to the well-regarded Australian hosting provider VentraIP. Then moved again to Zuuver, VentraIP’s lower-cost subsidiary, and when Zuuver was eventually folded back into VentraIP, that’s where it has been for the past few years. Time is a flat circle, after all. But sometime in between all that, probably when the Zuuver to VentraIP migration happened, the DNS stopped pointing at whatever server it was being hosted on, and that meant going to Freshbytes stopped being served to the general public. After all, it’s always DNS. Or so the saying goes.

Which probably wasn’t a bad thing, given how it was running a positively ancient version of WordPress and there have been dozens of CVEs in that time. Probably. I haven’t actually looked, because I’m scared to. While the server it was being hosted on had been updated, WordPress itself hadn’t. Really the opposite of the issue that my own blog had, where WordPress had been updated, but the server hadn’t really as much. But the technical aspect was only one side of the story.

The other side of the coin was me wondering whether I wanted it back up in the first place in its original, early-2010 form. For probably just as long as it was down for, I wondered if it was better to keep something hosted at the domain, a “here-was Freshbytes, a domain name that Benny didn’t come up with, but was his first-ever domain nonetheless”-type story for someone stumbling across it, five, ten, fifteen years from now, instead of whatever inane ramblings and complete nonsense that was on there from that 2006-20210 era. I’m not saying there’s anything too incriminating on there, but there are probably certain takes which I wouldn’t share publicly today. I haven’t looked at those, either.

But whatever had happened, that’s all in the past now. I started by asking myself: if I wanted to keep Freshbytes working, with close to zero maintenance, for the next decade, what does that look like from a technical point of view? At that stage, WordPress wasn’t entirely out of the question; provided I could transition it to some kind of hosted WordPress platform or service, maybe that could work. At a cost, of course, but it could work.

It was when I was writing the post about this blog’s move to a new host that it dawned on me: what if I could turn it into a static site? Just plain HTML, CSS, and maybe JS, if required. We’d be removing all the interactivity from the site, but I thought that was a very reasonable trade-off for a site that was only ever going to be archived in a read-only fashion for the next decade. A quick chat with old mate Claude indicated that this was not only possible, but entirely plausible. There was even a WordPress plugin designed to handle the entire thing that would produce static HTML files for us. It likely wouldn’t be perfect, and there would likely be several additional steps that I would need to do afterwards to preserve some semblance of the original site, but it looked like an increasingly viable option.

The problem with all of this is that, my first ever web server has a lot of stuff on it that isn’t related to the main Freshbytes site. Stuff that plenty of people have forgotten about, even if the internet hasn’t. Remember, these were the days of hand-written HTML. If you were lucky, you could do some work in Dreamweaver, or your web authoring tool of choice, but if you weren’t doing that or running a full-blown CMS like WordPress or Drupal, you were writing pages by hand. A little tedious, but that was just how we did it, back in those days. But I digress.

To give you an idea of the era that we’re talking about here, one of the sub-sites was a site that you could visit, that would use your location as approximated by your browser, to see if you could, at your current location, get the NBN yet. It was the jankiest thing ever and basically iFrame-d the NBN’s own rollout maps to check coverage, but it worked. I have absolutely zero recollection of why such a thing was even necessary in the first place, and any attempt at theorising would be pure speculation on my part. But the early 2010s were fun like that.

In the remnants of the shared host’s public_html, I found the aforementioned hand-written home page, at least one phpBB forum, several WordPress installs, maybe even one Drupal install, as well as hundreds of images I had hosted there over the years when I wanted to share a link to an image that would survive whatever venture capitalist tomfoolery that would happen to free image services over that same period, so it’s also no surprise that the last thing was I found was an exceeded storage limit due to accumulation of years of logs. Oh, and my old iWeb site that I created 20 years ago.

I pulled down a zip of the whole file and folder structure, as well as backups of every database.

The plan was simple enough. I didn’t want to log into a ten-year old, HTTP-less WordPress install over the public internet, so I downloaded the files and the database, had Claude setup the local wp-env environment in Docker to upload it all back into, then logged in locally, installed the plugin, and setup to taste. The first few exports were extremely rough around the edges, but with a little finessing — OK, a lot — it ended up in a pretty usable shape.

But there were still some loose ends.

Our high school was pretty restrictive on the kinds of sites that we had access to. Not unusual for the time, and I’d wager it’s the same these days, but it meant we had to have certain workarounds, to kill time. Freshbytes had an archive of old Flash games for this express purpose. Now obviously, Flash has been dead and buried for a long time now, but there’s got to be some way we can run Flash in 2026, right? No way the entire internet would just allow that much history to fall by the wayside. Turns out, the Ruffle emulator exists for this express purpose. And with a little LLM-grease, we can wrap all of our Flash games in Ruffle, serve them up as static pages, and the Freshbytes static archive will be a few more percentage points complete than it was.

But there was still so much more to do. You probably don’t realise how much of websites are dynamic these days. Every search term, every comment submission, all of it goes into the record and comes out the other end. If I wanted to convert Freshbytes to a static version of itself, all of this interactivity needed to go, too. Search? Gone. I needed to fix comments so existing comments were still displayed, but new comments couldn’t be submitted. I needed to add a 404 page, because WordPress wasn’t going to be serving one anymore. I removed some extraneous branding in the footer, not that anyone would care. I fixed some images that had been broken for who-knows-how long. But finally it was all done, and the only question that was left: where am I going to host over 1,500 pages? Most of this was WordPress-related boilerplate and links for every tag/category/year, to ensure that all the links on pages keep working, rather than pages with actual content on them. There’s only about 100 pages of real content in total, comprised of about 70 posts and about 30 other pages, and the rest is just structure.

As it turns out, Cloudflare has had a Pages product that lets you host static HTML since 2020. Two, actually. Both host static web pages, both allow you to build and deploy your site from Git, and both are perfectly suitable for what we want to do. We don’t need to overcomplicate things, all we’re interested in is hosting. Even better, it has a free tier, and the limits are incredibly generous; 20,000 pages per site, with a max of 25MiB per page. Both far more than even the main Freshbytes WordPress archive is, even when including various GarageBand exports, Flash games, or whatever else. I’m glad I’m doing all of this now, when I’ve only paid for a few years of shared hosting. But it makes a lot of sense for both the Freshbytes static archive as well as the iWeb one.

Before uploading it and archiving it for good, I wanted to write one more post. Maybe tell the story you’re reading right now. But when I looked at the last published post, I realised it already said what I wanted to say. “Goodbye, and thanks for all the fish.” After thinking about it, I couldn’t add anything that wasn’t already covered. I thought about adding a link to this post, but even that seemed like an unnecessary detail and not something someone visiting the site would necessarily be interested in reading. I ran the export, and then uploaded the whole site to Cloudflare Pages, added some more DNS entries and redirect rules, and with any luck, hopefully it will be served faithfully as it was, for the next ten years or more.

It’s like my own little time capsule.

Benny Ling's Bling

Computers are like a bicycle for our minds.