The previous version of this site went up in February 2022 and was never touched again. It worked, mostly, but it was published by hand: someone ran Hugo locally, copied the public/ folder into a repository, and pushed that. The source project is gone. The generated HTML was all that survived.

That arrangement fails quietly. Favicon paths pointed at a directory that no longer existed and returned 404 for four years. Analytics and site-verification tags shipped with the theme’s example placeholders still in them.

What changed

The repository now holds the actual source, and GitHub Actions builds it:

git clone --recurse-submodules https://github.com/carlklier/carlklier.com.git
cd carlklier.com
hugo server -D

Push to main and the site rebuilds and deploys on its own.

Writing here

New posts go in content/posts/ as Markdown with front matter:

hugo new content posts/some-title.md

Posts start as draft: true. They stay invisible to the production build until that flips to falsehugo server -D shows drafts locally.

Notes to self

  • Theme changes for this site only belong in layouts/
  • Theme changes for all my sites belong in the fork
  • Never edit files inside themes/ — it is a submodule and the changes will be lost

The full setup is written down in the repository’s README, which is where to start after a long time away.