Rewriting my website in plain HTML and CSS

Static site generators & modern tooling

  • Many argue the described approach effectively reimplements a static site generator (SSG).
  • Popular SSGs mentioned: Astro, Hugo, Jekyll, Pelican, Eleventy, Nikola, Hakyll, Lume, Zola, Hakyll, and smaller tools like Teeny, Query, bashblog.
  • Astro is repeatedly praised: zero-JS-by-default, component model, markdown integration, ability to mix React/Svelte, and simple templates.
  • Some prefer rolling minimal custom pipelines (pandoc + Makefile/shell, Node+ESBuild+SASS, Python + Jinja2, simple PHP, Go templates) to avoid SSG complexity and theme systems.

Templating, includes, and reuse

  • A central pain point: shared headers/footers and repeated HTML.
  • Solutions discussed:
    • Server Side Includes (SSI) in nginx/apache and similar features in Caddy.
    • PHP include, tiny PHP apps, or template engines (Twig, Go templates, Jinja2, Mustache/“mo”, Slab, etc.).
    • Static build scripts concatenating header/body/footer.
    • <object> as a quasi-include, with debate over extra HTTP requests vs simplicity.
    • Web Components or light JS includes for those okay with JavaScript.
  • Concerns: some platforms (e.g., Netlify-like static hosting) don’t support SSI; some people want zero JS and no backend.

Workflows, tooling, and ergonomics

  • Common stacks: write in Markdown (or SGML), convert with pandoc or SSG to HTML, sometimes add syntax highlighting at build time to avoid runtime JS.
  • Live reload options: livereloadx, live-server, custom watchers (entr, watchexec), IDE-integrated reload.
  • Several report that manual copy-paste and search/replace across a small site is manageable and even preferable to framework churn.

Performance, complexity, and philosophy

  • Many value minimal HTML/CSS for speed, longevity, and fewer dependencies; some host on GitHub Pages or even home servers.
  • Skeptics of JS-heavy stacks point to bloat, breakage when JS is disabled, and maintenance pain (npm churn, React/Next complexity).
  • Others counter that JS frameworks can offer better organization, richer features, and that JS size is often blamed more than images/CSS.
  • Accessibility and semantics debates surface (native HTML vs ARIA/JS-driven UIs), with no clear consensus.

Odds and ends

  • RSS feeds are a common missing piece; some generate them via scripts or external tools.
  • Several note that simple static blogs teach where modern framework conveniences come from, and that “boring” tech can be a feature.