29 comments

[ 3.2 ms ] story [ 43.0 ms ] thread
Fork the version you liked, fix security issues discovered since, remove unused features, clean it up, then rename and publish.
That's exactly my experience with Hugo and why I stopped using it.
Yeah this is my biggest gripe with hugo. There's this inexplicable feature churn that is always breaking stuff for no obvious reason, often it's not even communicated that things will break or how to fix it.
(2024)

It's been over 18 months. Has the author switched?

The alternative I'd suggest to someone using Hugo for a simple site/blog would be https://www.getzola.org. Single binary, batteries included.

Does anyone have a better go to?

I am also looking for an alternative. I write a lot of my posts in Jupyter Notebooks, so I've been tinkering with using Quarto, but I simply don't see what it does for me in this regard. The label on the box says it is great for notebooks to blogs, but it's unclear what it does that makes it great for this.
I've been using Hugo for the best part of a decade and I love it, it's fast reliable and does exactly what I need.

Even better, it's a standalone binary....

...because I'm still on version 0.18.1, and it was easier to just keep a copy of the binary in ~/bin than deal with all the breaking changes :-D

I was thinking that a webpack (or similar) config that converts markdown to HTML (or your favorite framework) is good enough and maintainable?

What does Hugo et. al. add on top of that?

By biggest gripe with Hugo is it doesn't bubble up where problems are.

I posted this last year: https://github.com/gohugoio/hugo/issues/12693#issuecomment-2...

It makes troubleshooting really tedious.

As for updating versions safely, I highly encourage anyone to write a little tooling to build your site with version A and version B into different directories and then diff them to make sure nothing unexpected changed.

That is something I documented in a very long post where I went over converting my 500+ post Jekyll site to Hugo at https://nickjanetakis.com/blog/converting-my-500-page-blog-f.... If you search the page for "Updating Hugo Versions" you'll find the section.

imagine if `ls` or `grep` or `cat` kept growing in features and break your memorized commands and parameters every now and then for the sake of improvments!

yea I agree with OP, some software are better done.

> I am only inspired to write a blog post every few months...

> Build failures of my static site, which has maybe a few dozen posts...

> Suggestions for alternatives welcome...

Plain HTML? No build process needed.

it's definitely annoying, but it doesn't have to be your problem - just pick a version and then use that forever. go is annoying in many ways but this isn't one of them - you should be able to just rebuild a particular Hugo version for ~ever.
I found Jekyll some time ago and was done.
This is exactly why I prefer a hosted solution.

I have something to say, I just go to https://www.dreamwidth.org/entry/new and write, hit "Post" and I'm done. No need to worry about whether the software is up to date, deal with security issues, etc. That's all someone else's problem.

What do you gain from compiling it yourself and never updating versus picking the binary you consider done and never updating that?
I had a similar situation using Jekyll (before Docker) so I wrote my own SSG, and its compatible with Jekyll frontmatter.

Its been a great experience and completely solid to use. Need a URL shortener feature? Code it into the generator. Want some static search? Code it into the generator. Want to generate a newsletter for certain posts? Wire your generator up to SES and do it.

> Hugo is officially on the chopping block. Suggestions for alternatives welcome.

People are trying to “keep it simple” by introducing a dependency for everything. They say: “There is already an off-the-shelf solution, so why code it yourself? Just pull yet another dependency and be done with it.”.

The problem is that this is never actually the case. In reality, the dependency does 80–90% of what you want, plus 27 other things you don’t need or want.

Then you spend time understanding the dependency, configuring it, coming up with and maintaining workarounds for the 10–20% that you need but are not solved by the tool. Then you need to update and maintain the tool and its configuration, and you won’t ever actually “be done with it”.

My suggestion: Don’t introduce a huge and complex dependency for a static blog with a few dozen posts. When what you want is just compiling a few templates, just do that: Choose a templating language, create a few templates, write a Makefile (or Meson build script, or whatever else), and actually KISS.

Why do they update Hugo if they were happy with past versions? Static site generators can be, you know. Static.

Are you supposed to update these things?

That's why I stopped even using GitHub pages. The amount of (pseudo-)maintenance is unbearable. Seems to counter the idea of a near maintenance free static blog.
I had a similar experience with Hugo and the PaperMod theme. Such a large tool with all the dependencies to then just fail because of version mismatches with the theme.

In the end I sat down two weeks and wrote my own generator in python for my blog. Even wrote my own markdown parser for it. It's a sub optimal implementation for sure, but at least it's all my faults and I may fix them.

My suggestion is to simply build your own static site generator.

It's more upfront work of course, but you don't have to be bothered with the tool changing underneath you.

I've been using Astro for close to a year, and so far it's been quite enjoyable. I hope it doesn't follow in Hugo's footsteps
If you rely on Hugo, then why don't you use a versioned instance of it? You should.not always run the latest version, if you don't want to.change things that are broken.

They keep using the version 0.x.y, which means, they can at any time break things and don't care about backwards compatibility.

I use versioned instances of Hugo and had in all these years zero issues. I can simply test the new version, then do the required changes and adopt it for my build.

I’ve been using Hugo for 7 years on multiple static sites. It has been a joy to learn and to use. I struggled with Jekyll previously along a number of the dimensions OP lists - complexity in the tool chain when there are weeks or months between new posts.

As a number of others have mentioned - pin the version of Hugo you use for a particular project. I do this and it works great for stability. Then I upgrade when I have the time or the need or I want to standardize across projects.