ZenHub
Replaceable in one session with an AI coding agent.
Project management layered on GitHub issues: boards, epics, estimates and reports that read the repository rather than duplicating it.
Build me the planning layer over GitHub that replaces ZenHub. The idea is exactly right and worth copying precisely: **the issues stay in GitHub and nothing is duplicated.** A tool that copies issues into its own database creates two truths, and developers update neither. STACK - Node 20+ with Fastify, server-rendered HTML with a little vanilla JS - SQLite through better-sqlite3, WAL mode — for the layer's own data and a read cache only - GitHub API with webhooks - Caddy in front WHAT LIVES WHERE - **GitHub owns**: the issue, its title, body, comments, labels, assignees and state. Never write a copy you treat as authoritative - **Your layer owns**: sprint membership, estimate, epic relationships, board column when it is not a label, and the history of all of those - A local cache of issues for fast rendering, refreshed by webhook and reconciled by a periodic full sync THE DATA MODEL - issues_cache: repo, number, title, state, labels_json, assignees_json, updated_at, etag - estimates: repo, number, points, set_by, at — append-only, so changing an estimate mid-sprint is visible - sprints: id, name, starts_on, ends_on, goal - sprint_items: sprint_id, repo, number, added_at, removed_at — **append-only, and this is what makes scope change measurable** - epics: id, title, description; epic_items linking issues - column_state: repo, number, column, at SYNCING WITHOUT LOSING THINGS - Webhooks for issues, comments, labels and pull requests - **A reconciliation job that lists everything changed since the last cursor**, because webhooks are lost and delivery is not guaranteed. Without it your board is quietly wrong - Respect rate limits: conditional requests with ETags, and back off on the secondary limit rather than retrying into it THE BOARD - Columns from labels or from your own column state — pick one and be consistent. **Two sources for a card's position is the bug that makes a board untrustworthy** - Drag moves the card and writes the change to GitHub where GitHub owns it - Pull request links shown on the card, because 'is it in review' is the question the board is asked most REPORTS THAT ARE ACTUALLY TRUE - Burn-up with scope on it, from the sprint_items history. **Scope added mid-sprint is the single most useful fact a sprint report contains and burn-down hides it** - Velocity over the last several sprints as a range, never a single number - Cycle time from first commit to merge, which is measurable from the repository and means more than any estimate - Issues open with no activity for a fortnight WHAT MATTERS MOST GitHub stays authoritative, and sprint membership is append-only. The first is why developers use it; the second is why the reports are honest.
What you lose
- Boards that stay in step with issues automatically
- Sprint reports built from real repository activity
- Epics and dependencies across repositories
- No second system for developers to update
If you would rather not build
- GitHub Projects, which is free and does most of this now
- Labels and a saved search, which is the zero-build version
The escape hatch
open source · no votes, no paid placement
Why this verdict
our own opinion · changed only by a person
82/100
Verdict yes at 82: the architectural idea is the value and it is simple to copy. The reconciliation job matters — webhooks alone silently drift.
History
tracked since 14 Aug 2026 · nothing is ever overwritten
Nothing recorded yet. This chart fills in once the page has visitors, votes or prompt copies — it will not draw a flat line to look busy.
Questions about ZenHub
answered from the record above
Is ZenHub free?
No — the plan we track is $8.33 a month. Growth at $8.33 per user per month billed annually.
Can you replace ZenHub by building your own?
YES. Replaceable in one session with an AI coding agent. Replacement score 82 out of 100, build time one session. Read what you lose before you decide.
How much does ZenHub cost?
$8.33 a month on Growth — $99.96 a year. Recorded 14 Aug 2026.
What do you lose by replacing ZenHub?
Boards that stay in step with issues automatically; Sprint reports built from real repository activity; Epics and dependencies across repositories; No second system for developers to update. If any of those carry weight for you, keep paying.
Is there an open-source alternative to ZenHub?
Yes: Plane, Vikunja. The prompt on this page is for when you want it your way instead.
Related entries
same category first, most replaced first
Every week, something stops being worth paying for.
New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.
free forever · no tracking pixel · stored here, never passed to anyone

