Internal Tool
Muni Clerk screenshot 1

Muni Clerk

Deterministic Document Review for Municipal Bond Resolutions

A document-review workflow for municipal bond resolutions that detects candidate values, presents each occurrence in context, and requires user confirmation before applying changes. The system preserves history, supports resumed work, and keeps document edits traceable without relying on generative rewriting.

Portfolio Case Study

This entry uses sanitized screenshots, feature breakdowns, and architecture notes. These products are not publicly accessible.

The Challenge

Bond counsel reuse resolution templates across deals, manually updating dozens of fields — dates, amounts, party names, bond series — in Word documents. One missed field creates a compliance problem. The process was entirely manual with no verification layer.

What We Built

  • DOCX upload into an editor-native review workspace (ProseMirror via eigenpal/docx-js-editor)
  • Deterministic regex-based variable detection across typed field categories
  • Occurrence preview — see every instance of a variable before confirming a replacement
  • Right-to-left transactional replacements with position remapping after edits
  • Change log tracking confirmed vs. skipped replacements per session
  • Saved documents and folder organization via Supabase
  • Anonymous session support — try the tool before creating an account
  • Lighthouse API bridge for pulling authorized deal term-sheet data into detected fields

What Makes It Different

  • ProseMirror workspace shows replacements inside the actual document — not a separate list view
  • Pattern library covers municipal bond terminology: CUSIP, trustee, fiscal agent, bond counsel, escrow agent
  • Anonymous session model lets users try the tool before creating an account
  • Change log is audit-oriented — every confirmed replacement is tracked with the replacement value

Architecture Highlights

  • ·Editor-native DOCX workflow with canonical text mapping and validated editor ranges
  • ·ProseMirror schema extended with custom marks for variable highlighting and confirmation state
  • ·Anonymous-first auth model using Supabase anonymous sessions that can be upgraded to full accounts
  • ·Regex pattern registry is additive — new field patterns are added without code changes to the detection engine

Results

Built a deterministic review workflow with typed detection categories, safety filters, conflict resolution, editor-range validation, saved-document support, and regression tests for parsing and mapping behavior. Designed to replace manual find-and-replace with structured review and an audit trail.

Tech Stack

Next.js 15ProseMirrorSupabaseTailwindZod

Relevant For

  • Legal document automation
  • Law firm internal tools
  • Document review workflows
  • Compliance and audit tooling
  • Deterministic document processing

Tech Stack — How Each Piece Is Used

Next.js 15App Router for the document upload, saved-document APIs, and Lighthouse integration boundary
ProseMirrorRich document editor for in-context variable review and confirmed replacements
@eigenpal/docx-js-editorBrowser editor for DOCX viewing, highlighting, and validated range-based replacements
SupabaseDocument storage, anonymous session auth, folder organization, and change log persistence
ZodSchema validation for pattern definitions and replacement payloads
TailwindDistinct visual states for detected (yellow), confirmed (green), and skipped (gray) fields

Need something similar built?

We build systems like this for founders and businesses through Upwork.