Welcome to the rebuilt mastel.org. If you're reading this, the new static setup is working.
Why the change
The old site ran on a full CMS. That was useful when I was rolling my own comments, forms, and galleries — but over time I moved each of those into a dedicated, self-hosted app. What was left was essentially a blog and a photo gallery being served by a lot of machinery I no longer needed.
So I collapsed it down to what it actually is: Markdown files and a template, built into static HTML.
What's under the hood
- Pelican turns Markdown into HTML.
- A small custom theme,
typhoon-dark, keeps the look I liked from Grav's Typhoon theme — but darker, with a royal-purple accent. - The whole thing is served as static files from an Nginx container.
# The entire publish workflow
pelican content -s publishconf.py
docker build -t mastel-web .
Visually, the whole pipeline is just:
flowchart LR
MD["Markdown + images"] --> P["Pelican build"]
P --> H["Static HTML"]
H --> N["Nginx container"]
N --> U["Visitor"]
No database, no PHP, no plugin update treadmill. Just files.
What's next
More writing, and a real photography gallery to replace the placeholder frames. Onward.