A page from the codebook of coolguy.website


A tool to generate an RSS feed (and a cute webpage) from coolguy’s git tags.

This is a script that runs automatically whenever I push to the coolguy repo and generates the updates/ and rss/ pages.

Its intention is to offer a low-effort, highly-custom way to share all my coolguy updates.

Why I made it

I want to live up to /versionIII of coolguy and practice abundant, chaotic creativity. This is easy-ish to do in private–being abundantly creative into a journal you keep in a top drawer–but a big point of vIII is to share the stuff I make. I found this easier at the start, proudly sharing a rudimentary html page that listed 5 movies I wanted to see. For whatever reason, the better I got at coding, the harder it was to share. I wanted a return to the easy sharing of meaningless pages.

I also noticed a big change in my own excitement in the site. At first, it was a way of sharing my words in a way I hadn’t experienced before. I found myself as excited about writing new code to support these words. I feel equally creative writing out code as I do this personal writing…I’ll spend an evening tending to this site, but it’s in ways that are invisible. I wanted to share these changes too.

The grand idea…an RSS feed

One of the most consistent ways to share updates is with an feed. Many blogging sites have a feature where the site’s RSS feed updates automatically whenever you write a new post, but that type of concept wouldn’t work for Coolguy… For one: I don’t have posts, or any sort of set structure to the site. Too, I wanted to share the “content-free” updates to the site, whether it’s a script I wrote to display the moon, or if I added interesting CSS to a page, or when I do write an html page of five movies I’m excited to watch.

I needed something that gave complete control over the type of updates that went into the feed and how I linked to them.

The Proto Taglog

For my first attempt, I had a command line spell that read from a text file I maintained of updates and converted each line into an RSS feed item. It also generated HTML that I inserted into the “updates” section on the /home page. The main problem with this is that I kept forgetting to use it! Instead of being a tool that fit within my existing workflow, it had a whole new process that I had to remember to do. Often I’d finish some project, get it up online, and feel too exhausted to then write an update. I needed something that was part of my existing flow, where updates were sent out with little effort.

Git magic

I use to track changes to all of coolguy, and to update the server that hosts coolguy. I like the rhythm and diligence of working with git, that you have these discrete moments of time in the site that are recorded in a history that lives alongside everything else. It’s like having a doorjamb filled with the heights of all the children of a home.

The Tags

Within git there is a tag feature, which is a big, explicit marking of a moment in the history of your work. Each tag is given a special name, and you can annotate the tag with an arbitrary amount of notes.

Since I already used git, then the git tags would be a natural fit for my shareable updates. I could have them be formatted however I wanted and, as a bonus, the forge I use creates a zipped archive for every tag. So now someone could have RSS updates and the ability to download the archive of my site at any time. I don’t expect anyone to do that, but the idea of it is charming and mystifying to me.

My hope is that I don’t notice writing updates, but they come out as regularly as I am on this site, and that a rhythm is established that carries me for the next several decades (basically until something better than comes around, if that ever happens.)