How I standardised commit messages and changelogs across a polyglot workspace — Conventional Commits enforced by a shared shell hook, Lefthook to manage the hooks, Keep a Changelog as the format, and git-cliff to generate the changelog from history and keep it current in CI
A follow-up to the Conventional Commits post — rolling out automated semantic versioning, changelog updates and GitHub Releases with git-cliff in GitHub Actions across ten repositories, and the gotchas found on the way: release commits polluting the changelog, GITHUB_TOKEN loop protection, and a branch-protected main
How to stamp a copyright notice onto every image at Hugo build time using images.Text — including the font trap, the shadow technique for readability, and how to keep multiple shortcodes in sync.
How to replace browser-side EXIF GPS reading with a pre-build Node script that embeds coordinates directly in the HTML — faster maps, no async loading, no browser EXIF parsing.
A collection of non-obvious traps in Hugo's image processing pipeline: the ASCII-only default font, the strings.TrimLeft argument order, stale image caches, and why two shortcodes processing the same image can produce different URLs.
How to build an interactive map for a Hugo static site that reads GPS coordinates directly from image EXIF data and plots photo markers alongside a GPX route — with all the gotchas.