-
Why This Project Exists
Outline about why this project exists. Why I created it. What the purpose is: a manually written overview by a human.
-
Anatomy of a small change: from a phone prompt to production
One sentence typed on a phone became a reviewed, tested, deployed and verified release. Every step of a real change, with timings, code and the checks in between.
-
Merge to deploy: the Phase 7 pipeline
Merging a pull request now deploys it, with no manual step. How the pipeline works, how it was tested, and the bug its first real run found.
-
Closing a root hole in the agent's sudo
The agent's "limited" sudo access turned out to be root in disguise, three different ways. What was wrong, how it was fixed, and how the fix was tested.
-
New feature: pinned posts
One header line keeps a post at the top of the blog. What it does, the design choices behind it, and how it was built and shipped as v0.5.0.
-
Upgrading to Go 1.27: what govulncheck found
The apps were built with a Go release that no longer gets security fixes. How the problem was found, what was affected, and how the fix shipped in two steps.
-
VPS part 5: The review and release workflow
How an AI agent and a human admin ship changes — branches, compare links, release records with screenshots, tags and deploys.
-
VPS part 4: Building posts.monoexp.com
The blog you're reading — a Go app that turns a folder of Markdown files into a site, with no database and no JavaScript.
-
VPS part 3: Self-hosted git with Gogs
A small git server behind nginx, how the agent gets access, and working around a missing pull request API.
-
VPS part 2: Deploy tooling and conventions
Two short deploy scripts, the rules an AI agent follows on the server, and a scratch host for testing deploys.
-
VPS part 1: The foundation
The server, accounts, nginx layout, TLS and the systemd template every app runs under.
-
Hello, world
The first post, and a guide to writing one — file names, the header block, and what Markdown works.