90 lines
11 KiB
Markdown
90 lines
11 KiB
Markdown
---
|
||
summary: Research on self-hosted, AI-CRUDable kanban/backlog systems (2026-07) — Storybloq, Planka, Vikunja, Plane, Backlog.md, beads, Obsidian Bases kanban — with comparative verdicts for a solo freelancer running Claude Code + SecondBrain vault
|
||
tags:
|
||
- scope/global
|
||
- type/reference
|
||
- domain/task-management
|
||
- tool/claude-code
|
||
- project/cc-os
|
||
last_reviewed: 2026-07-06
|
||
---
|
||
|
||
# Backlog system options research (2026-07-06)
|
||
|
||
Research question: a personal, cross-project backlog with (a) a visual kanban dashboard, (b) full AI CRUD (Claude Code), (c) self-hosted, (d) modular/low-maintenance, (e) multi-domain — software dev, freelance client management, business development, property management, general projects. Researched via three parallel sonnet subagents (web research; claims below not all hands-on-verified — see caveats).
|
||
|
||
Decision + pilot plan: [[vault-backlog-pilot-plan]].
|
||
|
||
## Requirements that emerged during framing (not in the original ask)
|
||
|
||
- **Recurrence is first-class**, not an afterthought: property maintenance (winterize spigots, HVAC/electrical/plumbing checkups via Woodfin) is date-driven, and a kanban alone doesn't do it.
|
||
- **ADHD constraint is load-bearing**: out of sight = forgotten. A board that must be opened, or a hook that fires only when a session starts, does not by itself surface anything. The system needs a push/surfacing layer (this became the central finding of the perspectives review — see [[vault-backlog-pilot-plan]]).
|
||
- **P0–P3 priority + effort metadata** for a morning "most important + quick wins" view; `someday` status that backgrounds items without deleting them.
|
||
- **Fifth-backlog trap**: Forgejo issues, OpenSpec changes, build-plan docs, and vault open-items already exist. A new system must consolidate the "where did we leave off" question, not add another place to check.
|
||
|
||
## Options evaluated
|
||
|
||
### Storybloq (github.com/Storybloq/storybloq) — inspiration, not a fit
|
||
|
||
Cross-session context persistence for AI coding: `.story/` dir of plain JSON + markdown (tickets/phases/notes/lessons/handovers), git-tracked, no server. 53 MCP tools + full CLI parity + importable TS library. v1.5.0 (2026-07-05), ~2.5 months old, 653 stars, 2 contributors, PolyForm Shield license (source-available, not OSI).
|
||
|
||
Disqualifiers: the kanban dashboard is a **Mac App Store app** (Linux user — the visual requirement is unmet); per-repo and coding-session-continuity focused (overlaps memsearch + journal hooks, ignores non-code domains); young; repo-scoped, against the global-capture direction (ADR-015 era).
|
||
|
||
Worth stealing: file-per-entity storage, handover-document concept, board-watches-files-live pattern, MCP tool surface breadth.
|
||
|
||
### Hosted self-hosted PM tools
|
||
|
||
- **Planka** — best of the hosted class. Trello-grade UI (~12K stars), lightweight Docker deploy, board-per-domain, AGPL. Key differentiator: **5+ community MCP servers** (mgertz/mcp-planka, bradrisse/kanban-mcp, etc.) giving Claude Code full CRUD with zero integration work. Named fallback if the markdown-native route fails.
|
||
- **Vikunja** — strongest horizontal PM design (projects as top-level units, custom fields, kanban/gantt/table views, documented REST API), v2.0 2026, but no CLI/MCP — hand-wired REST only. Heavier deploy (Go + MariaDB).
|
||
- **Plane** — Linear-class, first-party MCP server, workspace-level cross-project views, 49K stars. Built for team sprints/velocity; overkill + heaviest ops for a solo user. Good SWE-team option, wrong scale here.
|
||
- **Forgejo project boards** (existing infra) — weaker than hoped: repo-scoped (can't span domains), `tea` CLI does **not** cleanly expose board CRUD, board API underdocumented. Fine as the code-level tracker (issues), not as the portfolio board.
|
||
- **Kanboard** (maintenance mode, 2013 UX, no AI path), **Focalboard** (abandoned standalone, June 2024), **Huly** (no API/CLI/MCP found), **Taiga** (successor limbo), **OpenProject** (enterprise-heavy), **WeKan** (no advantage over Planka) — all ruled out.
|
||
- **Notion / Airtable / Linear** — fail self-hosting outright.
|
||
|
||
Structural cost of any hosted tool: backlog items live outside markdown — no wikilinks to how-to notes, no Graphify edges, no memsearch adjacency, a second source of truth. The Notion rental-property pattern (item note referencing contractor/how-to notes) is exactly what a DB-backed kanban can't express.
|
||
|
||
### Markdown / agent-native
|
||
|
||
- **Backlog.md (MrLesk/Backlog.md)** — best standalone agent-native tracker. Tasks as markdown+YAML files, agent-first deterministic CLI, web + TUI kanban, user-level `~/.backlog/<slug>/` workspaces spanning repos. 5.8K stars, MIT, active. Cost: a second markdown store outside the vault with its own schema. Devil's-advocate correction: Obsidian wikilinks **do** resolve into its files, so the "no wikilinks" dismissal was overstated — it is the primary fallback and the design template for the CLI ergonomics (`backlog task create "..."`).
|
||
- **beads (steveyegge/beads)** — 18.7K stars, git-backed issues with dependency DAG, MCP support, excellent for code work but repo-centric and code-marketed; wrong shape for property/client domains.
|
||
- **vibe-kanban (BloopAI)** — multi-agent orchestration kanban; post-commercial transition (Bloop shutdown 2026-04) = maintenance risk; orchestration-focused, not general PM.
|
||
- **kanban-md, agent-kanban, taskmd, VS Code Agent Kanban** — smaller/younger variants of the same file-per-task + YAML pattern; confirm the pattern is the 2026 consensus for AI-agent task tracking, none clearly beats Backlog.md.
|
||
|
||
### Obsidian-native (the chosen lane)
|
||
|
||
- **Obsidian Bases + board plugins** (Base Board by mderazon; obsidian-bases-kanban by xiwcx; Kanban Bases View) — kanban views over note **frontmatter**: columns map to a property (e.g., `status`), drag-drop writes back to frontmatter. Actively maintained 2026, built on the Bases custom-view API (~May 2026). Each card = a normal vault note → wikilinks, facets, Graphify, memsearch all apply. **Caveats (unverified hands-on):** multi-property filtering, ordinal sort (P0–P3 must not sort lexically wrong), drag-write reliability, and mobile rendering (custom Bases views are a known mobile weak spot — expect desktop-only) all need a spike before commitment.
|
||
- **mgmeyers obsidian-kanban** — de facto unmaintained; stores board state in markdown lists (fragile for external edits). Skip.
|
||
- **TaskNotes / obsidian-pm** — same note-per-task + frontmatter pattern with their own view layers; alternatives if Bases board plugins disappoint but a plugin dependency remains either way.
|
||
- **Tasks + Dataview** — good read-only reporting layer, weak for agent-driven mutation; not a primary store.
|
||
|
||
## Comparative verdict (v1, superseded same day)
|
||
|
||
Vault-native (task-type notes + Bases board views + thin deterministic CLI) won on every axis except maturity-of-dashboard: one system instead of a fifth backlog, matches the proven Notion property pattern verbatim, items become graph nodes wikilinked to how-tos, AI CRUD nearly free via existing os-vault plugin machinery, self-hosted/synced by construction. Fallbacks: Backlog.md, then Planka.
|
||
|
||
**This verdict was overturned the same day** when the user clarified that an anywhere-visual board (view + interact from a phone, any time) is the *primary* requirement, not secondary to push — "when I want to jump into a project I have no visual interface to see what's on the docket" is the founding pain point, and conversational access doesn't satisfy it. That made vault-native's dashboard/mobile weakness disqualifying and made Planka's data-outside-markdown weakness a solvable development problem. See [[vault-backlog-pilot-plan]] (v2) for the standing decision.
|
||
|
||
## Second pass (2026-07-06, same day): Planka deep-dive + modern-alternatives sweep
|
||
|
||
Two more sonnet research agents after the requirement change.
|
||
|
||
### Planka health + Pro paywall
|
||
|
||
- v2 GA Feb 2025 (major rewrite); tagged releases slowed sharply after (last ~Apr 2025) while commit activity continues — reads as **mature/stabilizing with a commercial turn**, not dead. 12K+ stars, active governance, 426 open issues.
|
||
- **Pro tier paywalls three features we need:** recurring cards, cross-board global view/search, notification providers (100+). Also Pro: calendar view, card inbox. CE keeps the full board (cards, lists, due dates, labels, checklists, comments, markdown, attachments, time tracking). Free UI carries a "Pro discovery" banner (community disliked it; cosmetic).
|
||
- **Workaround pattern (the v2 plan's core move): compose around the REST API, never modify Planka.** Our own `tick` script does recurrence (idempotent elapsed-time catch-up — better than Pro's, and portable); CLI/digest/SessionStart brief aggregate cross-board via API; digest is script-sent so Planka's notifiers are irrelevant.
|
||
- **Mobile:** official app + third-party Planka Pal + responsive web exist, but drag-and-drop quality on phones is *unverified by anyone* — hence the phone test as the day-1 gate.
|
||
- API: REST CRUD is real (SDKs: plankapy for Python); **no official CLI** — we build a thin Ruby one. Token *scoping* story unverified (historically user/password auth; API keys were a feature request) — verify at deploy; matters for per-profile agent credentials.
|
||
- Ops: compose + Postgres, ~512MB class; AGPL fine for personal use.
|
||
|
||
### Alternatives sweep (2025–2026)
|
||
|
||
- **TaskView** (taskview.tech) — the only on-paper Planka-beater for this spec: native iOS/Android apps talking directly to self-hosted instance, first-party MCP, **scoped API tokens** (best guardrails fit). But source-available (~Jan 2026), ~400 users, thin sourcing — *modern-and-unproven*; claims need hands-on verification before it even makes a shortlist. Fallback #1 if Planka fails the phone gate.
|
||
- **Donetick** — mobile-first recurring-chore tracker (natural-language recurrence, native apps, single Docker+SQLite, REST). Nails the property-maintenance lane specifically but is a *second system* (fifth-backlog trap) — noted as a lane-specific fallback if tick-driven recurrence annoys, not adopted.
|
||
- **Vikunja** — v2 era, strong API, kanban view, but mobile app explicitly alpha; no MCP. Revisit 2027.
|
||
- **Flux** (sirsjg/flux) — MCP-first agent task graph, CLI/git-native, no mobile board; different paradigm, not a fit.
|
||
- WeKan / Focalboard / Tasks.md / Kanboard / Nullboard / Tracks — none prioritize mobile; eliminated.
|
||
|
||
### Hosting note
|
||
|
||
Deployment target chosen: the **OVH prod server** (`~/servers/ovh-prod/`, Traefik + auto-SSL + auto-backup pattern) rather than the home Proxmox box — always-on independent of home ISP, phone-reachable without Tailscale. The SecondBrain vault does **not** sync to OVH and doesn't need to: Planka state is Postgres; all integration is REST + git; cards reference vault notes by name/URL.
|