Перейти к содержимому
ARTEM MOROZOV @dragekorn · senior full-stack engineer
Проекты Блог Расценки Связаться ↓ Скачать CV
ru Русский en English ro Română
Проекты Блог Расценки Связаться Скачать CV
Русский English Română
← Все проекты
01 · GCHAT

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

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

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

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.
Итог

Лендинг на проде по адресу gchat.tech. Приложение в стадии закрытого тестирования. Архитектура выдерживает rollout без downtime и горизонтально масштабируется при нагрузке.

Скриншоты Нажмите, чтобы увеличить
→ Обсудить похожий проект ← Все проекты
1 / 6
ARTEM MOROZOV
@dragekorn

Senior Full-Stack Engineer · Cryptography · DevOps

Основная навигация

  • Артём Морозов
  • Проекты
  • Блог
  • Расценки
  • Связаться
  • Скачать CV

Предложить проект или просто поговорить

  • Telegram @russelallen
  • Email artmorzov@gmail.com
  • LinkedIn linkedin.com/in/dragekorn

Colophon

  • Шрифты: Inter Variable · JetBrains Mono Variable.
  • Цвета: anthracite #0a0b0d, steel #e6e8ec, ember #ff7a1a.
  • Без трекинга, без cookie-баннеров. Только Plausible — без сбора персональных данных.
Русский English Română

© Artem Morozov · 2026. Все права защищены.
Astro 5 · Tailwind 4 · Node.js · развёрнуто на собственном железе через Coolify.