A ten-person consulting firm wanted one place to see its money, with the accounting system, payroll and the bank in agreement, and a planning model it could trust.
Its planning model used an assumed labor burden, not the one payroll showed.
A Next.js 16 app on Supabase with Google login and three roles: admin, director and member. Accounting comes in from Wave, payroll from Rippling, and the bank feed from Plaid.
Plaid access tokens are encrypted at rest with AES-256-GCM and kept in tables only the server can read, under a row-level security policy, checked by querying as the browser (0 rows) and as the server (1 row).
Every request from the client goes into a commitments ledger: the date, the source, the client's own words, what it means in the build, and the bar for done. Its state renders from Trello into a page the client reads, and the Friday recap comes from the same ledger.
One example: a voice note became ten written rules, a seven-scene prototype on invented data and a 90-second video, in the client's hands five days later. The build waited for a written approve.
Expenses tie to the accounting system's P&L to the penny for every closed month.
The model assumed a 1.4x labor burden. Payroll measured 1.14x, and the model now uses the measured number. A fractional CFO reviewed the modeling assumptions.
Live since spring 2026, built and run by one person.
