Updated Initial Thoughts on Hugo
Update after a few weeks…
It’s worth prefacing this with a short detour as to why I upgraded migrated this blog from Wordpress. I’ve already published some technical and other reasons for it - performance and security mainly - but the subtext to it all was that I wanted to get back in to blogging - and blogging more regularly.
For some reason, I had become convinced - possibly persuaded - that doing this in a static file generator such as Hugo was the way. A fresh start in a new environment without some of the “overhead” of Wordpress would unlock a passion for writing again - and empower me to write regularly.
Well, in the two or three weeks since I’ve completed the initial migration to Hugo I have published exactly -zero- new articles on the blog. This is not for a lack of topics; I have a long list of things to write about. It is somewhat due to a lack of time - a perpetual problem that I will need to address somehow if I am to achieve any of this year’s goals, ever, at all. But this post is not even on the list of topics, and I am writing it, so there must be something else.
I’m a bit scared
I don’t know if scared is the right word. In fact I know it’s not the right word. Blocked is probably more accurate. I’ve been trying to figure out why, and this is what I’ve come up with.
This is all written well in the knowledge that Hugo is a big shift from the Wordpress style of doing things. I know that OK, but nevertheless.
- Source control for publishing is a bit weird
With a traditional CMS, it is so simple to create a new post, work on it for a while, usually with autosave, and then do something else. Come back to it later, possibly in a different location on a different device. This all works well when it’s browser-based with database support; but when you’re file-based with actual sync required then it is easy to get it wrong. You need to remember to save and stage and commit files if you want them available in other places. Habits that are pretty ingrained for developers; but not necessarily for writers.
And given that I write from 2-3 locations and devices, it means maintaining this config / tech setup in all these places. I’ve just got e.g. rclone
working on this machine, but if I do want to publish from another place, I will have to go through all that setup again. It is not something you encounter with a centralised publishing setup like Wordpress.
- Markdown in an IDE is not as helpful as a CMS
I want to link to a previous post in this post. And I want to add to the ‘series’. This would be very simple in a CMS-environment because in-place lookups to the content you want to reference are built-in. In Hugo though - I have to go and find it (from previous posts) and add it in here. It’s slower. This is likely something that will become faster with time and with better acquaintance to the syntax but right now, it’s a roadblock.
- Deploying new content still doesn’t make much sense to me
There are ways and means to deploying. I am still in a “non-standard” environment - i.e. not one of the major cloud providers but fortunately it seems like rclone
has come to help me. But deploying small incremental changes is still a big task. This should still encourage being more accurate initially, but these sorts of changes are inevitable. A simple change still results in minutes’ worth of deployment time as tag pages, modification dates and all manner of other stuff are repeatedly republished. It just doesn’t seem optimal.
hugo new
requires me to remember what follows this just to create a new post. And it craps out if you forget to append .md
to the filename.
- There is various functionality I’ve given up on
I would like a site search. I would like a Twitter feed / integration. I’ve abandoned trying to port old comments to this. It is all possible, if you’re willing to put the effort in, but these things don’t “just work” as I’ve come to expect from modern tech. This is as much about me and my willingness to invest the effort. I asked in the forums around something and was responded to with a LMGTFY style Google response. It said a lot.
- Publishing is just slower
There is a certain geeky pleasure from the way Hugo works - commandline stuffs and using an IDE is different and fun and whatever. But it is lacking compared to for-purpose CMS systems. I’m not saying I want the block editor from WP… but maybe somewhere in the middle. I think frontends exist for Hugo so at some point, I may give one a shout. But for instance I now find that I limit the number of tags and categories I assign to posts because I know the impact this will have on the deployment; this is totally not the way I want it to be because I know that tags and keywords make a difference to SEO. A single change takes at least 1-2minutes to publish now and this just doesn’t really support my (current) workflow - which is publish quickly then iterate.
For now at least, Hugo survives, but I’ll be honest, I’m not very hopeful at present for its long-term survival.