Writing HTML by hand is easier than debugging your static site generator
Hand-written HTML vs Static Site Generators (SSGs)
- Many agree hand-writing a small site (1–4 pages) is simpler and pleasant.
- Skeptics say this breaks down quickly with many pages, frequent posts, or multiple authors.
- Some maintain fully manual sites even with many pages, arguing simplicity and longevity trump automation.
- Others with large sites (hundreds–thousands of pages) insist an SSG or custom generator is essential.
Complexity, Dependencies, and Longevity
- A recurring complaint: Jekyll/Ruby and similar stacks break over time (dependency updates, security warnings, Ruby version changes).
- Single-binary tools (Hugo, Zola, gojekyll) are praised for avoiding language and package-manager headaches.
- Some argue SSGs can remain stable for a decade if kept simple; others say modern toolchains are “abstraction soup” that won’t build in 10 years.
- Several people build tiny, custom SSGs (shell + pandoc, small Ruby/ERB scripts, Swift, Rust/Go, etc.) to stay in control.
Templates, Partials, and “Includes”
- The main reason to use SSGs: shared headers/footers/nav, templates, and auto-generated RSS, sitemaps, tag pages, etc.
- Many see native HTML includes (
<include src="...">) as an obvious missing feature. - Alternatives discussed:
- Server Side Includes on nginx/apache.
- PHP/“static PHP”
include("header.html"). - JS/Web Components (custom
<include>elements), iframes,<object>, XSLT, m4, framesets. - Objection: many of these require JS or custom server config, undermining “pure static hosting”.
Workflow and Tooling Strategies
- Some push builds into CI (GitHub Actions, similar) to avoid per-machine setup and pin versions; critics note CI images also change, but pinning or containers can help.
- Containers/DevContainers/Docker images are suggested to freeze the toolchain across machines.
- A few treat SSGs as disposable build tools: once HTML is generated, it can be edited by hand even if the generator later breaks.
Non-technical Authors & CMS-like Needs
- Static generators are described as painful or impossible for non-technical users, especially around media, embeds, and custom markup.
- File-based CMSes and lightweight systems (e.g., Kirby, Django+admin + wget, Obsidian publishing, mkdocs, Astro, Pelican, etc.) are mentioned as middle-ground options.