OKR Tracking App Starter · Industry version
OKRs shaped for product and engineering orgs — metric-fed key results, roadmap links, pivot-friendly cycles — in code you own.
Startup OKRs fail in two familiar ways: key results that are really a feature list, and a quarter-two pivot that makes the tree fiction. This starter models both problems — metric-backed KRs fed from live data, and cheap re-planning that keeps history — and hands your team the code.
01 · The problem
Generic goal tools treat a key result as a number someone types in weekly. In a product org the honest numbers already live somewhere — activation rate in analytics, uptime in monitoring, revenue in billing — and retyping them invites drift between the OKR page and reality. The KR should read from the source, and that requires the goals system to be integrable, which a closed platform decides for you.
The output-versus-outcome fight also needs structural help. Engineering teams naturally write 'ship the new onboarding' as a key result; the discipline of pairing every initiative with the metric it's supposed to move is easier when initiatives and key results are different objects that link — not one free-text field doing both jobs badly.
And startups re-plan. A funding event, a breakout feature, a churn scare — the Q2 tree gets rewritten in week five, and a rigid cycle model either blocks the change or destroys the record of what was originally committed. Pivots need to be cheap and history needs to survive them; most tools give you one or the other.
02 · Data model
Everything in the base OKR Tracking starter —
objectiveskey_resultscheck_insreview_cyclesfeedback_entriesteams— plus the entities this industry actually runs on:
| table | what it holds |
|---|---|
initiatives | The projects and bets — shipped or planned — linked to the key results they're supposed to move, keeping output and outcome distinct. |
metric_snapshots | Timestamped key-result values pulled from analytics, billing, or monitoring — so the number on the goal page is the number in production. |
03 · Screens
Company bets cascade to squad objectives without pretending the org chart is the whole story: a platform team's objective can serve two product bets at once. Cross-links are modeled, so shared-dependency goals stop being duplicated in two trees.
Key results wired to a data source update themselves from metric snapshots; the weekly human check-in shrinks to what data can't say — confidence and blockers. Nobody transcribes dashboards into a goals tool on Friday afternoon.
Mid-quarter re-plans are first-class: retired objectives close with their history intact, replacements link to what they superseded, and the cycle report shows both the original commitment and the pivot. Honest quarters, even the chaotic ones.
04 · In practice
Leadership sets three company bets; squads draft objectives against them and pair each initiative with the metric it should move. The tree review catches orphan projects before the quarter starts, not at the retro.
Overnight, metric snapshots update every wired key result. Owners get a short prompt for confidence and blockers on the few that moved the wrong way, and the Monday leadership view is already current.
A competitor launch reshuffles priorities. Two objectives are retired with their check-in history preserved, a new one enters mid-cycle linked to the retired pair, and the quarter's story stays legible for the retro.
Yes — that's the point of the metric_snapshots entity. Wire a KR to a query against your analytics, billing, or monitoring source, and snapshots post on a schedule. Because you own the code, any source with an API is fair game.
Initiatives and key results are separate linked objects: initiatives are the work, key results are the movement the work should cause. The pairing is visible in the tree, so a KR with no metric behind it stands out in planning review.
Retire the affected objectives — history intact — and add replacements linked to what they superseded. The cycle report shows the original plan and the pivot side by side, which is exactly what a good retro needs.
It scales down well: one company level, a handful of squads, team-level objectives only. Because there's no per-seat fee on code you own, running it at fifteen people costs the same as running it at a hundred and fifty.
Dual7 App Starters
OKRs shaped for product and engineering orgs — metric-fed key results, roadmap links, pivot-friendly cycles — in code you own. Describe your version to start — the output is a project you own.