vlacroix.ca

⇐ Blog

Blog Technology: Pick Your Poison

2025/Jan 08

There are no good technology options for running your own blog.

Should you choose plain HTML, you’d need to duplicate a lot of information in order to get indices working correctly. Double the duplication if you want to have an RSS feed. Let’s not forget to mention if the site has any common visuals present in all pages—that’d all need to be copy-pasted by hand. Mercy upon you if you decide to change anything in the site’s aesthetic.

Server-side rendering technologies add a quite significant computational cost to your blog. Without caching—involving yet more layers of code!—any page’s content would need to be recomputed whenever a reader visits it. Still, building proper indices would remain a challenge. The shit work would remain, just as with plain HTML.

This site uses Hugo, a static site builder based on Markdown. The conceit is fairly simple: I write a series of articles, and Hugo generates a website filled with those articles, as well as some nice indices for everything. This approach does involve writing extra metadata on posts, but that is far and away a better deal than writing indices by hand. Where it goes sour is that the moment you try to deviate from the expected site layout. Having a traditional website with various pages in a hierarchy runs at odds with Hugo’s blogging features, requiring you to take careful steps when structuring your site. Misplace a file, and it may end up listed in your blog, or it may end up hiding your blog’s index. Good luck if you want to understand the difference between a shortcode, a template, and a partial—Hugo’s documentation does little to explain what distinguishes these features, and what should be used where.

One option that I’m very hesitant to consider is a full blog server solution like Wordpress. While these programs could indeed be configured to give me a site with the structure I’m looking for, the popularity of software like Wordpress makes it a target for breaches, and its complexity makes the presence of exploitable security gaps all the likelier.

I strongly feel that the failure here is caused by a fundamental building block of the web: HTTP. The protocol through which the world wide web is delivered lacks any notion of directories or automatically generated indices—these are implemented after the fact. Therefore, developers are left needing to pick up the pieces and develop ad-hoc solutions for this problem. What frustrates me is that—as evidenced by the sheer number of blogging servers, static site generators, and web frameworks—there is no solution to this common problem that doesn’t itself impose other problems onto users.

You want to host your own blog? Each of your options is poison; Pick one.