How structured briefs and a two-phase board turned a feature list into a fully shipped expense tracking app
I keep track of costs for a lot of things. Kitchen renovation, home office setup, random side projects. Every time, I start with a spreadsheet. And every time, the spreadsheet gets messy around row 50.
So I built TallyThat. Create a project, log expenses with custom categories, set a budget, see where your money's going. The feature list grew: spending charts with time range toggles, budget alerts at 80% and 100%, recurring expenses processed by a Cloud Function, receipt uploads to Firebase Storage, CSV export, search, a dashboard with activity feed and smart insights, onboarding for new users.
22 features total. I organized them into 22 briefs on a Nexboard board.
Each feature started as a scoped brief. Not a sticky note that says "add budget alerts." A spec with the why, the deliverables, the guardrails, and a running log of decisions made during implementation.
Here's the budget alerts brief. It's one of the 10 briefs in the UX Enrichment section.
Description
Users need proactive warnings when they're approaching or exceeding their project budget. Right now the budget meter shows a percentage but there's no alert system. Add visual warnings at 80% and 100% thresholds with clear messaging.
Scope
Constraints
Decisions
Used a computed threshold approach: calculate percentage client-side from expense total vs budget. Three states: normal (<80%), warning (80-99%), over (100%+). Banner component is shared between project detail and dashboard card. Yellow uses amber-500 palette, red uses red-500.
The agent reads the brief via MCP, builds against the scope, and writes back what it decided (threshold approach, color scheme, component sharing). Next session reads the decisions and has full context.
The board had two sections: Core and UX Enrichment & Retention. The structure wasn't just organization. It was build order.
Core went first: expense tracking, charts, categories, the landing page, and domain setup. The foundation that everything else builds on.
Enrichment came second: budget alerts, recurring expenses, receipt uploads, search, CSV export, onboarding. These make the app good. But they all build on the core foundation.
I didn't have to explain this progression to the agent. The board layout made it obvious. Pick a brief from Core, build it, mark it done. When Core is clear, move to Enrichment.
Every brief shipped. 22 out of 22. The board is fully cleared.
That's the metric I care about. Not how fast it happened, but that every scoped feature was actually implemented, verified, and marked done. Nothing fell through the cracks. No "we'll get to it later" briefs sitting in limbo.
TallyThat was one of four active boards. I was also managing ArkOdds (37 briefs, a prediction market dashboard), Nexboard itself (72 briefs), and Who's Wrong (8 briefs). Over 130 briefs across four projects.
The brief-level context is what makes this possible. Each brief carries its own scope, constraints, and decisions log. The agent doesn't need to understand all 22 TallyThat features to implement one of them. It reads the brief and the codebase. That's enough.
Core first, enrichment second. The board's section layout made the progression obvious. No jumping between unrelated features.
Each brief carried its own scope, constraints, and running decisions. The agent didn't need to understand the whole app to implement one feature.
Every brief had verifiable scope. "Add CSV export" means something specific when the brief spells out what fields to include and where the export button lives.
Boards
Scope your features as briefs. Hand them off to AI. Free to start.
Get Started Free