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.