A new beginning
First published on 2025-10-27.
Well here we are again.
I initially began drafting a version of this post around a couple of years ago, when I was pretty sure that I was going to release an updated version of this website.
The entire story started when I got around to burying my old site which I made while learning HTML in primary school (needless to say it needed a pretty large makeover). During that time, as I was working on the updating this site, I setup the domain to redirect to my GitHub profile as a temporary placeholder.
Sadly, this pretty trivial task turned into a spiral of procastination and burnout, proving the old adage that nothing is as permament as a temporary solution.
The old website, for old times' sake :)
The prison of choices
The problems started when I got around to choosing which site. In the end I've spent a way too long of a time playing around with each instead of writing stuff. In general, the lifecycle of choosing a new generator was "my site is down for too long, let's fix it with this shiny new tool!" and it ended in a couple of days before other obligations caught up to me and I forgot about it again.
In the rough order I've attempted to use:
- A custom M4-macro based generator: this seemed to work for a while, but the internals of the m4 processor and the amount of pre-requisites required for it to be reasonably convenient won in the end.
- A custom Makefile & C preprocessor: while the quest for simplicity over the M4-based approach was in part successful, there sadly were problems with templating stuff like titles and whatnot, so it didn't work out all that well...
- astro.build: this looked quite promising for a long while, but in the end the quest for components and extensibility brought about burnout and the lack of a concrete site in the end (this was also a lesson in premature abstraction).
- hakyll: similar story as above, this also looked promising, but I've shot myself in the foot a bit while trying to implement tags and categories, and never got around to finishing it in the end.
- soupault: this seemed to be the perfect solution for a bit, in particular I've long thought of trying to do myself the layer-based approach it implements. Sadly there were some technical difficulties with the exact way of layer application and setting the metadata.
In the end most of the issues were caused by overplanning features, in particular the site's metadata headers and the category/tag system for posts. If only there was a way to force myself into not thinking too much about them, hmmm...
The freedom of contraints
When I first discovered the Gemini protocol sometime earlier this year, I was suprisingly amused by it's simplicity. In particular I was very keen on it's Gemtext format which limits the syntax to just five formatting options other than raw text. This contraint put on you by the protocol allows readers to adjust the content's display style to their needs, while the writer is also free to express themselves without putting much effort into how the site should be presented.
A couple of weeks ago I've decided again that I want to finally refresh this site and got around to searching for a reasonable solution to allow me to dual-host this content on both the Web and the Geminispace – this is the way I've found gemtexter. While I've had a couple of minor issues with it (mainly as it is pretty opinionated, which is not a bad thing in itself), the software itself is pretty extensible so I've forked and made some changes to suit my taste better (at the time of writing I still have some of them to do, and I may try to upstream some if I find them not-too-hacky).
Gemtexter's original upstream
My forked version of gemtexter
More details about the site's internals in the about section
What the future holds
I admit, this post was at least in part created to fill in the void currently present on the site (so as not to publish the site with an empty list of posts), but don't worry – it definitely won't stay that way for long this time ;).
Anyways, thank you for reading and cheers!
