I started this repo because I wanted a place to publish projects, then kept rebuilding it until it could actually support the kind of technical writing and project history I wanted to put on it.
This series is a short history of that evolution: from a basic static site, to a more structured Gatsby content system, to notebooks and plugin work, to maintenance fights, to the recent blob-storage, editorial tooling, and LLM-assisted writing workflow.
The series is dated from the repo’s first commit in 2019, but the story itself runs through the more recent editorial and LLM work in 2026.
Each article focuses on one problem arc rather than trying to retell the entire git history.
The through-line is pretty simple: every time the tooling got in the way of the kind of work I wanted to publish, I either changed the workflow or pulled more of the system into the repo so I could control it.
If you read the whole series, the takeaway I want to leave is that this portfolio is not just a gallery of finished projects. It is also a long-running exercise in building the system that can hold the work without flattening it.
Migrated a portfolio from unmaintained Gatsby to Astro after evaluating Next.js and Contentlayer trade-offs
Migrated portfolio from Zola to Gatsby and React to gain component-driven layouts, richer plugin ecosystem, and more flexible theming
Designed a Gatsby content architecture supporting articles, series, clusters, and tags with custom page-generation logic
Built a git-narrative tool that analyzes commit history, file churn, and diffs to produce structured article scaffolds with development arcs and problem summaries
Recovered a broken Gatsby publishing stack from years of toolchain drift by pinning dependencies to GitHub commits and vendoring unstable components
Built a custom Gatsby remark plugin to embed Jupyter notebooks inline within markdown articles, preserving experiments and code as narrative evidence
Built a content-addressed blob storage system to deduplicate project media across repos while preserving git-driven directory structure and rsync-based recovery