Skip to main content
Back to selected work

Case study

Kanaboards

A developer-focused planning workspace where people and AI coding agents read and write the same board state. Agents poll for pending work, claim cards, stream logs, and mark outcomes via MCP — no prompt-copying, no status-dragging. The board is the contract between humans and agents.

Kanaboards product interface
My role
Product design, full-stack development, and agent workflow design
Year / status
2024 · Early access

01 — The challenge

The board and the build lived in two systems.

AI coding agents are fast and tireless, but they have no native way to see what work is ready, claim a card, post progress back, or mark a card done. The human becomes a switchboard — translating board state into prompts, then translating agent output back into board updates. It works, but it's slow and brittle, and it gets worse the more agents you run.

02 — The approach

Make the board the contract.

Kanaboards exposes a Model Context Protocol (MCP) interface with 54 tools across three tiers: core board operations, board management, and sprint/agent tooling. An agent can poll for pending work, claim a card, stream logs as it works, and mark the outcome. The agent side is a hybrid system: the queue lives on the cloud (D1), but the runner lives on the developer's machine. A local daemon polls for assignments and dispatches the chosen runner — OpenCode, Codex, or Claude. Keeping the runner local means the agent runs in the developer's actual environment — same repo, same secrets, same tooling — instead of a sealed cloud container. The human side holds up on its own: boards, columns, swimlanes, card hierarchy, sprints with velocity tracking, calendar, Gantt, and list views, real-time presence through Durable Objects, Butler automation, GitHub integration that syncs PRs back to cards, an encrypted vault, and email-to-card for inbound work. The hard parts weren't the AI — they were the operational discipline around it: leases and heartbeats so a dropped connection doesn't leave a card stuck "in progress" forever, tiered tool access so not every agent can delete a board, and a runner abstraction that absorbs the different CLI shapes, sandboxing, and approval models of OpenCode, Codex, and Claude.

03 — The outcome

Agents and humans read and write the same state.

Kanaboards is in early access with real usage. 54 MCP tools organised in tiers so a client can discover what's available. 62 database migrations on Cloudflare D1. A local runner package supporting OpenCode (stable), Codex (beta), and Claude (beta). Google and email/password auth with email verification. A PR-based deploy pipeline: dev → production, with smoke tests on every promotion. A single Cloudflare Worker handling the app, the API, and the MCP endpoint.

More work

Keep exploring.