Yet Another Blog Engine

Created 2025-08-31

Every few years, I migrate the blog to a new engine or software, almost without fail. That time has arrived aright on cue, to rip out the last incarnation in the form of a hugo static site.

If I think about this in the right order, the very first iteration was in the form of a flat file cms (which formed the basis of nanocms), and then I moved to wordpress where it stayed there for quite a while - though I kept iterating on the theme. That theme and the plugins I wrote back then is still the basis for my photo blog and still carries the name “twentytwelve_kc” following the wordpress theme release naming convention.

At some point I had to migrate servers (the reality of running my own servers was starting to hit me that I was wide open for script kiddies) and the setting up wordpress, mysql etc from scratch was a pain. It was pre-docker everywhere too. I did that anyway, vowing to keep things sane with Ansible. That didn’t last very long as it became a bespoke thing that diverged too far away from what source in my repository hinted it at.

Being sick of wordpress, I attempted to court Ghost. It had everything I wanted: sqlite support, markdown writing interface, file uploads, etc. It was a breeze to setup. As time went on it became evident nodejs ecosystem and stable software do not go hand in hand. Much before I even learnt about node_modules (and I’ve known JS for very long time) I touched the fire. Upgrades were a massive pain. The last straw was when I was performing a ghost blog upgrade, some packages it depended on required newer dependencies. Which then required newer nodejs version, which then required new system library version, and when it asked for a new compiler version to fix it, I gave up.

My philosophy on blog engines, cms’s changed after a touch of self contemplation on my own mortality, that none of this will outlive me. Internet is not forever, our life is not forever, and its possible to survive them both together, only when both are cultivated as a garden. So, static files it is, or so I thought.

Then came my rodeo with jekyll. That didn’t last very long either. Remember, all of this was pre docker-everywhere days, and ran into even more problems, mostly emanating from my utter lack of knowledge about Ruby or its ecosystem. Am pretty sure this was on mac, and apple’s garden of different system interpreter versions was something I was just coming to face to face with. Those days system python2 was still good enough and polluting system pip witch packages was no big deal.

At this point, I gave up and decided to roll my own. I knew I wanted an editor UI, so ended up building that too. It was clunky and cumbersome to build and maintain. I found myself having to open my IDE to compile before I could use, which I often did in debug mode. That is a sure way to kill any ideas of writing.

While I quickly gave up on my static site generator, I did not give up the UI. I build another layer on top to publish with Hugo. The net result was I did not write a post for 3 years.

Am now giving it another try. I rolled up a new engine that I am calling #Oddity that is inspired from Oddmu, but a clean re-implementation. It comes with a markdown editor UI (which syntax highlighting), but still writes to flat markdown files. And its written in Go. It still has missing features (eg: tags don’t work and will 404), but I was happy enough to publish it. Hoping this enables me to write more.

#blog #blog-engine