Introducing Hubro

by Christian Lønaas, 2025-01-05

Hubro is a personal exploration into learning more Go, experimenting with HTMX and Alpine.js, and setting up a simple build pipeline with TailwindCSS and esbuild in a Go project. It also doubles as a replacement for a blog previously generated by Jekyll, retaining (mostly) compatible Markdown-based blog posts.

ugle-z pixel art knight

What Is Hubro?

Hubro sits in a middle ground between a static site generator and a traditional database-backed blog engine:

  • It reads Markdown files from a blog directory and renders them using Go templates.
  • It also reads Markdown files from a pages directory for static pages, such as an About or Contact page.
  • All files are read into memory when Hubro starts, and any changes on disk are automatically updated.
  • Thanks to Go’s simplicity and performance, Hubro is designed to be both minimal and efficient—perfect for personal blogs and small websites.

Why Hubro?

  1. Learn Go Hubro serves as a personal learning experience, a hands-on approach to deepen Go skills, especially around building performant web applications and file handling.

  2. Try Out HTMX & Alpine.js The project incorporates HTMX and Alpine.js to enhance interactivity and responsiveness in the browser, without having to resort to a full-blown JavaScript framework.

  3. Simple Build Pipeline A main goal was to set up a minimal build pipeline with TailwindCSS and esbuild. By coupling these tools with Go, you can have a highly efficient workflow that keeps dependencies light and code organized.

  4. Jekyll Compatibility Previous blog posts were created with the Jekyll static site generator. Hubro retains (mostly) the same Markdown structure, allowing old posts to be dropped in without heavy modification.

Check It Out

Hubro is open-source and available on GitHub. Feel free to clone the repository and try it out for yourself!

github logo

View on GitHub