01 — Why it mattered
Compliance teams live in spreadsheets because no UI has matched the rigour. The promise was an interface that stayed calm under thousands of transactions and still produced audit-ready output at the end.
A multi-tenant compliance SaaS that turns raw bank and card statements into audit-ready reports — without losing the calm of a document tool.
02 — Problem
Spreadsheet-grade detail in a product that does not look like a spreadsheet. Thousands of transactions, drag-and-drop status flows, filters on filters — all without the noise finance teams associate with web tools.
03 — Approach
One Zod schema validating the form and the API payload. Per-resource staleTime on TanStack Query so navigation feels instant where it can be cached and fresh where it must be live. Atomic design on top of shadcn/ui and Radix primitives. Optimistic Kanban moves with quiet rollback on failure.
04 — Build
Sole frontend. Six-step onboarding, multi-tenant workspace switcher hydrated from localStorage before React mounts, two reconciliation flows wired to TanStack Table, and an infinite-scroll reports surface with a styled-Excel export dynamically imported on click so the first-load bundle stays lean.
05 — Outcome
A production frontend across 20+ routes and 80+ components with a fully-typed API layer — shipped solo, end to end. Structured so a future teammate can find any feature in under a minute: API call, schema, store, component, route — each in a predictable place.
06 — Reflection
The leverage was writing the form layer once. RHF + Zod with one schema for client and contract paid back every screen. The same lesson held for the table primitive — one TanStack Table powering transactions, invoices, receipts, and reports without a re-implementation.
