← Toate proiectele
01 · GCHAT

GChat — messenger E2E privat

Founding engineer pe propriul produs. Construit solo: protocol, server, client, landing, infrastructură.

Perioadă
Martie 2026 — prezent
Rol
Founding Engineer · tot într-o singură pereche de mâini
Stack
Python 3.12FastAPISQLAlchemy 2.0 asyncPostgreSQLRedisarqFlutterDartRiverpodIsarWebRTCAstro 5Tailwind 4WebGLX3DHDouble RatchetAES-GCM-256Ed25519Curve25519Argon2idPyNaClDockerCoolifyTraefikNginxGitHub Actions
gchat.online

GChat este un messenger complet, cu end-to-end encryption, pe care l-am proiectat şi construit de unul singur — de la matematica protocolului criptografic până la deploy-ul pe Linux auto-gestionat.

Context

Obiectiv: un messenger de clasă Signal în privinţa confidenţialităţii, dar fără legare la număr de telefon, cu arhitectură zero-trust, gata să funcţioneze în jurisdicţii neîncrezătoare. Am ales să construiesc solo, ca să controlez fiecare strat.

Criptografie

  • Handshake X3DH pe Curve25519 / Ed25519 pentru stabilirea sesiunii.
  • Double Ratchet derivă o cheie simetrică unică pentru fiecare mesaj.
  • AES-GCM-256 pentru transport, Argon2id pentru key-wrap local, TLS 1.3 pentru relay.
  • Serverul vede doar ciphertext opac şi nu poate decripta mesajele nici sub presiune juridică.
  • Conturi fără număr de telefon — înregistrare printr-o frază criptografică de recuperare.

Backend

  • FastAPI + SQLAlchemy 2.0 async + asyncpg peste PostgreSQL.
  • Redis pentru pub/sub şi sesiuni, arq pentru task-uri de fundal (sweep TTL pentru media, push fan-out).
  • Transport WebSocket stateless, scalabil orizontal în spatele unui router sticky-session.
  • Instrumentare cu structlog + Prometheus.

Mobile

  • Flutter + Dart, Riverpod pentru state, go_router pentru navigare.
  • Isar ca store local criptat.
  • Platform channels native pentru APNs / PushKit, FCM, CallKit, ConnectionService.
  • Android FLAG_SECURE + detectarea screenshot-urilor pe iOS cu notificarea interlocutorului.
  • flutter_webrtc pentru voice/video 1:1, local_auth pentru deblocare biometrică.

Frontend / landing

  • Astro 5 + Tailwind 4, generat static.
  • EN / RU bilingv, cu paritate impusă prin TypeScript discriminated unions.
  • Shader WebGL custom pe fundal, cu randare conştientă de DPR şi respect pentru prefers-reduced-motion.
  • Diagrame SVG ale fluxurilor criptografice, animate prin SMIL.
  • Generare automată a imaginilor Open Graph prin sharp.
  • Sub 72 KB gzip per pagină.

DevOps

  • Docker multi-stage, CI/CD prin Coolify pe un server Linux auto-gestionat.
  • Filtrare watch-path per aplicaţie — push-ul în landing nu reconstruieşte niciodată backend-ul.
  • Traefik + Nginx cu Let's Encrypt automat.
  • Headere CSP / HSTS / X-Frame-Options / Permissions-Policy hardened.
  • Deploy-uri de preview cu noindex gating.
  • security.txt RFC 9116 şi flux de dezvăluire coordonată.