Why Spaz?

Motivation

Spaz was created to address a specific need: an extremely simple static site generator that delivers the performance characteristics of a Single Page Application. This document outlines the design goals and examines how existing tools address similar use cases.

As the author of staticgenerator (2008), I’ve had the opportunity to observe the evolution of static site generation over more than a decade. This experience informed the design decisions behind Spaz.

Design Philosophy

Content is King. Above all else, Spaz prioritizes content. The tool should fade into the background, allowing authors to focus on writing and organizing their content without wrestling with configuration, build systems, or framework complexity. Everything else serves this principle.

Convention over Configuration. Tools should work effectively out of the box with sensible defaults, requiring configuration only when customization is necessary.

Minimal Dependencies. Reducing dependencies improves security, simplifies maintenance, and decreases the likelihood of breaking changes in the ecosystem.

SPA Performance. Single Page Applications provide excellent user experience through instant navigation and reduced page loads. Achieving this performance without requiring a complex JavaScript framework was a primary goal.

Evaluation of Existing Tools

The static site generator ecosystem offers many excellent options, each with particular strengths:

Docusaurus provides a polished, feature-rich experience with excellent documentation support. It requires Node.js and npm dependencies, making it well-suited for teams already working in the JavaScript ecosystem.

mdBook is a well-designed Rust tool optimized for book-style, chapter-based documentation. Its focus on this specific use case makes it an excellent choice for technical documentation following that structure.

MkDocs offers a straightforward Python-based solution with a large plugin ecosystem. It excels at traditional multi-page documentation sites.

Sphinx is an industry-standard documentation tool with extensive features and flexibility, particularly strong in the Python community. Its comprehensive feature set addresses complex documentation needs.

Jekyll is a mature, widely-adopted tool with strong GitHub Pages integration. It requires Ruby and offers extensive theming and plugin options.

Hugo delivers impressive build performance through a single binary distribution. Its extensive configuration options and templating system support a wide range of site types.

Zola provides a Rust-based alternative with good performance and a single binary distribution, offering a balance between simplicity and configurability.

The Gap

While each of these tools excels in its domain, there was no solution that combined all of the following characteristics:

Spaz was created to fill this specific niche, providing a focused solution for users who prioritize simplicity and SPA performance in their static site generation workflow.