The same static site, built with three different static site generators:
- Hugo — Go-based, the most popular SSG
- Saga — Swift-based, code-driven pipeline
- Publish — Swift-based, by John Sundell
Same content. Same URLs. Same output. Different tools.
This is the companion repo for my article on loopwerk.io.
A minimal but realistic static site with:
- A home page with a link to the latest article
- A blog with 5 articles, paginated (2 per page), with tags and summaries
- Tag pages listing all articles for a given tag (e.g.
/articles/tags/swift/) - An Atom/RSS feed for the blog
- A projects page listing open source projects
- An about page
- Article URLs include the publication year:
/articles/2024/my-post/ - A contact page, fully programmatically created (not from a markdown file).
- Cache-busting CSS filename.
No fancy CSS. No themes. Just semantic HTML — the focus is on the SSG mechanics.
- just command runner
- Hugo (for the Hugo version)
- Swift 5.9+ (for Saga and Publish)
Build a single SSG:
cd hugo && just build
cd saga-ssg && just build
cd publish-ssg && just buildBuild all:
just build-allClean all generated output:
just clean-all