Skip to content

Thoughts on my semi-annual blog rewrite

Published:

Every few years I rewrite my personal website and blog. Except for recently perhaps, I sometimes do this more frequently than I write a new blog post. Some of this is because the process of figuring out a new stack and rehosting the is really the whole point of the exercise.

The process is always fun and informative and I always learn a great deal. It’s a great barometer of how my skills have progressed, where the industry trends are at, and even where my head is at. There’s a lot that changes between iterations of my website. What follows is a summarization of each version of my personal blog. You might also notice how much has not changed over the last 20 years.

Twenty years of terrible websites

2003 - Bare Metal

I was in high school and I ran a Debian server out of my parent’s basement running the classic LAMP (Linux Apache MySQL PHP) stack and Wordpress. The computer was a massive ATX case we fondly referred to as “The Battlebox” because we had painted and riveted the case to resemble an ammo box. Here’s what the Wayback Machine has for the site in 2003:

praytech.com News

School’s OUT!

Cluttered?

Notice the main page getting a bit cluttered? Once school is permently geic’d, I will add the below links onto the sidebar, and probably get rid of the “rubik’s” and “family” bars to make the page a bit more streamlined.

A Dedicated Chat Room!!

For the good of all, I have set up a chat room, hosted on this, your humble webserver. Hope everyone enjoys it.

I have fond memories of using an imagemap extension in GIMP to create the sidebar, which was extremely difficult to change once created. In the category of “nothing changes”, I have nearly this exact problem in the website I help maintain for my current job.

Here’s what remains of the site’s sidebar in the Wayback Machine:

Sidebar

As you can tell I had just figured out GIMP’s gradient tool, Rubik’s cubes were having a moment. MWC must have been some goofy in-joke, beyond that I have no clue. During this time I also was the admin for a surprisingly active forums with my high school friends hosted on a now-shuttered VBulletin hosting provider.

2004 to 2008 - Busted for Posting

In my first college internship where according to my resume I was “activating critical first-shift resources” (that is, turning printers on at 4AM), I specifically got in trouble for working on my blog. I was experimenting with building a blog using CGI (don’t ask) and had nearly finished a workable minimal CMS. To deploy the blog I was pushing files to my server using FTP while at work. This use of FTP apparently interrupted some kind of business-critical process that depended on monitoring port 21 for traffic. I got a confused and angry call from the IT compliance team and was told to knock it off.

During college I mostly used Livejournal and maybe Xanga? These blogs lived for quite a few years until the blue hole of Facebook consumed every social media site and everything else pretty much fell off.

2009 - Back to Wordpress

I ran WordPress on a bare-metal LAMP-stack server in the basement for several years during this time. At one point it had nearly a year of uninterrupted uptime (have things really gotten better)? I worked with a non-profit director to host her fundraising website on the server.

At some point I shuttered this server and archived the old site to a hard drive lying around somewhere. I don’t think I posted much on this since Facebook had taken everything over.

2020 - Next.js

After a decade+ of only using social media, I closed all my accounts except LinkedIn and built a new blog for the first time using Next.js and React. At that time, we were just starting to use Next.js and Vercel at work so this was a learning opportunity more than anything else. I wrote a few articles (now available on this current website) but pretty much forgot about it as soon as I built it. The blog was not terribly performant and was not easy to work on and I’ve come a long way in my understanding of React and Next.js since then.

2024 - Astro

I like Vercel’s DX but I still feel the most comfortable using a server. So I took a Digital Ocean droplet I was using for side projects and installed an Astro template and nginx. I’m using the excellent Astro Paper theme by Sat Naing. Also check out his incredible Terminal Portfolio site. What I love about this template (and Astro in general) is that I don’t need to worry about much more than the content. Next.js has a ton of great features but I was never going to leverage them in my blog. Even in the fully-featured web applications my teams manage at work, I don’t think we even leverage all of Vercel and Next.js’s features. Having something a little simpler is paying off.

This template uses markdown for the blog content. I set up cloudinary for image hosting. The major quality-of-life improvement I added was using GitHub Actions for deploying. Because the blog content is markdown and committed as part of the site codebase (and bundled by Astro to static site content) the content must be committed to GitHub, built and bundled by npm and Astro, and deployed to the droplet. I wrote this GitHub Action and recently published it to the Actions Marketplace to make it easier to do this. It uses SSH and SCP to accomplish this and is straightforward. My workflow file includes an “on push to main” workflow trigger, so publishing a blog post is as easy as pushing to github.

2025 - The Future???

I’m happy with where the blog is now and Astro is comfortable enough. However if (and when) I get the itch, I’d love to check out 11ty, made by a fellow UP alumnus. There’s also Hugo, or perhaps back to Next.js.


Previous Post
The False Promise of ORMs
Next Post
Coding Isn't the Hard Part