
MuniFlow Platform
Municipal Finance Workflow and Transaction Platform
A modular platform for managing municipal bond transactions end-to-end. Organized as a host app with feature modules for deal creation, contacts and team management, collaborative term sheets with version history, closing document assembly, in-app messaging, notifications, a per-deal email inbox, and an interactive US issuers directory with geographic drill-down.
Portfolio Case Study
This entry uses sanitized screenshots, feature breakdowns, and architecture notes. These products are not publicly accessible.
The Challenge
Municipal bond deals involve dozens of parties — bond counsel, underwriters, trustees, fiscal agents, issuers — coordinating across fragmented email threads, Word documents, and spreadsheets. Each deal is legally distinct, requires versioned documentation, and involves sensitive financial data. The platform needed to feel like a product, not a collection of admin screens, while enforcing strict access control and audit-oriented workflow boundaries.
What We Built
- →Home workspace with deal hierarchy grouped by issuer, type, or recency — with a 5-section progressive deal creation wizard
- →Interactive US issuers map with national → state → county drill-down, search, and issuer group rooms
- →Deal contacts with horizontal role-column kanban layout, shadow contacts (pending invitees visible before they join), and real-time sync
- →Email-first invite system: admins enter an email, the platform detects new vs existing users and routes the experience appropriately
- →Collaborative term sheets with nested drag-and-drop field reorder, inline typed editors, field-level comments, change request workflow, and side-by-side version diff
- →Closing transcript assembly workspace with section/item reordering, document linking, and a register of closing events
- →In-app 1:1 messaging between deal participants with Supabase realtime subscriptions
- →Per-deal email inboxes via Postmark inbound webhooks for capturing deal-related correspondence
- →Notification center (global + deal-scoped) with preference-aware controls
- →Lighthouse cross-app API bridge: OAuth-style tokens let satellite tools (Bond Generator, Muni Clerk) pull published term sheet data securely
What Makes It Different
- ✦Shadow contacts: pending invitees appear in the deal contacts grid immediately — before they create an account — maintaining team visibility across the full deal lifecycle
- ✦Deal context rules engine: a catalog of municipal finance "knobs" (financing type, rate mode, tax status, maturity structure) that deterministically activates the correct term sheet field set per deal family
- ✦Lighthouse cross-app bridge: OAuth-style authorization codes let external tools (Bond Generator, Muni Clerk) fetch published term sheet data from the platform without sharing database credentials
- ✦Term sheet version diff: side-by-side comparison of any two published versions with a "show only changes" toggle — modeled after code review for financial documents
- ✦Feature passport system: each module has a living passport.md tracking stage, maturity, API completeness, and known gaps — used to gate what ships per release
Architecture Highlights
- ·Modular monolith with ESLint boundaries enforcing a 5-layer clean architecture per feature — prevents components from reaching the database and hooks from bypassing service logic
- ·Dual Supabase client pattern: anon/JWT client for user-scoped reads, service role admin client for writes that need to bypass RLS; deal membership table is the authoritative ACL for all deal-scoped access
- ·API middleware stack: withRequestId → withApiAuth or withDealAuth — every deal route validates membership before the handler runs
- ·59-table Postgres schema with 110 foreign keys organized by domain: deal core, term sheet versioning, closing packets, messaging, notifications, issuers, compliance audit logs
- ·Bundle splitting by feature module: webpack splitChunks creates separate chunks for auth, deal pages, term sheet, closing assembly — public auth pages skip React Query and MUI for ~190KB savings
Results
Built modular workflow capabilities across a codebase with 22 feature modules, ~100+ API routes, and a 59-table schema — covering deal setup, context-driven term sheets, notifications, external access, authorization, integrations, and migration from legacy rules to a catalog-driven model. Module maturity varies; feature passports track what is ready to ship.
Tech Stack
Relevant For
- Multi-tenant SaaS and workflow platform architecture
- Legal and financial document workflows
- Collaborative editing with versioning and audit trails
- Complex data modeling with enforced module boundaries
- Real-time features with Supabase subscriptions
- Multi-role invite and team management systems
Tech Stack — How Each Piece Is Used
Need something similar built?
We build systems like this for founders and businesses through Upwork.


