← Все проекты
01 · GCHAT

GChat — приватный E2E-мессенджер

Founding engineer на собственном продукте. Собран соло: протокол, сервер, клиент, лендинг, инфра.

Период
Март 2026 — настоящее время
Роль
Founding Engineer · всё в одни руки
Стек
Python 3.12FastAPISQLAlchemy 2.0 asyncPostgreSQLRedisarqFlutterDartRiverpodIsarWebRTCAstro 5Tailwind 4WebGLX3DHDouble RatchetAES-GCM-256Ed25519Curve25519Argon2idPyNaClDockerCoolifyTraefikNginxGitHub Actions
gchat.online

GChat — это полноценный приватный мессенджер с end-to-end шифрованием, который я спроектировал и построил в одни руки: от математики криптопротокола до деплоя на self-managed Linux-железе.

Контекст

Задача: приватный мессенджер уровня Signal, но без привязки к номеру телефона, с zero-trust архитектурой и готовностью к работе в недоверенных юрисдикциях. Решил делать соло, чтобы контролировать каждый слой.

Криптография

  • X3DH handshake на Curve25519 / Ed25519 для установки сессии.
  • Double Ratchet генерирует уникальный симметричный ключ на каждое сообщение.
  • AES-GCM-256 для транспортного слоя, Argon2id для локального key-wrap, TLS 1.3 для relay.
  • Сервер видит только opaque ciphertext и не может расшифровать сообщения даже по юридическому запросу.
  • Аккаунты без номеров телефона — регистрация через криптографическую recovery-фразу.

Backend

  • FastAPI + SQLAlchemy 2.0 async + asyncpg поверх PostgreSQL.
  • Redis для pub/sub и сессий, arq для фоновых задач (TTL-сборка медиа, push fan-out).
  • Stateless WebSocket транспорт, горизонтально масштабируется за sticky-session роутером.
  • structlog + Prometheus для наблюдаемости.

Mobile

  • Flutter + Dart, Riverpod для состояния, go_router для навигации.
  • Isar как зашифрованный локальный store.
  • Нативные platform channels для APNs / PushKit, FCM, CallKit, ConnectionService.
  • Android FLAG_SECURE + iOS screenshot detection с уведомлением собеседника.
  • flutter_webrtc для 1:1 voice/video, local_auth для биометрии.

Frontend / лендинг

  • Astro 5 + Tailwind 4, статическая генерация.
  • Двуязычный EN / RU, parity enforced через TypeScript discriminated unions.
  • Кастомный WebGL-шейдер на фоне с DPR-aware rendering и prefers-reduced-motion.
  • SVG-диаграммы криптографических флоу с SMIL-анимацией.
  • Автоматическая генерация OG-изображений через sharp.
  • Меньше 72 KB gzip на страницу.

DevOps

  • Multi-stage Docker, Coolify-driven CI/CD на собственном Linux-сервере.
  • Per-app GitHub watch-path фильтрация — пуш в landing не триггерит пересборку backend.
  • Traefik + Nginx с автоматическим Let's Encrypt.
  • Жёсткие CSP / HSTS / X-Frame-Options / Permissions-Policy.
  • Staged preview-деплои с noindex gating.
  • RFC 9116 security.txt и процесс coordinated disclosure.