Iwritetheplan.
The pipeline does the rest.
I'm Declan, an Engineering Manager living in Melbourne.
This site is where I track my experiments — the AI projects and tools I'm building, shipping, and learning from in the open.
Growth
The results so far.
44,852 search impressions across both, in 6 months.
Google Search Console data from webtoolsforge.com and pagespeedfix.com. I started both before the pipeline above existed — what I learned running them is what the pipeline now scales.
Last 30 days · Pipeline
The workflow
One queue, two agents.
This is how the projects below get shipped — Hermes queues, Claude Code lifts, I review.
- — quick fixes via Codex
- — chat / status reports
- 01
Mac
Write the plan
I draft a markdown plan in my editor. Frontmatter names the target repo, the body is the brief. Save to
plans/pending/, commit, push. - 02
VPS
Hermes picks it up
Hermes is my PA on the VPS. It runs a small hourly cron that walks
plans/pending/, and it answers chat over Telegram. For small things — typos, tweaks — Hermes uses Codex directly and opens the PR itself. - 03
VPS → GitHub
Claude Code does the heavy coding
For substantive plans, Claude Code takes over: a 4-stage orchestrator runs
code → pr-draft → review → pr-ready. Each stage records state to JSON. Transient failures auto-park and retry; permanent ones land infailed/. - 04
GitHub
PR opens on GitHub
The PR is drafted with the original brief in the body, reviewed by a second Claude pass, then marked ready. I get a Telegram ping from Hermes when it's ready for me.
- 05
GitHub
I review and merge
I open the PR whenever I get a chance. Merge if the diff looks right, or push a follow-up plan and let the loop run again. Most plans I never touch the code on — I write the next plan.
Coding tasks queue up faster than I can do them. Markdown is a good enough queue format. So I split the work: Hermes — my PA — handles the chat and quick fixes via Codex; Claude Code does the heavy coding from the markdown plans. I review and merge.
A Hostinger VPS runs both agents in Docker containers. Tailscale gives me private access from anything I own; Cloudflare Access gates the public dashboards on *.dekk.dev. A post-recreate.sh hook rebuilds the agents, tunnels, and SDK patches after any docker compose up.
Selected work
Projects.
pagespeedfix.com
LiveMonthly7,780 visitsAn SEO playbook tested in public.
Visit ↗
webtoolsforge.com
LiveMonthly4,635 visitsSame playbook, different surface — does it generalise?
Visit ↗
POD Engine
LiveStatusLiveCan one AI agent run a print-on-demand store with me only at the approval gate?
By invitation
New project
WIPA data-driven product on Australian housing affordability. More soon.
Details to come