A static site generator for my personal website. It turns Markdown content, Jinja2 templates, and a TOML config into a complete static HTML/CSS site. This site is built with it.
Why I built it
I wanted full control over a small, dependency-light site without pulling in a large framework. Building my own generator kept the moving parts few and the output exactly what I wanted, and gave me a self-contained project to build end to end.
What it does
- A small CLI:
initto scaffold,buildto render,serveto preview. - Content as Markdown with TOML frontmatter: an about page, posts, and projects.
- Convention over configuration, with sensible defaults for paths and layout.
Built with
- Python 3.12+, packaged with Poetry.
- Jinja2 for templating and Markdown for content rendering.
- Strict tooling: Ruff, Pyright (strict), and Pytest.
How it was built
The first version was one-shotted with a coding agent. I wrote up how here: One-shotting a static site generator.