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

# 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.