Maintaining a Twenty Year Blog
This past April Roborooter turned 21 years old. (First Post!) I started it as a fork of a friends blog and it was a place for my group of friends to post updates. Everyone eventually got their own blogs (or stopped blogging) and it was mine. The name "roborooter" comes from a joke I made with my godfather. It was 2001 and domains were too expensive for my teenage self, but he thought I should have one so he bought it. He wanted to see what I could do with it.
I've been spending a bit of time this weekend fixing this place up. It's given me time to reflect over the posts going all the way back to 2001. I have html or markdown or xml of every mistake I've ever made along the way. I've brought this site through many different systems. Custom php parsing a text file, Movable Type generating html with perl, to Wordpress with custom plugins and themes, to Jekyll with custom plugins, to nextjs pages, then nextjs app directory with Server Components.
I had to rebuild a lot of the "blogging" features on nextjs because nextjs is not a blogging platform, it's a website framework. And building with modern css, parsing 20 years of html and markdown is not something it can do out of the box. I am both impressed and incredibly beat up from the unified.js ecosystem of parsers.
Some notes from the migration:
- URLS are forever, I still have every url still working from every piece of dribble my 18 year old mind could write. For better or worse this isn't hard to do, and it keeps the internet working.
- External URLS are for never. I had a good habit of taking screenshots and describing what I was linking to every time. 20 years later it's the only clue to what these websites were. (archive.org sometimes helps thankfully)
- Embeds are for never. Never mind all of my flash <object> embeds are broken, every single bit of embedded content is broken and sometimes they're not even that old. My habit of downloading the videos I embedded have saved most of this content. I'll miss Vine the most.
- Data is king. None of my code over the last 20 yeas has survived, almost all of my data has.
- MDX is an experiment. Markdown and HTML are still my primary data formats. MDX mixes react with your data for incredible flexibility, but how much of that will be working 10 years from now? What about 2 years from now?
- I have a host of iframe based experiments, none of those work anymore either. 😂 The web platform has grown a lot over the last 20 years. And to be fair I had a bad habit of relying on cdn hosted JS and CSS as was the style at the time. You were bound to have jquery cached locally from google's cdn, not from my blog. Got to pay attention to load times! (while ignoring optimized images).
- next/image is one of my favorite new super powers on my rewrite
- It is very clear when I added spell check to my workflow - I'm absolutely going back in time to fix a lot of these mistakes.
- I had a jekyll plugin that cached my mastodon threads and let me commit them, my nextjs server component for mastodon fetches them every time, I'll need to add caching because as you might recall "Embeds are for never"
Anyway as you might have guessed I'm procrastinating writing a proper new blog post. Have a good Saturday!
-Francis
Powered by ⚡️ and 🤖.