Главнаяarrow-rightКейсыarrow-rightGOLD Мессенджер

Кейс GOLD Мессенджер: защищенная платформа для видеосвязи

Краткое описание

Изолированный корпоративный мессенджер с доступом по приглашению — администратор добавляет профили вручную; внутри полный набор функций от переписки в чатах до групповых видеозвонков.

Задача

Создать закрытый защищённый мессенджер для коммуникаций внутри ограниченной среды, где доступ контролируется администратором, а функционал покрывает и текстовое, и голосовое, и видеообщение.

О проекте

Разработали изолированный мессенджер с контролируемым доступом: новые участники не регистрируются сами — профиль создаёт и выдаёт администратор. Внутри реализован полный мессенджер-функционал, от личных и групповых чатов до групповых видеозвонков. Проект реализован на личном сервере заказчика.

Бизнес-выгоды

ПОЛНЫЙ КОНТРОЛЬ НАД ДОСТУПОМ К КОММУНИКАЦИЯМ — В СИСТЕМЕ ТОЛЬКО ТЕ, КОГО ДОБАВИЛ АДМИНИСТРАТОР: РЕГИСТРАЦИЯ ИЗВНЕ НЕВОЗМОЖНА, ПОСТОРОННИЕ ПОЛЬЗОВАТЕЛИ ИСКЛЮЧЕНЫ
СНИЖЕНИЕ РИСКА УТЕЧЕК ЧЕРЕЗ ПУБЛИЧНЫЕ МЕССЕНДЖЕРЫ — ПЕРЕПИСКА, ФАЙЛЫ И ЗВОНКИ КОМАНДЫ ОСТАЮТСЯ ВНУТРИ ЗАКРЫТОГО КОНТУРА ЗАКАЗЧИКА
ЭКОНОМИЯ БЮДЖЕТА РАЗРАБОТКИ ДО 70% — ОПЛАЧИВАЕТСЯ ДОРАБОТКА И ВНЕДРЕНИЕ, БАЗОВАЯ ИНФРАСТРУКТУРА МЕССЕНДЖЕРА УЖЕ ПРОВЕРЕНА РЫНКОМ

Функционал

Закрытая система доступа
toggle

Реализован изолированный мессенджер с контролируемым входом

Самостоятельная регистрация новых пользователей отключена

Профили пользователей создаются администратором

Администратор выдаёт пользователю доступ к системе

Доступ к мессенджеру получают только заранее добавленные участники

Возможность ограничивать круг пользователей внутри закрытого контура

Проект развёрнут на личном сервере заказчика

Административное управление пользователями
toggle

Создание новых пользовательских профилей через админ-панель

Назначение логина и данных для входа

Управление активностью пользователей

Возможность отключить или заблокировать пользователя

Редактирование данных профиля

Контроль списка участников системы

Управление правами доступа внутри мессенджера

Удаление пользователей из закрытого контура

Профиль пользователя
toggle

Персональная страница пользователя

Отображение имени, аватара и базовой информации

Возможность редактировать данные профиля

Управление фото профиля

Настройки приватности внутри системы

Личные чаты
toggle

Обмен личными сообщениями между пользователями

Отправка текстовых сообщений в режиме реального времени

Возможность продолжить ранее начатый диалог

Отображение статуса доставки сообщения

Отображение статуса прочтения сообщения

Индикатор набора сообщения

Возможность очистить историю диалога

Закрепление важных сообщений в чате

Видеозвонки

Аудиозвонки

Реакция на сообщения

Ответ-реплай на сообщение

Создание отдельной ветки обсуждения к определённому сообщению

Голосовые сообщения

Создание опроса

Поделиться местоположением в трёх форматах (моё положение на карте, трансляция положения в реальном времени, маркер на карте)

Отправка стикеров

Скрытие контента медиафайлов (видео и картинок)

Загрузка файлов из чата (картинки, голосовые и т.д.)

Пересланные сообщения

Добавление в чат расширений

Отправка жалоб на сообщения

Добавление чата в избранное

Групповые чаты
toggle

Создание групповых чатов

Добавление участников в группу

Удаление участников из группы

Назначение модератора группы

Управление названием и аватаром группы, темой группы, адресами комнаты (публичным и локальным)

Обмен сообщениями между участниками группы

Отображение списка участников

История сообщений внутри группы

Закрепление важных сообщений

Настройка уведомлений по конкретному групповому чату

Возможность покинуть группу

Возможность ограничить действия участников внутри группы

Гибкая настройка возможностей пользователей с разными ролями

Пинг определённого пользователя по юзернейму

Работа с сообщениями
toggle

Отправка текстовых сообщений

Редактирование отправленных сообщений

Удаление сообщений

Ответ на конкретное сообщение

Пересылка сообщений между чатами

Копирование текста сообщения

Закрепление сообщений

Отображение времени отправки

Отображение автора сообщения

Отображение статусов отправки, доставки и прочтения

Поддержка ссылок внутри сообщений

Поддержка emoji-реакций

Поиск по сообщениям внутри чата

Файлы и вложения
toggle

Отправка файлов в личные и групповые чаты

Отправка изображений

Отправка документов

Отправка архивов

Отображение превью изображений

Скачивание полученных файлов

Хранение вложений в истории переписки

Проверка доступности файла только для участников конкретного чата

Ограничение доступа к вложениям вне закрытой системы

Медиа и галерея чата
toggle

Отдельный просмотр отправленных изображений

Список файлов, переданных внутри чата

Быстрый переход к медиа из истории переписки

Сохранение структуры вложений по каждому диалогу

Просмотр ранее отправленных материалов без ручного поиска по всей переписке

