Project Management App Starter · Industry version
A tracker that knows the client is in the room — scoped boards, retainer burn, approval loops — in code your agency owns.
Agency work is project management with a meter running: every task belongs to a client, burns a budget, and eventually needs a yes from someone outside the building. This starter models clients, retainers, and approvals in the schema — and the codebase is yours, so it grows with the roster.
01 · The problem
Generic trackers assume everyone in the tool is on the same team. An agency's reality is stricter: work is partitioned by client, and a screenshot of the wrong board in the wrong meeting is a fireable mistake. Client scoping bolted on with workarounds — separate workspaces, prefix conventions — collapses the first time an account manager runs a cross-client search.
The budget dimension is worse. Agency tasks aren't just done or not done — they're on-budget or over, and a retainer month has a burn rate someone must watch. When hours live in a separate time tool and scope lives in the tracker, the margin report is a Friday-night spreadsheet ritual, and it's wrong by Monday.
And delivery runs through client approval. 'Done' at an agency means the client signed off, which is a state generic tools don't have — so approval chases live in email threads, and the tracker says complete while the client says what draft?
02 · Data model
Everything in the base Project Management starter —
projectsboardstaskssprintscommentslabels— plus the entities this industry actually runs on:
| table | what it holds |
|---|---|
clients | The accounts work belongs to — contacts, active engagements, and the scoping wall between their boards. |
retainers | Monthly or fixed budgets with hours or fees, burned down by task time and visible before they're blown. |
client_approvals | Sign-off requests tied to tasks and deliverables, with who approved, when, and which version. |
03 · Screens
Every board, task, and report is scoped to a client, and cross-client views exist only for roles that should have them. The account lead sees their book; the studio lead sees the whole floor; the client, if you invite them, sees exactly their lane.
Planning pulls from client backlogs against two ceilings at once — team capacity and each retainer's remaining hours. Overcommitting a retainer shows up at planning time as a red number, not at invoicing time as an awkward call.
Burndown here means budget: hours consumed against retainer per client, week by week, with scope-added tasks flagged. The report the ops director rebuilds monthly in a spreadsheet is a live page, because tasks and budgets share a schema.
04 · In practice
The month opens with the retainer's hours and the client's priority list. As tasks complete, burn accrues in real time; at sixty percent consumed with two weeks left, the account lead sees it and rebalances scope before the client ever has to.
A deliverable task reaches internal done, then flips to awaiting approval — the client gets a review link, their yes or change-request lands on the record, and the task closes only on sign-off. The email chase is gone, and so is the ambiguity.
Requests beyond the agreement enter as tasks labeled out-of-scope, with estimates attached. By quarter's end, the out-of-scope report per client is the change-order conversation — grounded in a list, not a feeling.
Yes, through role-scoped views: their boards, milestones, and approval requests, without internal comments, estimates, or anyone else's work. Because access rules are code you own, the line between shown and hidden sits exactly where your agency draws it.
Retainers are entities holding budget in hours or fees per period; task time burns against them and the balance is visible on the client's board and in reports. Rollover rules, overage alerts, and fixed-fee variants are edits to your own logic.
Task-level time capture is in the schema, feeding burn reports directly — enough for many agencies to consolidate. If payroll needs a dedicated tool, time entries sync out cleanly, since the tables are yours to read.
Boards are configurable per project, so the fixed-bid website build and the ongoing content retainer can run different columns and rules while reporting rolls up consistently. No client has to inherit another client's process.
Dual7 App Starters
A tracker that knows the client is in the room — scoped boards, retainer burn, approval loops — in code your agency owns. Describe your version to start — the output is a project you own.