Приложение Т—Ж
В нем читать удобнее

Я сделал свой мессенджер и вот что из этого вышло

23

Этот текст написан в Сообществе, в нем сохранены авторский стиль и орфография

Аватар автора

Денис Юркин

Страница автора

Мне 25, я веб-разработчик из Нижнего Новгорода, работаю на себя. Делаю сайты, Телеграм-ботов, веб-приложения. В какой-то момент взялся за проект, который в итоге занял несколько месяцев жизни и стал основным. Рассказываю по порядку.

В октябре 2024-го Роскомнадзор заблокировал Дискорд. Я сидел в голосовом канале с друзьями, связь оборвалась, и на этом всё. Серверы, каналы, сообщества, которые собирались годами, стали недоступны.

Кто не пользовался Дискордом, объясню кратко: это мессенджер, где можно создать свой сервер (что-то вроде клуба), внутри организовать каналы по темам, назначить модераторов с разными правами, подключить ботов для автоматизации. Плюс голосовые комнаты, куда заходишь и разговариваешь, без звонков и ожидания. Этим пользовались геймеры, программисты, студенты, стримеры, вообще все кому нужно место для сообщества.

После блокировки часть людей ушла в Телеграм, но там нет серверной структуры, нет голосовых каналов, нет ролей. Кто-то поставил впн, но это нестабильно и не у всех работает. Российских аналогов с таким же набором функций я не нашел.

Я работаю с React и Node.js каждый день. Подумал: а могу ли я сделать такое сам? Не из амбиций "убить Дискорд", а просто как инструмент, которым бы сам пользовался.

Начал в свободное от клиентских проектов время. Постепенно проект разрастался и стал основным.

Что получилось: мессенджер с серверами, каналами (текстовыми и голосовыми), системой ролей, ботами, личными сообщениями. Назвал Vela, с латыни "парус". Есть приложение для Windows и веб-версия в браузере. Серверы в России, работает без впн.

Сколько всё это стоило:

  • Сервер (VPS): около 1000 рублей в месяц. Один сервер, на нем и база данных, и приложение, и файловое хранилище
  • Домен: около 200 рублей в год
  • Хранилище для файлов (S3): пока бесплатно в рамках стартового тарифа
  • Внешние сервисы: ноль. Всё опенсорсное
  • Зарплата: себе не плачу, это пока не бизнес

Итого расходы: примерно 500 рублей в месяц. Основной ресурс, который я вложил, это время. Очень много времени.

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

Отдельная история с законодательством. Поскольку это мессенджер для российского рынка, нужно соответствовать 152-ФЗ (закон о персональных данных). Я реализовал: согласие на обработку при регистрации, возможность экспортировать все свои данные, возможность полностью удалить аккаунт. Серверы физически в России.

Сейчас приложение работает, сайт опубликован, пишу статьи на Хабр и другие площадки. Пользователей пока немного, по сути я только начинаю продвижение. Денег проект не приносит, но и не требует серьезных вложений.

Что дальше. Варианта два: либо проект наберет аудиторию и можно будет думать о монетизации (подписки, дополнительные функции), либо останется как портфельный кейс. В любом случае, это самый масштабный проект, который я делал, и он сильно прокачал мои навыки.

