Participating in social media (even Mastodon) can be a bummer at times, but it also can be encouraging. One source of such encouragement for me is seeing people asking how they can start building their own blogs, or websites, or whatever they want to call the things. The point is, they want to own their stuff. That encourages me greatly, especially since I’m always pleased to offer my suggestions concerning such worthy endeavors.
In last October’s “Blasts from the past,” I linked back to many previous posts about some of the subjects I’ve covered most frequently. One of those topics is the use of static site generators (SSGs) to build and maintain websites; and, in the relevant section of “Blasts from the past,” I took that opportunity to summarize my recommendations about which SSGs one should consider.
Since then, I’ve seen a number of online requests for such recommendations, so the remainder of this post is a repeat of that section of “Blasts from the past,” including its links to my related content.
If you need to pick an SSG for maintaining your personal blog, my suggestion remains what it long has been: a “pick-’em” between Eleventy and Hugo. How can you choose between them? After all, both produce equally fast websites, all other things being equal, so visitors’ perceived performance is also a “pick-’em.” From there, I’d break it down this way:
- If you want the greatest flexibility in templating, Eleventy is a no-brainer choice.
- If you want maximum speed in development mode, go with the staggeringly fast Hugo. Be prepared to get comfortable with its wonky templating, however.
- If you don’t want to deal with plugins and dependencies, go with Hugo. Eleventy is a combination — albeit an expertly assembled/maintained combination — of Node.js packages, while Hugo is a single binary with “batteries included.”
- If you want to add features of your own choosing, go with Eleventy. This is where the Node.js universe has the advantage if you’re willing to deal with all those added packages. (Hugo isn’t nearly as extensible but, precisely for that reason, also is less brittle.)
- If your site has, or is going to have, a lot of content — I’m talking thousands of pages or more — go with Hugo. Although Eleventy can be used for mammoth sites, Hugo’s sheer power makes them less onerous to manage, especially in dev mode.1
- If your site is going to have multi-language content, go with Hugo, which has built-in support for that.
What about the oft-mentioned Astro? Although I retain very good feelings about Astro and the outstanding people behind it, I’ve personally found developing in Astro can still be annoyingly slow on a site with more than thirty or forty MDX files. However, if yours is smaller than that and likely to stay that way for a while, you may find the Node.js-based Astro your cup of tea, doubly so if you’re at least somewhat familiar with coding for tools such as Next.js.
As for Gatsby, the only other SSG I’ve ever used to manage this site, you can do so much better. Save yourself the trouble.
(I advise newcomers to this site that the unintentional irony within the first few titles comes from my infamous 2019 “Dance” among various SSGs.)
- “Why I’m staying with Hugo” (2019-07-14).
- “Lessons learned” (2019-07-21).
- “Why I left Hugo for Eleventy” (2019-09-08).
- “Back with Hugo” (2019-09-20).
- “Now I’m a Gatsby geezer” (2019-10-27).
- “Packing up” (2019-12-08).
- “Sorta StranGe (SSG) trip” (2019-12-27).
- “A normal person’s guide to static websites” (2020-09-12).
- “Eleventy and Hugo: comparing and contrasting” (2020-12-28).
- “Simplify, simplify” (2021-02-06).
- “Is Astro ready for your blog?” (2022-04-24).
- “The winds of change” (2022-04-26).
- “Mulling over migration?” (2022-05-07).
- “Cloudflare dev docs and the switch from Gatsby back to Hugo” (2022-05-27).
- “Impressions from HugoConf 2022” (2022-07-11).
- “The ‘staying with Hugo’ post, three years later” (2022-07-14).
- “Really getting started with Hugo” (2022-07-19).
- “Accepting reality about Astro” (2022-10-05).
Hugo’s chief maintainer, Bjørn Erik Pedersen, has been hinting in recent months at a future update that will allow managing a site with “millions” of pages. While I doubt that anyone reading this needs that kind of power, it never hurts to have plenty of overhead room, so to speak. ↩︎