Today, I learned that it’s possible to “vendor” Hugo modules. By vendoring Hugo modules, Hugo will add all required module files to your site directory and use them when building your site instead of trying to download them first. No need for me to use a module cache on Drone anymore and two seconds less build time. (But 3000 additional files in my blog repo.)
hugo mod vendor
After trying to write my own static site generator as an experiment, I now started to write my own CMS. Written in Go, SQLite as database (SQLite is awesome!) and focused on performance and simplicity. Currently I’m using Hugo with a number of dynamic additional services (for Micropub, Webmentions, ActivityPub, …), so it’s almost questionable why I use a static page generator at all. If I use my own lightweight and high-performance CMS, I could save myself all this extra stuff or at least reduce it in complexity.
Because I don’t have enough side projects yet, I started programming my own static site generator, with the creative name GoBlog. I doubt it will replace my use of Hugo in the near future, but it is exciting to write a Go program that is designed for high speed. I get to know features that I have never used before. I also learn what to pay attention to when thousands of files have to be parsed and processed concurrently. Maybe I will never be able to use this project for anything useful, but side projects are mainly there to have fun or learn something useful.
To give readers a bit more context, I’ve extended my Hugo theme so that it will be displayed below each post if it is mentioned or linked in another post on my blog. This increases the build time from about 7 to about 17 seconds (on my machine it takes 2 seconds, but it is also much faster than the VPS), but I don’t know how I can make it more performant. After all, for each article it is necessary to iterate through all the other articles and see if the content contains a relative link to the post.
I played a bit with 11ty today and came to the conclusion to stay with Hugo for now. Much of what Hugo brings with it (multilingual websites, taxonomies etc.) has to be done manually. Sure, 11ty is much more flexible and everything is somehow possible, but somehow it’s too much effort for me (at least for the moment). I have a working Hugo site and it would be best to stick with it for now and start thinking more about things I can blog about instead of just the site itself. And I should also focus on my studies…