So I use this app on my phone called “Highball” as my drinks recipe app. It’s very, very, very pretty and reasonably functional, but it is lacking a few things:
- there are no categories or tagging
- there is no search
- you can’t even sort the order of entries
- data entry is not bad but not great
Moreover, I have a bunch of stuff written on scraps of paper or stored in the notes app on my phone. The prospect of manually entering all this into Highball was … ugh.
So I made a thing. The idea here was to simplify data entry, and make sharing with my friends easier, plus address the above problems.
ATTEMPT NUMBER ONE
So I decided: I wanted a static site. But a nice UI would be cool, as would all the features available to powerful CMS platforms. So I installed WordPress locally on my machine, and installed a static output plugin.
It is a shitshow. I got everything I wanted except the most popular static output plugin produced broken output. Pagination was broken on a plugin at version 6.6, their support forum was flooded with complains from October 2019, and it was clear there was no intention to address it.
ATTEMPT NUMBER TWO
I tried Ghost, a popular NodeJS-based platform. It is a shitshow. The same thing as above, except: there is no static output plugin.
See, it’s a headless CMS. So instead we use the content api and send the content to a theme. Well, I found a theme I liked for the dynamic version. I found a standalone version of it but it wasn’t compatible with the content api consumer thing, so I’d have to rewrite everything from scratch, and don’t you know it that not a fucking thing is compatible with a fucking other thing, because NodeJS.
ATTEMPT NUMBER THREE
And of course, it’s in Python.
I had it up and running in a few hours. Everything works, modulo the small number of edge cases (the WordPress import tool defaults to reStructuredText, and I’m a Markdown boy).
I have fiddled with it just a few hours and I got everything I wanted. I wrote scripts to automate the content files, I wrote a script to convert the rst to markdown, I have sync to S3, the works.
And it’s all in GitHub.
So I’m pretty happy with it. I don’t want to become a “booze blogger”. The purpose of this site is to resolve the problems above, not start a second career.
I just wanted a ‘.ninja” domain and it seemed funny, in case you were wondering.