Blog Tech

January 12, 2026

Generation and deployment

In this post I will talk about the tech behind this blog. I have set this up with the static site generator Hugo. This is a great tool for creating blogs. It is written in Go and is very fast and efficient. I can write my content in markdown and it will be converted to HTML by hugo. This conversion is done beforehand and not on the host server. This is great because it means the actual host server does not have to do any heavy lifting. It simply serves the static HTML, CSS and javascript files.

I currently run this process locally on my laptop with a bash script that I wrote. This script will build the site with Hugo and afterward it builds a docker image with the static files. I then copy over the docker image to my server to run it there. In the future I will probably automate this in a CI/CD pipeline. However, since I’m in the middle of upgrading my homelab, I am waiting to put it in place there in there.

On the host server I also run a reverse proxy with traefik. This is a reverse proxy that is straightforward to set up with some labels in docker compose. I am used to using nginx for this, but I’m quite happy with the simplicity of traefik. Of course, the current setup is not very complex, so I look forward to finding out how easy it will be when the use case gets more complex.

Styling

For styling I currently am trying out 2 different frameworks. My main goal was to have a simple and clean website. I want to focus mostly on the structure by creating templates based on semantic HTML. To avoid having to write a lot of CSS or adding a lot of classes to the HTML, I went with CSS frameworks that look purely at semantic HTML. You can currently choose between 2 styles:

  1. Pico css slate - This is the default style with a minimalistic but modern look.
  2. PerfectMFWS - This style is inspired by the perfect MF website that is basic and barebones. It looks less modern, but with that less distracting.