Building a simple static site generator

September 29, 2025

Sometimes the best tools are the ones you build yourself. When I decided to create my personal website, I wanted something simple, fast, and easy to maintain. Rather than reaching for a complex framework, I built a minimal static site generator using Python.

Why build my own?

There are plenty of static site generators out there – Jekyll, Hugo, Gatsby, to name a few. But sometimes you want:

The Approach

Concept

The core concept is straightforward:

  1. Write content in Markdown files
  2. Use a simple HTML template
  3. Convert Markdown to HTML and inject it into the template
  4. Generate a complete static website

Tech stack

In my day-to-day job, I have been writing software on the Java Virtual Machine platform for the last > 20 years, and specifically Kotlin for the last ~ 5 years. So Kotlin is the language I’m by far the most proficient in right now. However, I wanted to experiment a bit with vibe coding and use this side project as a learning opportunity as well. I noticed that LLMs and coding agents are generally better at Python than any other language, simply because it’s so ubiquitous on the web. And recently, the Python ecosystem has become a lot easier to work with, thanks to tools like uv. So, that’s how I landed on Python and uv for the site generator.

Right now, the Python code lives in the same repository as the website’s sources. It’s convenient and fast. I might separate the generator in the future. That would also be a good moment to publish it, so others can use it. We’ll see…

Conclusion

Building your own tools isn’t always the answer, but sometimes it’s exactly what you need. And it’s fun!