blog
Blog
Notes on web development: Next.js, WordPress, performance, and the places I tripped up on real projects.
Loop engineering: stop prompting the agent, design the loop that prompts it
Building a loop for an agent now takes fifteen minutes. The hard part is putting something inside it that dares to say "no". The five moves of one pass, five ways a loop fails, and the real loop on this site, which is halfway there.
- Published
Stop committing out/: a CI/CD pipeline that builds static files on the server
29 of the 51 commits in this repo touched the build output folder. How I dropped it for good: a self-hosted runner that builds on the server, a publish that is one symlink swap, a Cloudflare purge, and three bash traps that only showed up under test.
- Published
Gemini 3.6 Flash on Antigravity CLI: 17% fewer output tokens
Google replaced Gemini CLI with Antigravity CLI, and 3.6 Flash is the model worth making the default in the terminal. How to pick a model with agy, run it headless, and work out the cost of one agent run.
- Published
Tencent's Hy3: a 295B model that runs at the cost of a 21B one
Hy3 has 295 billion parameters, but each token passes through only 21 billion of them. The MoE architecture, its benchmark scores next to GLM-5.2, the price once the free tier is gone, and which jobs to give it.
- Published
codebase-memory-mcp: a knowledge graph for your codebase, and what to watch for
One C binary indexes a whole repo into a knowledge graph, so the agent asks with a graph query instead of grepping file by file. How to install it, the three tools I use most, and two silent failures that leave the graph incomplete while it still reports indexed.
- Published
PageSpeed optimization for WordPress: what actually changed in 2026
Google did change a few things in 2026, but not the Core Web Vitals thresholds that many articles claim. Here is what really changed, and the order of work for a WordPress website.
- Published