Creating a simpler static site generator

I have a lofty goal of creating a simpler static site generator.

I understand that other generators exist. They're all great, I'm sure, but I noticed something was missing in the whole realm of SSGs. I wanted something so simple, it's entire operations could be contained to one script. I wanted something so laser-focused on blogs in a way that so many other SSGs aren't. I wanted it to run locally, not build from a command in cloudflare pages or something. I wanted a simple way to write in markdown, create html files, and send them to a remote repository somewhere.

I wanted a python script.

This is a development log of how I made that happen. All of the decision I made along the way, the ways I resolved various issues, and how I eventually succeeded in my goal of creating the simplest site generator around.

2025-11-04 - Starting from scratch

2025-11-05 - Deciding on tooling

2025-11-08

2025-11-14

I gave up.

There are a lot of static site generators out there already, and of them all, Eleventy is probably the best option for me anyway. I want to create a real home on the internet, and having a tool like Eleventy that can grow with me is the best thing I need. Sure, it's way more than I need at the moment for just building a blog, but it means that I don't have to spend the time and energy building a new tool when everything I could ever want is only an npm install away.

I'll have to learn some javascript to make this work, but it's a well documented language and will expand my knowledge base. It's worth the effort of learning something new to do what I want to do. If I want to expand my website in the future, I can pick and choose from the vast array of plugins that work with Eleventy.

This, above anything, was a learning experience. It helped me learn that trying to make everything exactly the way I want (at least while I'm in the stage of life that I am now) is not the best way of doing things, especially when there are already tools that do everything I want to do and all I have to do is learn how to use them.

I'm sure I'll come back to this. It's been done before in other languages, and I don't see why I couldn't do what I see out to do sometime in the future, given I have the time and resources to do so. In the meantime, I'll read the Mozilla JavaScript docs and learn how to use the tools that already exist.