Introducing: The Booze Ninja

I made a site.

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.


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.


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.


Ahhhhhh, happiness.

Good docs. A port of the theme I liked. Command line tools.

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.

Leave a Reply

Please log in using one of these methods to post your comment: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s