The relation between headless CMS for content production, version control system for storage, static site generator for creating static files and web server for statically serving those files, that relation is extremely elegant. It’s what we call loose coupling and clean separation of concerns.
Got a problem in one part of the chain? Solve it with the best tool available. There is no need for a single programming language, and for each stage you have the full set of choices. The problem that comes with that is, you actually have to make choices 🙂
In my case it is clear that I don’t need a CMS (for now), although there’s a catch: I will need something like that for comments. Comments won’t be edited by me but by my visitors, and I can’t require them to be able to or even want to use Markdown. In terms of comments, the best strategy is, to make the barrier as low as possible. At the same time I want to block SPAM. I already have some ideas, but let’s delay that discussion until I know more about my future tool set.
The version control system will be Git, and I will use a cloud repository. It will either be a public one at GitHub (if I am able to make blog source and tools and configuration public) or GitLab (if I need to keep the repository private). I will start on GitLab, but adding GitHub later on will be trivial.
This just leaves me with the non-trivial task of choosing between 224 static site generators 😄