For quite a while now, I have wanted to update my blog, do some more writing (both personally and professionally) and generally flex some unused muscles a bit. Fortuna often has sadistic tendencies as some can attest. Consider the recent toppling of the NS8 empire 1, 2, 3, 4, 5, 6 and a great fall of nepotism with recent developments and former employee actions. So many links to criminal conspiracy to defraud and so little daylight; regardless, I have had more than a little time to navel gaze in recent weeks. I’ve long been frustrated by the available tools for blogging. Some of these goals compete with each other and some are onerous due to costs–I want as much of my platform to be free (both as in beer and as in speech) as possible and I want as much control over my platform as possible and I want to have features like commenting and search and analytics and there can be no ads and the word Jekyll may not be invoked. I have an old Blogger site, which I desperately want to retire; and I have a Medium site which I am increasingly frustrated with: from the inability to post articles in the past to Mediums idiotic approach to monetization–what was initially cool about medium is no longer interesting to me. So I set out to figure out how to create the blog platform you, dear reader, are currently (hopefully) enjoying. Broadly speaking, I want to be able to meet these objectives: I considered a number of options, and I won’t go too deep into the pros and cons so much as leave breadcrumbs for others to follow (in no particular order): One “blog” concept that I’ve always liked is by @raganwald is his use of Github for organizing content. I have long considered this approach as it checks off a lot of boxes: The perceived negatives I have had in the past seem to be less of an issue these days with the emergence of a few factors (some relatively new, some a bit older): I did some basic soul googling for Most of my time was occupied fixing annoyances–I spent more than a few hours wrestling with the gh-pages module that I use for automating deploys to, you guessed it, Github Pages. The production build process for Gatsby is much slower than I would like, which is especially annoying in the early phases of development when you’re making lots of minor tweaks and changes. Combine that with trying to guarantee that I cache bust my site with new deploys, the general speed of build+deploy, local caching issues, remote caching issues–and I easily spent most of a day refreshing my browser in a state of uncertainty as to whether I was testing the right version of my code. Once I generally worked through my self-inflicted CI/CD pipeline issues, I am very satisfied with what I was able to throw together over a day and a half. One of the fun bits of doing all this work is that it’s a beautiful combination of development work, writing and designing–all of which I love. I get to keep polishing my dev chops as I work through my backlog of blog posts to migrate as well as explore new technologies and solutions to my own little set of concerns. I’ve historically struggled to find a development problem that aligns with my personal interests, and for the first time I feel like I have the beginnings of a solution here. Still, much remains todo if I want to consider this feature complete: If any of this has been interesting, please let me know in the comments or in the code, which is the blog, which is the code, which…!Blogging to the Oldies
Reality, Meet Opportunity
Goals
Non-starters
Solution
gh-pages
branch, which is how this blog is served.Getting There
blog github pages -jekyll
and quickly found Creating my blog with Gatsby and Github Pages, which was more than enough to get me going. I explored a variety of Gatsby Templates (once I had decided that Gatsby would meet all my needs) and I picked the Gitbook Starter template as a base. There were a variety of things I needed to change–most notably the logic for generating the sidebar tree, which required comparing the template repo with the demo repo.Outstanding Concerns