Blog Setup: Challenges

This post is part of a series: Blog Setup. I also faced some difficulties getting started with the blog. I spent way too much time creating the Github Action that deploys my content to Netlify. I failed so many times before getting it right, I exceeded Netlify’s free tier 🤡. Most of the difficulty actually came from the “extra” functionality with Lychee link checking and Vale linting. Although I was able to get both of these tools running well locally on my machine, I ran into challenges getting them to run in the pipeline. ...

February 25, 2026 · 4 min · 782 words · me

Blog Setup: Tools

This post is part of a series: Blog Setup. Tools I am using Mise to handle installing all of the tools I need to develop/build the blog. The .mise.toml file in the repository defines these tools, so I can simply clone the repository, install Mise, and run mise trust && mise install on a new machine to get up and running. Mise is also useful in container environments and CI/CD pipelines, it can ensure I’m installing the same tools in every environment, with version pinning for ones I want to control upgrades for like the hugo CLI. ...

February 22, 2026 · 2 min · 289 words · me

Blog Setup: Choices Made

This post is part of a series: Blog Setup. While setting up the blog I had to make a number of choices that affect the short and long term health of the blog. Deciding where and how to host the code and the static site, what tooling to add, how to structure the repository, etc. Git Forge Spoiler: I went with Github. I considered many options for where to host the source code for the blog. Github is an obvious frontrunner, partially becaause I am already active on Github, but also the network effect. While I don’t promote my blog, I also like the idea that I’m not just shouting into the void with my posts, and discoverability is best where the people are. ...

February 19, 2026 · 5 min · 1044 words · me