Групповые видеозвонки
toggle

Запуск группового видеозвонка внутри мессенджера

Подключение нескольких участников к одному звонку

Включение и отключение камеры

Включение и отключение микрофона во время звонка

Отображение участников звонка

Возможность выйти из звонка

Работа видеозвонков внутри закрытого контура системы

Использование звонков для рабочих встреч и внутренних обсуждений

Уведомления
toggle

Уведомления о новых личных сообщениях

Уведомления о новых сообщениях в групповых чатах

Отображение количества непрочитанных сообщений

Уведомления о добавлении в группу

Уведомления о начале видеозвонка

Настройка уведомлений по отдельным чатам

Возможность отключить уведомления для выбранного диалога

Отображение новых событий внутри интерфейса мессенджера

Поиск и навигация
toggle

Поиск пользователей внутри закрытой системы

Поиск личных чатов

Поиск групповых чатов

Поиск по участникам группы

Быстрый переход к нужному диалогу

Отображение списка активных чатов

Разделение личных и групповых переписок

Безопасность и приватность
toggle

Закрытая архитектура без публичной регистрации

Доступ только для пользователей, созданных администратором

Размещение проекта на личном сервере заказчика

Хранение данных внутри инфраструктуры заказчика

Ограничение доступа к перепискам только для участников конкретного чата

Защита личных и групповых сообщений от публичного доступа

Контроль пользователей через административную панель

Возможность оперативно отключить доступ участнику

Серверная инфраструктура
toggle

Развёртывание мессенджера на сервере заказчика

Настройка серверной части под закрытый режим использования

Хранение пользовательских данных, сообщений и файлов на инфраструктуре заказчика

Настройка стабильной работы личных и групповых чатов

Настройка работы видеозвонков внутри выделенной серверной среды

Подготовка системы к дальнейшему масштабированию количества пользователей

Функциональные ограничения проекта
toggle

Голосовые сообщения не входили в реализованный функционал

Видеосообщения в формате кружков не входили в реализованный функционал

Основной фокус был сделан на закрытом доступе, текстовых коммуникациях, групповых чатах, файлах и видеозвонках

Стек технологий

1. Frontend:
toggle

React 19 + TypeScript — современный typed frontend для сложного интерфейса в реальном времени

Matrix SDK — real-time коммуникация на протоколе Matrix

End-to-End Encryption — защищённые сообщения и безопасная коммуникация

Webpack 5 + Nx Monorepo — масштабируемая сборка и управление большой фронтенд-кодовой базой

Jest + Playwright — автоматическое тестирование UI, логики и пользовательских сценариев

2. Frontend iOS:
toggle

Swift — основной язык разработки

SwiftUI — современный декларативный UI (используется в новых экранах, наряду с UIKit)

UIKit — базовый UI-фреймворк приложения

MVVM Architecture — архитектура приложения

Combine — реактивная обработка данных

Swift Package Manager (SPM) — управление зависимостями

End-to-End Encryption — сквозное шифрование сообщений (Olm/Megolm)

VoIP & Push Notifications — голосовые вызовы и push-уведомления

3. Frontend Android:
toggle

Kotlin — современный язык разработки Android-приложений

Jetpack Compose — декларативный фреймворк для создания пользовательского интерфейса

MVVM — архитектура с разделением логики, данных и интерфейса

Kotlin Coroutines — асинхронное выполнение задач без блокировки UI

Kotlin Flow — реактивная обработка потоков данных и состояния

Appyx Navigation — современная система навигации между экранами

Gradle Kotlin DSL — инструмент сборки и управления зависимостями

End-to-End Encryption — сквозное шифрование сообщений и звонков

4. Backend:
toggle

Synapse (Python 3 + Twisted) — Matrix homeserver, ядро мессенджера: обработка сообщений, комнат, пользователей, федерации и E2E-шифрования

Matrix — открытый протокол децентрализованного обмена сообщениями

coturn — TURN/STUN-сервер для аудио- и видеозвонков (обход NAT для WebRTC), с поддержкой TLS и авторизацией по shared secret

Ketesa (React + TypeScript) — веб-панель администрирования homeserver'а: управление пользователями, комнатами, медиа

5. Базы данных:
toggle

PostgreSQL 16 — основная база данных Synapse (хранение сообщений, состояния комнат, аккаунтов)

6. Инфраструктура и развёртывание:
toggle

Docker / Docker Compose — контейнеризация и оркестрация всех сервисов

Nginx — reverse proxy: терминация TLS, проксирование клиентского и федеративного трафика к Synapse и панели администрирования

Let's Encrypt — TLS-сертификаты (используются nginx и coturn)

Работа с заказчиком

*Важно это не работа по проекту это работа именно с заказчиком, и это то чего нет в смете или коммерческом предложении это то что мы делаем для увеличения вероятности успеха продуктаМы делаем клиента сильнее — и вот как это выглядитВ этом проекте мы сознательно вышли далеко за рамки технического задания так как безопасность бизнеса клиента по сути зависела от созданного нами решения. Наша цель была — чтобы заказчик перестал зависеть от подрядчиков в ключевых вопросах. Мы погрузили его в продуктовую логику, разобрали идеологическую основу бизнеса и помогли сформулировать смыслы, которые цепляют аудиторию. Затем — честный разбор всех подводных камней, от юридических нюансов до поведенческих ловушек пользователей. Отдельным треком дали работающие маркетинговые шаги, актуальные прямо сейчас, без воды и общих рекомендаций. Итог: не просто готовый продукт, а владелец, который точно знает, что делает, и команда, которая понимает, как извлекать из платформы максимум.Наша цель это не просто разработка, это успех нашего заказчика.