#247: Static Site Generators for a Blog?
I have been using WordPress for my two blogs for 15 years now. While it is still a good tool, I am not very excited about the AI strategy of Automattic Inc, the company behind WordPress. I fear that they will stop spending time on improving WordPress and instead accelerate the enshittification of their platform. I guess it is now time to look for alternatives and see if static website generators could be a viable alternative for a blog.
Requirements
These features are a must-have for me to switch my blog to an alternative platform:
- Active development
- Syntax-highlighting for code
- RSS feeds
- Categories and tags
- Full text search
- Integration for a statistics tool
These features would be nice to have, but I can do without them if necessary:
- Runs on Python
- Supports related content
- Can handle drafts
- Real-time preview (on local machine)
- Delayed publication
- Next and previous post
A comment function is not a requirement for me, because I get swamped with spam comments already. For every real comment I get 700 spam comments - far too much to handle without a tool like Akismet.
Candidates
A quick search resulted in a lot of possible tools. However, as soon as you look at the frequency of their updates and the documentation, the field quickly thins out. I ended up with these three candidates to take a closer look:
Pros and cons of Pelican
Pelican is a static site generator written in Python that supports Markdown, reStructuredText, and HTML. Although development appears to have slowed down, there were now two releases in September.
Pelican is made for chronological content (e.g., articles, blog posts) and supports them as a first-class citizen. There is no need for a plug-in and incompatibilities, everything is just there and ready to use.
The largest downside for me are the templates. They are not only old, the look dated. This may not be a problem if you intend to write your own theme with Jinja2, but I want to spend my time writing blog posts and not blog themes.

Pros and cons of Material for MkDocs
Material for MkDocs is not only a theme for MkDocs that I used in the past, but it comes with a few plug-ins that extend MkDocs. The plug-in I am most interested in is the blog plug-in, that adds the missing features to run a blog to MkDocs.
There is a very active development community and I can build on top of my experience with MkDocs.
The major downside is that MkDocs does not support blogs out of the box. The plug-in of material does its best to fix that, but here and there you can find the limitations. Depending on how much flexibility you need, that may be a problem. It also means that you cannot switch the theme, then that would mean you can no longer use the blog plug-in.

Pros and cons of Hugo
Hugo is written in Go and claims to be the fastest framework for building web sites. It comes with lots of options and support for everything you need to create web sites. The migration tools for various blog platforms to Markdown are noteworthy and may help you even if you do not intent to use Hugo.
Hugo is a fresh, active developed tool that offers many modern themes to start with your web site.
The biggest downside I noticed in the documentation is the complexity. The flexibility of Hugo comes with a price tag.

Comparison
Based on the official documentation, GitHub and some popular themes for the generators, I came up with this feature matrix:
| Pelican | Material | Hugo | |
|---|---|---|---|
| Language | Python | Python | Go |
| Latest Commit | yesterday | hours ago | hours ago |
| Syntax-highlighting | yes | yes | yes |
| RSS | yes | plugin | yes |
| Categories | yes | yes | yes |
| Tags | yes | yes | yes |
| Search | plugin | yes | plugin |
| Statistics | theme | yes | yes |
| Related content | no | insiders plugin | yes |
| Drafts | yes | yes | yes |
| Preview | yes | yes | yes |
| Delayed publication | no | no | no |
| Next / preview post | theme | yes | theme |
As far as the documentation is concerned, all three candidates support the functions I need for my blog. Most features are directly built-in, others come with plug-ins or are part of the theme. Either way, it looks good for an alternative to WordPress for my blog.
Next
With all 3 static site generators able to run my blog, I will start with Material for MkDocs and see if the documentation is right.