HomepageDesign
Zim beginnings
For years I maintained this site directly out of Zim. Zim made it easy to sketch ideas, follow wiki links, and export the whole notebook as HTML whenever I wanted to share an update. The design and layout you see in older posts originated in that exported theme, including the ornate background and the habit of organizing pages like a personal wiki.
Static site generator today
Today the site is rebuilt with a tiny static site generator that lives right alongside the content. Everything under md/ is authored in Markdown. A make pipeline rewrites wiki links, runs cmark-gfm to render HTML, wraps the result in a shared template, and copies non-Markdown assets into the out/ directory.
The supported build runs inside a pinned Podman container. It fixes the renderer and operating-system packages, normalizes generated timestamps and permissions, and builds into a clean staging directory. The same commit produces the same output without installing the site toolchain on the host. Deploys remain a simple make deploy: the container builds the site, then the host rsyncs it to my DreamHost account. The footer records deterministic source revisions instead of the builder's machine and wall-clock time.
Why I left Zim
Moving to this generator means the whole site is version-controlled and scriptable. I can check diffs, branch drafts, and automate deployment from any machine (or even Cosmopolitan builds someday). It keeps Zim's information architecture while making the publishing workflow reproducible. The homepage repo is public.