All projects
CaseFlow banner
SaaS · 2026 Live

CaseFlow

Multi-tenant case management SaaS for legal practices, consultants, and coaches.

Tech stack
Laravel 12 PHP 8.2 Filament 3 Livewire 3 Stripe Cashier Sanctum PostgreSQL 16 Docker DomPDF

The problem

Law firms, consultants, and coaches cobble together spreadsheets, Dropbox, and email for case management. Legal-specific SaaS like Clio or MyCase costs $80 to $120 per user per month and locks you into a vendor silo. Small practices need real multi-tenant isolation, a client portal that is not a second admin panel, and transparent billing without the enterprise price tag.

Goals

  • Real multi-tenant isolation with no chance of cross-tenant data leakage
  • A client portal that feels like a product, not a downgraded admin UI
  • Stripe billing with three tiers and clean upgrade and downgrade flows
  • PDF invoicing that renders cleanly on both screen and print
  • REST API with per-user token management and HMAC-signed outgoing webhooks

The solution

  • Admin console for providers built on Filament 3 with kanban and calendar views
  • Separate Livewire 3 client portal for end users with document upload and chat
  • Stripe Cashier integration with three pricing tiers and seat-based limits
  • PDF invoice generation with DomPDF and CSV export for reports
  • Sanctum REST API with per-user tokens and HMAC-SHA256 signed outgoing webhooks
  • Custom lightweight activity log trait, no heavy package dependencies

My role

  • Architecture and multi-tenancy design (global scope on provider_id, no tenancy package)
  • Laravel 12 backend with Filament 3 admin console
  • Livewire 3 client portal with real-time updates
  • Stripe Cashier billing integration
  • HMAC webhook signing and verification patterns
  • Docker deployment and CI with GitHub Actions

UI direction

Laravel-native Tailwind and Livewire with no second framework layered on. Provider admin aesthetic intentionally separated from client portal aesthetic so the two surfaces read as distinct products.

User flows

Provider workflow

  1. 1 Sign in to provider admin console
  2. 2 Create a new case with milestones and documents
  3. 3 Invite a client to the portal via email
  4. 4 Log time entries and expenses against the case
  5. 5 Generate a PDF invoice and send via Stripe for payment

Client portal workflow

  1. 1 Client signs in through a separate portal domain
  2. 2 Views case timeline, milestones, and documents
  3. 3 Uploads signed documents and sends messages
  4. 4 Pays invoices via Stripe-hosted checkout

Screenshots

Admin dashboard with cases, clients, and quick actions
Admin dashboard with cases, clients, and quick actions
Kanban board for case workflow states
Kanban board for case workflow states
Livewire client portal with documents and messaging
Livewire client portal with documents and messaging
Case detail view with tabs for tasks, time, and invoices
Case detail view with tabs for tasks, time, and invoices
PDF invoice generation via DomPDF
PDF invoice generation via DomPDF
Reports dashboard with charts and CSV export
Reports dashboard with charts and CSV export
Per-user Sanctum API token management
Per-user Sanctum API token management
HMAC-SHA256 signed outgoing webhooks
HMAC-SHA256 signed outgoing webhooks

Key learnings

  • Global scopes for tenancy beat packaged tenancy solutions for anything short of subdomain isolation
  • A dedicated Livewire client portal converts better than trying to reskin the admin for end users
  • HMAC webhook patterns generalize cleanly across every SaaS product that needs outbound notifications
  • A custom 50-line activity log trait is lighter and easier to reason about than a Spatie dependency for most cases

Want something like CaseFlow?

I'm open to senior contract work. Let's talk about what you're building.

Get in touch