modernizing this blog
My personal website has existed in some form since the late 2000s, and like many hobby projects, it has been rebuilt far more times than strictly necessary. My taste in tech stacks has changed over time, and each version reflects whatever I was experimenting with at the time.
These are some of thee iterations it has gone through over the years, and what is to come:
2011 - WordPress
Early 2012 - A single word to mark my existence on the Internet
Late 2012 - Cheesy wood paneling and filler text
Early 2013 - A fully custom Python blog engine
Late 2013 - Drupal 7 on a new .io domain
2014 - Design changes
2016 - More design changes
Aside - this list was actually a lot of fun to put together. I had forgotten entirely about some of these iterations.
Out of all of these, the Drupal 7 iteration lasted, by far, the longest. Which, itself, is amusing. Drupal is implemented in PHP, and there is a lot of writing on the internet about whether PHP is the greatest language or a terrible language. But either way, it is undeniable that PHP is like a cockroach that will not die.
But why Drupal, anyways? It bills itself as being for Enterprise, which usually means large and hulking codebases. And it is. When I set up this site using Drupal, I was working for the Rochester Institute of Technology, building the school’s own websites in Drupal. It was already familiar to me from this, so it was easy enough to use Drupal for my own purposes.
But, I eventually stopped working with Drupal and web development in general as I moved into other roles - which I wrote about here - and I didn’t keep up with Drupal or PHP’s evolution. Which, for Drupal, actually would have required some serious re-writes as the theme rendering layer was changed pretty drastically from version 7 to 8. But that’s probably more detail about Drupal than anyone needs.
PHP too, changed. My Drupal website was written to work with PHP 5, which hasn’t been supported for years. Server operating systems have long dropped support for it. Between it and Drupal’s age, it’s honestly a miracle the site never got hacked.
PHP evolved, Drupal evolved, became more complicated, and I did not keep up. So now it is time to build something new, and to keep it simple this time around.
This time, I’ve decided to use Hugo, which is a static website framework. In summary, you give it your content formatted in Markdown which it will organize and feed into a template, which then in turn outputs HTML.
This post, too, is a Markdown file that contains the text you see and some metadata at the top:
+++
title = "modernizing this blog"
date = "2026-03-14"
author = "Dave"
cover = "img/IMG_1053_cropped.jpg"
hideCoverInSingle = true
description = "This blog has been migrated to a static website, using Hugo!"
tags = ["Programming", "Meta"]
+++I’ll lose a few things by switching to a simple static site. I could update the Drupal website from anywhere - just log in and write a new post, or save it as a draft. And the comment section - sorry, you’ll have to write to me directly now.
I’m also switching to my original davepedu.com domain, instead of dpedu.io. The .io domain was trendy at some point
in the past, and I’ve come to think that a classic .com is better anyway. On top of that, it allows me to keep the old
Drupal site online at dpedu.io while I manually extract content from Drupal and re-write it for Hugo. After a time,
that domain will redirect here as well. The old site didn’t have terribly much content, but I’m also going through
unpublished drafts and making them into real posts.
The new hosting stack will be similar, too. Before, I had a bare-metal dedicated server rented from OVH. I went with dedicated servers since at the time I was working on computer infrastructure. Another big complex thing I don’t want to take care of anymore, hah. I’ll be sticking with OVH, but I’ll be using a VPS instead. A VPS is a good middle ground - over something completely hands-off like static hosting on Cloudflare - because it still gives me a place to play sysadmin, which I enjoy. And everything configured on it will be installed with a simple form of configuration management - but more on that in a future post.
Of course, I couldn’t resist adding a bit of engineering fun.
I’ve written a Go-based application that acts like a toy version of AWS’s S3 static website hosting. It’s called s3static, and is meant to be used with S3-compatible storage systems such as Minio or RustFS. But more about that project in its own dedicated post.
Traefik will also be involved. It’s meant for Kubernetes but works great with a text config file too. It also automatically handles TLS certificates via Let’s Encrypt, for which I used an unusual and convoluted process, which is a whole other story.
Hopefully, keeping things simple will help this version stick around. Either way, rebuilding the site has been a fun excuse to revisit old memories, clean things up, and experiment with a few new tools.
