Writing
Notes on what I'm building, what worked, what broke, and what I'd do differently.

13 min read
How my GridPane dashboard works, and where GridPane's API stops
Matchless Fleet is the private app I run my GridPane servers from. A page-by-page tour: what syncs with GridPane, what's display only, and what's still copy and paste.

Shipped5 min read
Retiring my WordPress speed course for an AI agent skill pack
Holy Grail WP taught WordPress speed by hand for years. It's retiring: the Site Speed Pack has an AI agent do the work and prove nothing broke.

Shipped5 min read
Two WooCommerce stores redesigned on Bricks, every email redone
A surprise redesign for one of my first clients, and an AK parts store relaunched on Sunday: two WooCommerce stores rebuilt on Bricks, every email redone.

Shipped5 min read
A Black Friday email signature sale, tracked from ad to revenue
Simple Email Signature's Black Friday sale is live at 20% off the first year, with posts, Meta ads and Stripe revenue tracked in one Google Sheet.

Shipped5 min read
Campaign tracking for ad leads, and why response time matters
A $39 skill pack that ties every lead and sale to the ad that brought it, and a study on why the first hour after a lead arrives matters most.

6 min read
Trying the 8G firewall beside 7G on GridPane, in watch mode
8G Helper names the 8G rule behind a blocked request, and shows how to run 8G in watch mode beside 7G on GridPane, so false positives turn up first.

6 min read
I built a 7G firewall exception generator for GridPane
7G Helper reads a blocked request from a GridPane 7G log, names the rule that fired, and writes an exception scoped to that one request. Free, in the browser.

Shipped5 min read
A dark mode email signature funnel, and 25 codes for testers
An AI audit said Simple Email Signature had no social proof. So I built a free-signature funnel and set aside 25 free codes for honest testers.

Shipped5 min read
An AI writing workflow with three blind critics
I built a scheduled AI writing workflow where three blind critics must rank a draft above two rival articles before it can publish. Its first run lost.

Shipped3 min read
A weekly blog post with Claude Code and GitHub Actions
How I write one post a week about what I shipped: GitHub Actions gathers the commits, Claude interviews me about the week, then drafts it for my approval.

4 min read
BTC DCA Engine is now listed in ChatGPT's plugin directory
BTC DCA Engine is now listed in ChatGPT's plugin directory. Here's what OpenAI's review asked for, and what a ChatGPT user gets now.

4 min read
Why this blog runs on EmDash, and why nothing else of mine does yet
This blog is my first real EmDash site. Why I picked Cloudflare's agent-first CMS for it, what I'm testing, and why I'm not moving anything else yet.