
The problem
Each lawsuit was scattered across folders, spreadsheets and shared inboxes.
What changed
Every lawsuit in one place, with parties, deadlines, hearings, filings and spend per case.
What I built
- Case-tracking layer that links every lawsuit to its parties, deadlines, hearings and active filings.
- Per-matter document repository with version history and signer state.
- Partner dashboard with open cases, exposure and per-case spend.
- Role-based access so partners, associates, paralegals and clients each see only what they should.
What I learned
- Lawyers don't trust dashboards by default. Every status change needs a who, when and why.
- Case taxonomy beats clever UI. Lawyers want files where they expect them, not where a designer thinks they should be.
- Internal legal tools live and die on how well they survive a real audit, not on how they demo.
Stack
- Next.js
- TypeScript
- Tailwind
- Postgres
- Prisma
- Vercel