Hello, World
Welcome to my new blog. It is built entirely with Haunt, a static site generator written in GNU Guile. No JavaScript, no Markdown — just Scheme all the way down.
Why Haunt?
Most static site generators treat content as Markdown files that get piped through a template engine. Haunt takes a different approach: posts are S-expressions. The same language that builds the site also writes the content.
Here is the basic skeleton of a post:
scheme
(use-modules (haunt utils))
`((title . "Hello, World")
(date . ,(string->date* "2026-02-15 10:00"))
(tags "haunt" "guile")
(summary . "A first post.")
(content
((p "This is the body of the post."))))What to expect
I plan to write about Guix System, Emacs, Qutebrowser, low-level systems programming, and the joy of computing with free software. Stay tuned.