Case Study 01 · Web Applications & Distributed Systems · 2024 – Present

ChaseUp — Mechanics Lien Compliance & Receivables Platform

Multi-tenant invoicing platform with statutory lien compliance engine and PostgreSQL Row Level Security.

Role & Responsibilities
Founder & Lead Architect
Primary Stack
Next.js App Router, TypeScript, Supabase, PostgreSQL RLS, Tailwind
Key Engineering Metric
Sub-50ms query latency across multi-tenant RLS tables
Status & Verification
Production / Active SaaS
< 50ms RLS Query Latency
100% Tenant Isolation
50 States Statutory Engine
Production Active SaaS

Executive Overview

The Problem

Subcontractors forfeit lien rights on overdue receivables due to missed state statutory notice deadlines.

The Architecture

Next.js App Router and Supabase platform enforcing multi-tenant isolation via PostgreSQL Row Level Security.

Engineering Impact

Sub-50ms query latency across isolated tenant tables with automated retainage tracking and zero data leakage.

Client (Next.js 14 RSC) ──► Edge API Routes (Auth & Ingestion)
                                     │
                ┌────────────────────┴────────────────────┐
                ▼                                         ▼
     [ Statutory Rules Engine ]                [ PostgreSQL Core ]
     - 50-State Deadline Math                  - Row Level Security (RLS)
     - Milestone State Transitions             - Retainage Triggers

Technical Architecture

1. PostgreSQL Row Level Security (RLS)

Enforces multi-tenant data segregation directly inside PostgreSQL via evaluated JWT claims and composite B-Tree indexes:

PostgreSQL RLS Isolation Policy SQL
```sql ALTER TABLE public.invoices ENABLE ROW LEVEL SECURITY; CREATE POLICY "Tenant Invoice Isolation" ON public.invoices FOR ALL TO authenticated USING ( organization_id IN ( SELECT org_id FROM public.organization_members WHERE user_id = auth.uid() ) ); CREATE INDEX idx_invoices_org_status_due ON public.invoices (organization_id, status, due_date DESC); ```

2. State-by-State Statutory Rules Engine

Evaluates statutory preliminary notice and lien filing deadlines relative to project state jurisdictions:

Statutory Deadline Calculator TypeScript
```typescript export function computeStatutoryDeadlines(input: MilestoneInput): StatutoryDeadlines { const { state, firstFurnishingDate, lastFurnishingDate, invoiceDueDate } = input; let prelimDeadline = new Date(firstFurnishingDate); let lienDeadline = new Date(lastFurnishingDate || invoiceDueDate); if (state === 'MI' || state === 'CA') { prelimDeadline.setDate(prelimDeadline.getDate() + 20); if (lastFurnishingDate) { lienDeadline = new Date(lastFurnishingDate); lienDeadline.setDate(lienDeadline.getDate() + 90); } } const daysRemaining = Math.ceil((lienDeadline.getTime() - Date.now()) / 86400000); const urgency = daysRemaining < 0 ? 'expired' : daysRemaining <= 10 ? 'critical' : 'safe'; return { preliminaryNoticeDeadline: prelimDeadline, lienFilingDeadline: lienDeadline, urgencyLevel: urgency }; } ```

Key Takeaways & Verification

  • Deterministic Clocking: Milestones calculate in project timezones to eliminate UTC offset day-drift errors.
  • Kernel Data Isolation: PostgreSQL RLS policies guarantee tenant boundaries with sub-50ms query latency.