Aceeași poveste, două registre.
Două layere separate: site public pentru raportare cu verificare în trei pași, plus aplicație internă unde investigatorii gestionează dosarele, corelează agresorii între cazuri și pregătesc materialul pentru sesizare către autorități. Fiecare acțiune lasă urmă, fiecare acces trece prin autentificare în doi factori, conținutul sensibil nu există niciodată în clar pe disc.
Site public Next.js 14 static export, aplicație internă Next.js 14 + NestJS 11 + PostgreSQL 16 (pg_trgm pentru fuzzy match pe nume). Argon2id pe parole, AES-256-GCM pe câmpurile sensibile (IP, secrete TOTP), TOTP 2FA cu lockout progresiv. Imaginile-dovezi trec prin PDQ-WASM (perceptual hash open-source) și opțional PhotoDNA, izolate pe paths separate (quarantine / clean / flagged) cu permisiuni stricte, niciodată stocate în clar. SSE pentru notificări live, BullMQ pentru jobs asincrone, audit log append-only indexat pe user și IP.
Aceleași fapte, două lecturi. CEO-ul citește registrul de sus și știe ce s-a livrat. CTO-ul citește registrul de jos și știe cum. Nimeni nu e forțat să traducă mental.

