- Static Website
Portfolio Website
This site: a fast, data-driven personal portfolio built as a static site with Hugo.
What it does
The portfolio you are reading now. It presents my experience, projects, and contact details as a single fast-loading static site, with a project case study (like this one) behind each card. It also includes a blog for things I enjoy writing about. No backend, no database, just a static website.Why I built it
I wanted a portfolio for myself, and also a small blog that I can throw some thoughts into every now and then. I wanted something simple that I liked.
Hugo was also something I had come across a few times in my career, as a possibility (for documentation sites etc) but never used, so I was very interested in finding out how it is in practice.
How it's built
Built with Hugo on top of the Toha theme.
Initially I researched a bit, and was between the Toha and the Blowfish theme.
Blowfish offered more customisability, so I tried it out. But since I didn’t have a clear direction yet, I decided to go with Toha, which already gave a general idea of what the portfolio would look like. My thinking being, I can set up something quick, and later, after I have a clear idea, if I want more customisations, I can go for Blowfish.
It uses a lot of the Toha partials, and the homepage is purely data-driven by the sections YAML files. For the project details, I made my own layout as Toha didn’t offer one.
I am using Sass to override a lot of the CSS and make it closer to how I want it to look. I ended up overriding quite a bit of Toha’s Sass, to make it work with my ideas.
It builds to static HTML in a multi-stage Docker image (Node for the SCSS toolchain, Hugo to build, nginx to serve) and deploys on my Coolify playground.
The content is all written by me and proofread by AI. Yes, we are in a new age, but I still prefer letting AI do the boring things, and keep the actual fun ones like “once in a while write down my thoughts and put it out there for no one to read” for myself. #HumanWrittenSlop
Challenges / What I learned
It was very interesting to see how Hugo works and its development process. It has been very fun. The theme support is particularly interesting, allowing you to use themes, but fully override any part that you want. I ended up doing that quite a lot, for either enhancements or bug fixes cause I didn’t want to wait for upstream, which I guess is also the biggest disadvantage of using Toha vs Blowfish. Since I overrode a lot of things, upgrading it won’t be as straightforward.
So maybe in the future I will rewrite it with Blowfish as intended. Or once again, societal wisdom will be true:
Nothing is more permanent than the temporary.