SecondBrain/backlog-system-options-rese...

90 lines
11 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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]]).
- **P0P3 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 (P0P3 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 (20252026)
- **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.