All case studies

LegalTech / law firms

JurisDesk - law firm management system

A self-hosted law firm system: cases, documents with local OCR, paper archive, procedural deadlines, debt collection, and an AI assistant - without sending case files to the cloud.

lines of code
~90k
data models
68
production release
1.0.0

Client

A multi-user law firm - attorneys, trainees, back office staff, and branch managers.

Problem

The firm ran on a decades-old legacy system, deadlines and paper files were tracked by hand, and nobody knew for certain where a given physical file was. Data covered by professional privilege and GDPR could not go to the cloud.

Scope of work

Design and build of the system from scratch, data migration from the legacy system, on-premise deployment, backups with restore, plus licensing and updates from the admin panel.

Solution

A NestJS backend with PostgreSQL and Prisma, a React frontend, documents in MinIO, background jobs on Redis - all in Docker Compose behind a reverse proxy, available on the firm's local network. OCR runs locally with Polish full-text search, so case content never leaves the server. The AI assistant has a swappable provider - cloud or local model - and a set of prompt templates tailored to Polish legal practice; by design it assists rather than decides. The debt collection module generates correspondence in batches, but nothing goes out without human approval. On top of that: a physical archive registry with file check-outs, procedural deadlines computed in business days against a holiday calendar, an audit log, legal holds, and retention rules.

Key features

  • Case, client, and document registry with role-based access
  • Local OCR with Polish full-text search
  • Physical archive with file check-outs
  • Procedural deadlines in business days with a holiday calendar
  • Batch debt collection with human approval
  • AI assistant with a choice of local or cloud model
  • Audit log, legal holds, and retention rules
  • Updates and backups triggered from the admin panel

Business outcome

Deployed to production at a law firm, including migration from the legacy system and remote maintenance. Release 1.0.0 with signed manifests, updates triggered from the admin panel, and backups to a separate medium. Roughly 90k lines of code and 68 data models.

Technologies

NestJSPostgreSQLPrismaReactMantineRedisMinIODockerCaddyTesseract OCRLLMMCPrestic