Jeffgeerling.com has been migrated to Hugo

Experiences with Hugo: stability, themes, and upgrades

  • Several commenters welcome the move but warn Hugo can “break userland”: theme APIs and templating changes have repeatedly broken sites, especially for complex or forked themes.
  • A number of people report giving up blogging or having to migrate themes after Hugo updates made their sites fail to build. Some say they now avoid upgrades entirely once things work.
  • Others report years of trouble‑free use by keeping themes extremely simple or writing them from scratch. There’s disagreement on how often Hugo actually breaks in practice.

Version pinning and tooling strategies

  • Strong consensus that you must pin the Hugo version:
    • Options include CI configs, wrapper scripts (go run …@version), Docker images, Nix flakes/devshells, version managers (asdf/mise/hvm), or storing checksums/metadata alongside the project.
    • Committing the binary itself is debated: some do it to “freeze” behavior; others call it a bad idea due to repo bloat and platform lock‑in.
  • When a site is already broken, people suggest binary search across Hugo versions or using git bisect to find when it regressed.

Static site generators vs dynamic servers / WordPress

  • One camp argues SSGs are perfect for long‑lived, mostly static sites: tiny attack surface, easy hosting, extreme performance, and resilience under DDoS or “hug of death” traffic.
  • Another camp argues that if you need any interactivity, you must run a server or third‑party service anyway, so SSGs add an unnecessary build step and constraints. They advocate small custom SSR apps instead.
  • WordPress/Drupal are criticized as security/maintenance “treadmills.” Some migrated away and feel liberated; others stick with hosted CMSes (Ghost, etc.) to avoid self‑hosting complexity.

Interactivity, comments, and search

  • Multiple approaches are discussed:
    • Self‑hosted comment microservices (often a single small program) feeding into the static build.
    • Third‑party systems (Disqus, GitHub Issues, ActivityPub/Mastodon integrations).
    • Client‑side search using prebuilt indexes (e.g., lunr.js) generated at build time; scalability and index size are concerns for very large sites.
  • There’s skepticism that SSGs remain convenient once you need rich interactivity, faceted search, or federation.

Alternatives and DIY generators

  • Zola, Pelican, 11ty, and Astro are frequently mentioned alternatives; some prefer their templating or stability over Hugo.
  • Several people have written their own ~1k‑line SSGs in Lisp, Go, Python, etc., praising full control and long‑term stability—but others note the risk of spending more time tinkering than writing.
  • AI tools (e.g., coding assistants) are proposed as low‑risk helpers for fixing broken Hugo themes, though some feel this shouldn’t be necessary if Hugo were more stable.