This document explains the design decisions behind the site.
Why Hugo over Jekyll
The site was originally built with Jekyll 4.4.1 + Chirpy theme. It was migrated to Hugo + PaperMod for the following reasons:
Ruby Version Incompatibility
Jekyll’s dependency chain (specifically the jekyll-theme-chirpy gem) requires Ruby ~> 3.1. Modern systems ship with Ruby 4.x, requiring a version manager (chruby, rbenv) to build locally. Hugo is a single Go binary with no runtime dependencies.
AsciiDoc Handling
Hugo uses Asciidoctor as an external helper (same rendering engine). Jekyll uses the jekyll-asciidoc plugin which introduces additional complexity:
- Pinning gem versions
- Plugin compatibility with GitHub Pages
- include:: directives for content reuse
Hugo’s approach is simpler: standalone AsciiDoc files in content/posts/.
Why PaperMod
PaperMod was chosen over other Hugo themes because:
Excellent dark mode support (including auto-detect)
Minimal, content-first design
Active maintenance
Built-in TOC, code copy, and share buttons
No JavaScript framework dependencies
Why AsciiDoc
AsciiDoc was chosen over Markdown for:
Rich table support (span, formatting, cell alignment)
Built-in admonitions (NOTE, TIP, WARNING, CAUTION, IMPORTANT)
Document attributes (variables, conditionals)
image:andvideo:block macrosBetter support for technical documentation
Same content format for both blog posts and architecture docs