Готов ответить на вопросы в комментариях.

  • user6390044Ну это не мессенджер, а чат с плюшками (как говорится на максималах)1
  • Anton ZhitarevШифрование? Безопастность? Приложение на иос и андроид?2
  • user6188900Супер!!! Все ваши планы сбудутся!!!5
  • Денис Юркинuser6188900, Благодарю!0
  • Денис ЮркинAnton, Безопасность развивается на ровне с основной структурой. Мобильная же адаптация и выпуск на площадках, требует первоначальной обкатки на десктоп приложении.0
  • Денис Юркинuser6390044, Сейчас вполне может быть, но всему свое время.4
  • Денис ЮркинAnton, В первую очередь нужно тем, кто работает-играет в сообществе. Безопасность не вижу смысла описывать, капля в море слова о том, что она хорошо реализована. Особенно в наше время, когда о тебе все и всё знают. В частности корпорации предоставляющие веб-продукты.4
  • Anton ZhitarevДенис, что значит хорошо? Какие ключи? Где хранятся? Как проходит аутентификация в мессенджер? Второй фактор?0
  • Катя СмирноваСервер: 1000 рублей в месяц, итого: 500 рублей в месяц. Вам кто-то доплачивает? Дело хорошее.1
  • Денис ЮркинAnton, Транспортное шифрование: -Все соединения через HTTPS (TLS/SSL) — Let's Encrypt сертификаты на всех доменах (velachat.online, media.velachat.online) -WebSocket соединения тоже через WSS (encrypted) -Медиафайлы раздаются через S3 с HTTPS Аутентификация: -JWT токены в httpOnly cookies (не доступны из JavaScript, защита от XSS) -Refresh token ротация — при каждом обновлении старый токен инвалидируется -Двухфакторная аутентификация (TOTP) — Google Authenticator и подобные -Backup-коды для восстановления при потере 2FA Хранение паролей: -bcrypt хэширование, пароли в открытом виде нигде не хранятся Защита API: -Rate limiting на авторизацию, загрузку файлов, API запросы (через Nginx) -Zod валидация всех входящих данных на сервере -Sanitization контента сообщений (защита от XSS/инъекций) -CORS настроен только на разрешённые домены Сессии: -Refresh токены хранятся в PostgreSQL с привязкой к устройству -Возможность просмотра и отзыва активных сессий из настроек2
  • Anton ZhitarevДенис, звучит интересно. Как будете реализовать сорм? Персональные данные? Схема монетизации?0
  • Денис ЮркинAnton, по порядку. СОРМ: пока проект на стадии раннего запуска, СОРМ становится обязательным при включении в реестр ОРИ. Когда дорастём до масштаба где это потребуется, будем подключать. Сейчас серверы на VPS в РФ (Aéza), технически к установке готовы. Персональные данные: обработка по 152-ФЗ. Согласие при регистрации (consent_at, consent_version), возможность экспорта всех своих данных (JSON), полное удаление аккаунта с каскадным удалением из S3. Политика конфиденциальности на 12 разделов, описаны все третьи стороны (OAuth провайдеры, STUN серверы, хранилище). Серверы в РФ, данные за границу не уходят. Монетизация: базовый функционал бесплатный навсегда (серверы, каналы, голос, боты, роли). Когда будет аудитория, появится опциональная подписка: косметика (анимированные аватары, темы профиля, кастомные эмодзи), повышенные лимиты файлов, HD стриминг. Модель как у Discord Nitro, ценник ближе к российским реалиям (99-299 р/мес). Платить за возможность общаться никто не будет.1
  • Anton ZhitarevДенис, удачи вам в этом начинании!1
  • КонстантинДруг, у меня серв за 200 рубл, домен за 150, бэкенд матрикс, фронт элемент. Шифрование есть, доступ выдаю в ручную, регаю лог и пасс с выдачей на руки. Свой типа телеграм , но приватный. Заблокать нема, все шифровано, в паблике не виден. Есть мануалы на Хабре. Но все ровно ты Красава!1
  • Владимир РудомахаКак исполняются обязанности Организатора распространения информации (Федеральный закон от 27.07.2006 N 149-ФЗ (ред. от 29.12.2025) "Об информации, информационных технологиях и о защите информации")?0
  • Александр ПНа чем реализован бекенд и как -websocket или tcp + grpc или https? Вам будет сложно его монетизировать, это 100%0
  • Александр ПА где ссылка, потестировать1
  • Артём КолмыковКлассный проект. Пощупать действительно было бы интересно. Я сейчас очень плотно изучаю и практикуюсь в тестировании и кибер безопастности, с удовольствием бы потестил такой софт.0
  • 3dtimВладимир, да никак не исполняются дурные законы ваши0
  • 3dtimАртём, в смысле с удовольствием ломанул бы его?0
  • T3rrorflyАвтор, почините пож линк на скачивание клиента для окон на сайте, 404 при попытке скачать0
  • ИлкаМожно скачать и попробовать?0
Сообщество