How to Create a Book Database With Hugo and YAML - Part 2

In my previous tutorial, I showed how to create a simple YAML database in Hugo for reusable book links. Only five minutes passed before I started tinkering and building something fancier. In this tutorial, I’ll explain how to create subject-specific book lists. This approach works well for quickly generating and sharing reading lists. As with the previous tutorial, you can also adapt this code for organising web links, tools, or other resources. ...

30 September, 2025 · 5 min · 948 words · Catherine Pope

How to Create a Book Database with Hugo and YAML - Part 1

While creating resources for some of my workshops, I realised I was recommending the same books repeatedly. This also meant I was typing the same details repeatedly - time I could be spending reading. I then started experimenting with creating a simple database in Hugo. I wanted a solution that would allow me to maintain my book details (title, author, and ISBN) in one place, then pull them into specific pages with a shortcode and link to a bookstore. This way, I’d: ...

29 September, 2025 · 5 min · 979 words · Catherine Pope

How to Keep Your Mac Awake

Recently, I need to transfer some humongous video files, with a estimated time of 16 hours 😳 Every time I turned my back for a moment, my MacBook immediately went to sleep and cancelled the transfer. No amount of swearing or fiddling with the settings solved the problem. Has anyone actually counted the number of power and sleep settings in MacOS? Anyway, finally, I found two neat solutions to this problem, both of which involve stimulants. ...

19 September, 2025 · 2 min · 404 words · Catherine Pope

Open External Links in a New Tab With Hugo

After months of faffing around and configuring external links manually in Hugo, I decided there must be a better way. There is! Here’s the solution that worked for me for my bookstore links. Some themes include native support, so it’s a case of checking the documentation and adding a line to your hugo.yaml or hugo.toml config file. If, like me, you’re using a theme that doesn’t support this feature, here’s a method that might work for you. ...

18 September, 2025 · 3 min · 582 words · Catherine Pope

How to Automatically Sync AudioPen Notes with Obsidian

I’ve been an enthusiastic user of AudioPen for a few years. This brilliant app records and accurately transcribes your voice notes in moments. You can either opt for a light tidy to add punctuation and remove your ums and ahs, or ask it to make you sound like Cicero. Although you can organise your notes in AudioPen using folders and tags, most of us nerdy types already have a preferred note-taking app. In my case, that’s Obsidian. If you don’t know Obsidian, it’s a powerful yet simple app that stores your notes and plain markdown files and gives you various ways to make connections between them. ...

15 September, 2025 · 3 min · 479 words · Catherine Pope

Manage Multiple Hugo Versions with Docker

Hugo is usually the simple solution for website generation. Recently, though, I ran into a frustrating situation: the theme I wanted to use for one site required an older version of Hugo, whereas another site demanded the latest version. Although it’s possible to run multiple Hugo versions on the same machine, life is already complicated enough. In this tutorial, I’ll explain how you can build and preview a Hugo site with a Docker container. ...

15 September, 2025 · 4 min · 684 words · Catherine Pope

How to Add a Theme as a Hugo Module

Although Hugo modules are supposed to make life simple, this took me an embarrassingly long time to fathom. In this tutorial, I’ll show you how to add a theme as a module of your Hugo site. I’m assuming you already have a Hugo site and have chosen a theme that’s available as a module. You also need to have run git init in your site folder. If you want to learn more about modules, take a look at the Hugo documentation. ...

30 March, 2023 · 2 min · 394 words · Catherine Pope

Getting Started with Helm

So far in this series, we’ve created some very simple Kubernetes applications. If you built something more complicated, with dozens of manifests, it would be a faff to share it with other people. Those other people might also struggle to understand and tweak your configuration. With a Helm Chart, you can define, install, and upgrade even the most complex Kubernetes application. For instance, I worked for a CI/CD company which offered a self-hosted Kubernetes-based version of its product. Rather than having to create lots of different Kubernetes resources, customers instead received a Helm Chart with everything already mapped out - all the Deployments, Secrets, Users, and ConfigMaps. They then configured some of the values and installed the chart on their own Kubernetes cluster. ...

28 October, 2022 · 6 min · 1115 words · Catherine Pope

Installing WordPress with Helm

One of the many advantages of Helm is that it gives you a one-command installation method for many popular apps. It would take a while to create all the necessary Pods, Services, and ConfigMaps manually. In this tutorial, I’ll guide you through a two-step process for installing WordPress with Helm. Although this isn’t necessarily something you’d want to do in the real world, it’s good for understanding the basics. I was very excited when I first got this working. ...

27 October, 2022 · 3 min · 590 words · Catherine Pope

Creating a Kubernetes Service Manifest

Last time, we created a simple manifest to launch a Kubernetes deployment. Although we found a Pod lurking in minikube dashboard, we couldn’t actually see anything interesting. In this tutorial, we’ll extend that manifest to include a Service and make the app available through a web browser. As before, you’ll need minikube and associated tools, all of which are detailed in an earlier post. Exposing your Pod To make the Pod containing the app visible, you need to expose the container’s port. This involves a small addition to the original manifest file: ...

18 October, 2022 · 3 min · 521 words · Catherine Pope