Blog
Home

A single backlog for all my side projects

1 September 2026 · 74 views

I run a handful of side projects — this blog's API, a Kubernetes practice lab, a couple of others — and for a while each one had its own scattered todo list: a README section here, a half-remembered "I should really fix that" buried in an old chat session there. It never stuck.

One board, tagged by project

The fix was almost embarrassingly simple: one GitHub Projects (v2) board, not tied to any single repository, with a Tag field (blog, lab, ...) to separate items by project, and a Status field (Todo / In Progress / Done) for the usual flow. Items are draft issues rather than real linked GitHub issues — so a todo doesn't need a home repo before it's allowed to exist.

Letting Claude write to it directly

The part I actually like: I gave Claude a fine-grained GitHub token, scoped to nothing but read/write on Projects, stored the same way as every other credential these projects need — a per-project secrets file, never committed, loaded into the shell automatically. Projects v2 has no REST API, so everything goes through GitHub's GraphQL API directly. Claude reads the board's fields and existing items first, then adds new ones as draft issues with the right Status/Tag set, matching the convention already there.

So when a working session on any of these projects surfaces something worth doing later — a follow-up fix, a rough edge found mid-conversation — it goes straight onto the board instead of getting lost. Earlier today, while building this blog's write API, five loose ends got added the same way: a missing field, a permission that needed extending, a logging gap. Nothing dramatic, just the normal cleanup list every project accumulates — now it actually stays somewhere.

Co-authored with Claude.

If this was useful, you can buy me a coffee.

New articles: follow via RSS.

Comments

← All articlesView as Markdown