Проект: учебный мессенджер «Плюх» с ДНК ICQ и IRC  Публичный пост
8 сентября 2026  14
учебный мессенджер "Плюх" с ДНК ICQ и IRC
https://plyuh.ru

TL;DR

Мультисерверный мессенджер "Плюх" с дружелюбным интерфейсом на стеке MySQL+PHP+Flutter, с обменом по Rest API. На этих инструментах проще всего иллюстрировать современную архитектуру приложений.

Сделан в учебных целях (об этом ниже), это ключевая фишка.

P.S.: Разумеется, вайбкодинг.

Палка, палка, огуречик...

Я на своём веку застал и ICQ, и mIRC, и файлообменник Skype, и Miranda, и jabber... Всего не упомнишь. Знаю про более свежие штуки навроде Mastodon (да, знаю что это не мессенджер) и Element. И никогда не возникало желания накодить свой чат. Как-то избыточно и бессмысленно при таком-то зоопарке уже существующих решений. Однако когда встал вопрос о том, чтобы из этого избыточного разнообразия выбрать нечто одно, для домашнего пользования, я устал перебирать и решил убить одним выстрелом двух зайцев: привить своим детям системное мышление и получить чисто свой, семейный мессенджер. Я стал объяснять детям, что бывают другие способы общения кроме тех, в которых сидят буквально все. Их плюсы, минусы. И что с помощью современных ИИ-агентов можно достаточно легко реализовать свой собственный способ. Потом начал это показывать. Вот так, практически случайно, и родился Плюх: мессенджер по инвайтам и с вайбами IRC.

От IRC ему досталась мультисерверность - можно зарегаться на нескольких серверах, на каждом под разными почтами, и переключаться по необходимости, переключая "контекст" общения.

Также можно поднять свой сервер и уже самому принимать на нём "гостей".

Есть ещё нюанс, на котором в наш параноидальный век хочется остановиться отдельно. Шифрование. Текст сообщений в базе на сервере лежит, конечно, не открытыми словами, но и зашифрованным назвать его язык не поворачивается. Используется симметричный (!) ключ, завязанный на пароль пользователя. Это чисто защита от случайного взгляда в базу. Отсюда забавная побочная фича: при смене пароля можно сделать так, что старые сообщения перестанут читаться. Вместо старого сообщения или картинки всплывёт надпись «не удалось расшифровать».

Для совсем секретных тем это, конечно, несерьёзно: хозяин сервера и тот, кто имеет доступ к серверу, технически может прочесть что угодно (если, опять же, пароль пользователя не менялся).

Почему не ввести "взрослое" шифрование? Пу-пу-пу... Проще всего отослать вас читать Постановление Правительства РФ от 16 апреля 2012 г. N 313. Конечно, тем, кто находится вне юрисдикции РФ, никто не запретит поднять свой сервак со своим, каким угодно шифрованием. Ну а я как законопослушный россиянин, свой список покупок ни от кого не прячу =D

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

Название придумали вместе с младшим сыном. Фантазировали, что отправка сообщения - будто мы кидаем бутылку с письмом в море. Но называть мессенджер "Бутылка"- плохая примета. А вот звук, с которым бутылка плюхается в море - вполне ёмкое и необычное слово. И легко преобразуется в глагол: "плюхни мне" =D

А ещё я помню, в детстве у меня была книжка по программированию, там была игра "Плюх" - надо было управлять картингом, чтобы не плюхнуться в озеро. Может, её помнит кто-то кроме меня?

Что вошло в прототип и сколько времени на него было потрачено?

Базовый функционал навайбкожен примерно за неделю, сейчас мы с детьми уже начинаем планировать докидывать какие-то излишества, типа опросов и реакций. Сейчас это примерно следующий список:

  • Регистрация по email и только по инвайтам, всё общение чисто среди своих;
  • Текстовые сообщения с поддержкой Markdown;
  • Групповые чаты;
  • Мультисерверность: прописал адрес — и ты в своей «сети». Также можно поднять свой собственный сервер;
  • Закрепы в чатах;
  • Клиент для Android и Web (для iOS можно веб-версию ставить); Всё это крутится на одном простеньком VPS.

Есть дополнительный VPS, на котором реализовано хранение картинок и гифок, а также поддержка простейших звонков.

Кто этим пользуется?

Семья. Я, жена, дети. И дети друзей тоже прониклись "секретностью" мессенджера (см. анекдот про Неуловимого Джо =D).

Сейчас поднято два сервера: один - основной, публичный chat.plyuh.ru (для тестирования друзьями-знакомыми). Второй - чисто свой, семейный. На котором, собственно, семья и переписывается.

С какими самыми неожиданными трудностями пришлось столкнуться?

Самое трудное, это объяснять детям, что "обычная интуитивная работа мессенджера" - на самом деле длиннющий список ситуаций, в которые может попасть пользователь. С описанием, как себя при этом должна повести система. Нет, даже не это самое трудное. Ещё труднее сделать это так, чтобы детский интерес к проектированию после осознания масштаба этой сложности не угас.

Ну и ещё - в гугле мой аккаунт разработчика протух ещё четыре года назад, а новый завести не получилось. Это очень огорчило. Так что для мобильников мессенджер существует только в виде APK, которую собирает Flutter - гигантские 100Мб с фреймворком и компиляцией под все виды Андроида.

Сколько потратили и заработали? Есть идеи как это можно монетизировать?

Два VPS по 209р в месяц, монетизировать тут нечего, да и ни к чему. Хотя конечно донаты на развитие принимаются с удовольствием и благодарностью, в обмен на консультацию по работе мессенджера или установке своего сервера.

Какие планы на будущее?

Сделать опросы и реакции. Детям очень хочется =D

Нужны ли какие-то советы или помощь Клуба?

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

Какой совет вы бы сами могли дать идущим по вашим стопам?

Не повторяйте, трюки выполнены профессионалами =D

Откомментируйте первым 👇

😎

Автор поста открыл его для большого интернета, но комментирование и движухи доступны только участникам Клуба

Что вообще здесь происходит?


Войти  или  Вступить в Клуб