Why not roll your own? Sure, you have to build it and maintain it, but isn’t that in the spirit of programming? It’s fun.
I rolled my own because I wanted to use Jinja inside Markdown. This lets me include widgets in the content, and use Python-based constants in the text. For example, when the German minimum wage changes, I change one constant and it triggers a bunch of updates across the website.
I also wanted to control the content-to-website pipeline a little better. The SSG builds pages, but also generates text-to-speech audio for glossary terms, makes some typographic changes, and lints the Markdown for site-specific issues.
I wrote a bit about it here: https://nicolasbouliane.com/projects/ursus
The code is here: https://github.com/All-About-Berlin/ursus/