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.

785
Queries ranking
72
Indexable pages ranking
45k · 160c
Impressions · clicks
14,083·Jun '26
16,3050Jan '26Feb '26Apr '26Jun '26

Last 30 days · Pipeline

14
Plans queued
11
PRs opened
4h ago
Last ship

The workflow

One queue, two agents.

This is how the projects below get shipped — Hermes queues, Claude Code lifts, I review.

Step —
  1. 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.

  2. 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.

  3. 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 in failed/.

  4. 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.

  5. 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

Get in touch

Hiring or curious?

Happy to hear from you either way.