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.