Live · Actively DevelopedProduction platform

Case study · 2025 – Present

Law Firm Digital Platform

Website, Client Management & Business Intelligence

A modular digital platform for legal practices that connects a configurable public website with inquiry and client management, content administration, analytics and business intelligence. Originally built for an independent lawyer, it evolved into a reusable architecture for separate client deployments.

Law Firm Digital Platform operational dashboard
Operational dashboard

Role

Product Builder / Full-Stack Developer

Status

Live · Actively Developed

Deployment

One deployment per legal practice

Scope

Website → inquiries → clients → BI

Overview

What the platform actually does

The project started as a digital platform for an independent lawyer: a public-facing website backed by an administration area for managing content and incoming client inquiries.

As the system grew, treating each feature as a client-specific addition became increasingly limiting. I rebuilt the application around explicit product modules and shared infrastructure, turning the original implementation into the first real deployment of a broader platform architecture.

The current platform connects the public website with content administration, inquiry intake, client management, analytics and business intelligence while keeping those capabilities separated through clear ownership and server-side boundaries.

The product is intentionally not a full legal practice-management system. It focuses on digital presence, client acquisition and internal client workflows rather than matters, billing, document management or time tracking.

The problem

The website was only the visible part

01

The initial problem looked like a website project, but the real need crossed the public and internal sides of the practice. Content had to be manageable without code changes, inquiries needed to become structured internal work, and the client needed visibility into what actually generated useful inquiries and clients.

02

That created a product-design problem as much as a coding problem: the public site, admin CMS, inquiry pipeline, client records and reporting had to feel like one coherent system without collapsing into one tightly coupled codebase.

03

The platform also handles sensitive contact and legal-intake data, so security, authorization, auditability and recovery could not be treated as optional infrastructure added after the UI was finished.

Product evolution

From client implementation to reusable platform

The product changed shape as the original use case exposed a larger system worth structuring for long-term growth.

01

Stage 1

Real client implementation

The first version solved concrete needs for an independent lawyer: a professional public presence, editable content and an authenticated administration area.

02

Stage 2

Modular product rebuild

The application was reorganized around explicit modules for inquiries, clients, content, practice areas, analytics and shared platform concerns instead of continuing as a collection of one-off client features.

03

Stage 3

Reusable and growth-ready model

The platform can support separate client deployments while also allowing an individual practice to grow internally through additional users, lawyer profiles and distributed content ownership.

Product surface

One system across public presence, operations and insight

The product is intentionally broader than a website, but narrower than full legal practice-management software.

01

Public experience

Public website & CMS

Configurable public pages, practice areas, articles, FAQs, contact flows and editable Home/About content with administrative previews and controlled publishing workflows.

Analytics & attribution

Consent-aware GA4 measurement and first-party attribution capture connect acquisition context with downstream inquiry and client reporting.

02

Client operations

Inquiry management

Public and manual intake, status workflows, assignment, filtering, exact protected-field search, internal notes and operational attention states.

Client management

Manual client creation and inquiry-to-client conversion, duplicate handling, responsibility management, lifecycle states, notes and linked inquiry history.

03

Intelligence

Business Intelligence

Commercial and operational reporting across acquisition, content, practice areas and response workflows, combining platform-owned business data with real GA4 traffic when available.

04

Platform foundation

Authentication & authorization

Supabase-backed identity is combined with application profiles, role-based permissions, protected server operations and an additional administrative session policy.

Auditability & data protection

Important administrative actions are audited while sensitive inquiry and client fields are protected at the application boundary and kept out of audit metadata.

Production operations

The project includes migration discipline, Sentry monitoring, automated encrypted PostgreSQL backups and unit, integration and browser-level test coverage.

Product in use

The workflow, not just the feature list

A few selected views show how the public experience, operational workflows, content management and reporting connect inside the same product.

01 · Inquiry management

From incoming request to an owned workflow

New inquiries move through a visible pipeline with practice-area context, responsibility and explicit progression toward contact or conversion.

Law Firm Digital Platform inquiry pipeline

02 · Client management

Conversion becomes a persistent client record

Converted inquiries stay connected to the client record, alongside responsibility, lifecycle state, internal notes and recent activity. The relationship between acquisition and ongoing client operations is kept visible instead of being split across separate tools.

