Hello

This is the first post on the new site. The whole stack is intentionally tiny:

  • Go for the server: a single static binary, distroless container.
  • HTMX for SPA-feel navigation without a Node toolchain or client-side router.
  • Markdown files in content/, compiled to HTML at build time and embedded into the binary alongside the templates and static assets. The runtime never touches goldmark; it just reads pre-rendered HTML out of an embedded filesystem.

When you click between pages the URL updates and only the #content region of the layout swaps. No bundler, no build watch, no SPA framework.

Why this stack

I wanted something I could run from a single small container, edit content with a normal text editor and a redeploy, and not maintain a Node toolchain for. HTMX got me there.

// goldmark runs at build time, not at request time.
md := goldmark.New(goldmark.WithExtensions(extension.GFM))

Coming up

A pixel-art character is on the roadmap. I haven't yet decided what it looks like or how it behaves. The intent is for it to share a sketchpad with my game-studio work (!help), but I'm not committing to a specific design until I've prototyped a couple. Watch this space.

That's it for now. More posts to come.

← back to blog