
TribuneJustice
Legaltech platform designed and built for a legal expert: escrow payments, video consultations, real-time messaging, FR/EN bilingual, 41 vulnerabilities closed, LCP from 5s to 1.5s.
My role
Tech Lead
Period
November 2025 - ongoing
Vulnerabilities patched
Two audit campaigns (external pentest + internal review), closed before any exploit
Post-deploy incidents
Zero-downtime deployments with automatic stale-cache recovery
Lawyer search speed
Typesense faceted index: specialty, city, availability
Frontend refactor
Monolithic auth service split into 4 Angular Signals services
TribuneJustice connects clients with certified lawyers, handling escrow payments, video consultations, and real-time case tracking. It is the digital product of Mr Badjeu Kuitchouha Ghislain, a legal expert who came up with the idea and wrote the specifications; I was consulted to build it. I led and built the entire technical side, Laravel backend, Angular SSR frontend, Next.js blog, over 8 months. Two audit campaigns (external pentest + internal review) then found 41 flaws: all closed without disrupting active users.
01. Context : The Digital Product of a Legal Expert
TribuneJustice is the digital product of Mr Badjeu Kuitchouha Ghislain, a legal expert: he came up with the idea and wrote the specifications. He consulted me to build the platform, I designed the data model (MCD), the architecture, the Laravel backend, the Angular frontend, and the Next.js blog, shipped over 8 months (~1,650 tracked changes), exchanging with him on every product decision. In a domain demanding absolute confidentiality and financial integrity, security cannot be an afterthought: after launch, we had the platform audited by an external pentest followed by an internal review. Verdict: 41 flaws, SSRF on the blog image proxy, Redis sessions without TTL, a 594-line monolithic auth service. Every deployment risked breaking active escrow flows.
"In legaltech, today's security flaw is tomorrow's lawsuit. Building for a client means shipping a product that survives its own audits."
02. Building, Refactoring & Hardening
I closed all 41 flaws without disrupting business. On the backend, financial transactions were wrapped in pessimistic locking (lockForUpdate) bound to the deterministic Laravel state machine of the Service Request, the central entity carrying the full case lifecycle: creation, assignment, tracking, payment, resolution. On the frontend, the monolithic auth service (594 lines, 87 consumers) was split into 4 specialized TypeScript services powered by Angular Signals. In parallel, slow SQL search was replaced by a Typesense index.
State Machine & Pessimistic Locks
Eliminates race conditions on escrow payments during concurrent client requests.
Decoupled Frontend (Angular Signals)
4 specialized services, state, API, token, permissions, with strict typing and fine-grained state management.
OWASP Top 10 Hardening
SSRF allowlists, CSP/HSTS headers, bounded TTL sessions, HTTP-only JWT cookies, sudo mode.
Typesense Search Engine
Filter lawyers by specialty, city, and availability in under 300ms.
03. Business Impact & Results
The full rollout deployed with zero downtime. Server load dropped significantly thanks to N+1 query cleanup and strategic Redis caching across 10 core endpoints. Page load went from 5 seconds to under 1.5 seconds (LCP), and media assets from 68 MB to 3.9 MB (−94% as WebP). The architecture is now scalable: 3 new business modules shipped without regression.
A similar project?
Let's discuss your needs. I will get back to you within 24 hours with a concrete analysis.