Law Firm Digital Platform client details view

03 · Content administration

Public content can evolve without code changes

Practice-area pages expose publishing, SEO, imagery, structured page content and preview controls from the same administration surface that owns the operational workflows.

Law Firm Digital Platform practice-area CMS editor

04 · Business Intelligence

Traffic is connected to business outcomes

The reporting layer follows the commercial path from traffic to inquiries, relevant inquiries and clients, while keeping platform-owned business data separate from external traffic analytics.

Law Firm Digital Platform business intelligence overview

Architecture

Clear ownership inside one deployable application

  • 01The application is a modular monolith: one deployable Next.js application with explicit feature ownership rather than a set of networked microservices.
  • 02App Router owns URL, HTTP and rendering composition; feature modules own business behavior; Core owns cross-module permissions, protected actions, audit and shared security primitives; shared infrastructure handles Prisma, PostgreSQL and Supabase integrations.
  • 03Prisma and PostgreSQL are the business persistence layer. Supabase provides hosted PostgreSQL, authentication and public asset storage, while GA4 remains an external traffic source rather than the source of truth for leads or clients.
  • 04The current customer model is one application deployment per legal practice. This keeps data isolation and customer-specific configuration simple without introducing runtime multi-tenancy before the product needs it.

System map

Next.js App Router

URL · HTTP · rendering · cache composition

Public site
Feature modules
Admin UI

Core · Security · Permissions · Audit

Cross-module application boundaries

PostgreSQL

Business truth

Supabase

Auth · storage

GA4

Traffic only

Engineering decisions

Where the complexity actually lives

Sensitive data

01

Sensitive Inquiry and Client values are encrypted before persistence using application-level authenticated encryption. Separate blind indexes support exact search for selected protected fields without making ciphertext deterministic.

Permissions & audit

02

Protected mutations pass through server-side permission and action boundaries, and important business/security operations are written to a dedicated audit history.

Transactional workflows

03

Inquiry-to-client conversion is handled as a transactional workflow so client creation or reuse and inquiry conversion cannot leave the system in a partially converted state.

Business data truth

04

Business Intelligence treats the application database as the source of truth for inquiries, clients and conversions. GA4 is used only for traffic and acquisition dimensions, and mock analytics is never presented as live business performance.

Fresh operational state

05

Public content uses explicit cache ownership and invalidation, while operational views such as the dashboard are read at request time to avoid presenting stale queue state as current information.

Delivery discipline

06

GitHub Actions validates dependency installation, Prisma generation and migrations, unit tests, TypeScript and the production build against an isolated PostgreSQL environment; broader integration and Playwright suites are run separately.

Trade-offs

What I deliberately did not build

The goal was not maximum feature count. It was enough structure for the current product without absorbing complexity before it became necessary.

Deliberate constraint01

Separate deployments instead of multi-tenancy

A customer-per-installation model reduces authorization and data-isolation complexity today. Runtime multi-tenancy is deferred until there is a concrete product reason to absorb that complexity.

Deliberate constraint02

Focused client operations, not full practice management

The platform deliberately stops at website, inquiry, client, content and reporting workflows. Matters, billing, time tracking and private client-document management are outside the current scope.

Deliberate constraint03

Business truth stays in the platform

GA4 can enrich reporting with traffic data, but lead validity, client conversion and commercial outcomes always come from platform data so external analytics cannot silently redefine business results.

Deliberate constraint04

Security depth without enterprise infrastructure everywhere

The current deployment has strong application boundaries, encryption, auditing and recovery procedures while intentionally deferring higher-cost infrastructure such as distributed rate limiting, managed PITR and enterprise secret tooling until usage justifies it.

Outcome

From a client implementation to product engineering

Visit live product

Started as

What began as a custom website and admin implementation for an independent lawyer became a substantially more reusable product architecture without discarding the original real-world use case.

Became

The result is one coherent platform that connects public presence, content, client acquisition, internal client workflows and business reporting rather than maintaining those concerns as separate projects.

Demonstrates

For me, the project marks a shift from page-level implementation toward product engineering: defining boundaries, workflows, security decisions, data semantics, operational safeguards and trade-offs around a real system.