Мультитенантность
Пользователь создаёт своё сообщество из 22 категорий: СНТ, семья, школа, работа, магазин, автоклуб, спорт, медицина и другие. У каждой категории — свои роли и свои модули.
Мой основной проект
Платформа для локальных сообществ. Чаты, лента, аудиозвонки, доска объявлений и 22 категории с настраиваемыми ролями и модулями — всё в одном приложении. С августа 2026 года опубликовано в RuStore.
Публикация в RuStore прошла не с первого раза. Показываю как было — умение разобрать отказ полезнее гладкой истории.
Карточка магазина, витрина, возрастной рейтинг, 17 типов собираемых данных в разделе «Безопасность» и обоснование каждого запрашиваемого разрешения. Сборка проверена вскрытием APK: состав разрешений и версия — те, что заявлены.
Магазин потребовал подтвердить включение в реестр операторов персональных данных. Отправил карточку реестра и снимок проверки статуса — вопрос оказался юридическим, а не техническим.
Повторно отправить тот же файл нельзя — магазин требует номер версии выше предыдущего. Пересобрал из боевого коммита в отдельной рабочей копии, подняв только номер версии: так в магазин не уехали правки, которые жили лишь на бете и ни разу не собирались в релизный APK.
Модерация пройдена, приложение доступно в каталоге. Заметная часть новых участников пришла именно из магазина — видно по версии сборки в журналах сервера. Первые отзывы — на пять звёзд.
Ниша, которую не покрывают ни Telegram, ни Nextdoor, ни MAX/Сферум.
Пользователь создаёт своё сообщество из 22 категорий: СНТ, семья, школа, работа, магазин, автоклуб, спорт, медицина и другие. У каждой категории — свои роли и свои модули.
Глобальные роли платформы (user / модератор / админ) + внутрисообщественные роли для каждой категории. Например для СНТ: Председатель, Член правления, Житель, Садовод.
Android — из RuStore или установкой APK с сайта. В браузере на компьютере — как обычный сайт. На iPhone — PWA с главного экрана: в App Store приложения нет, и я об этом говорю прямо. Один код на всё — Flutter.
Голосовые звонки 1:1 через WebRTC с сигналингом по Socket.IO. Работает в браузере без установки, поверх любой сети. Плюс голосовые сообщения с 3 скоростями и меткой «прослушано».
Фото и видео одной пачкой, файлы до 50 МБ, отправка контакта карточкой, около 250 смайлов со своими категориями, реакции. Голосования прямо в переписке — с анонимностью, которая соблюдается на сервере: «кто как проголосовал» не отдаётся даже автору.
Кисть, подпись, замазка в двух режимах, поворот и обрезка — прямо в приложении, до отправки. С коротким знакомством, где инструменты рисуют себя сами.
22 курса, разложенных по ступеням «Новичок — Уверенный — Профи», с медалями за пройденное. Аудитория нетехническая, поэтому обучение покрывает каждый экран, а не только основные сценарии.
Каждая категория включает свой набор: доска объявлений, календарь, взносы, заметки, «Помощь соседей» (просьбы с откликом и понятным жизненным циклом), «Покупки», строительные калькуляторы. Ненужное отключается в настройках сообщества.
Собственный движок модерации с редактируемыми словарями терминов. Порог 3 жалоб → soft-hide, дальше — hard-remove. Аудит-журнал действий администраторов и разбор жалоб с карточкой объекта.
Соответствие 152-ФЗ: версионированные согласия, журнал подписей с IP и SHA256-хешем документа, включение в реестр операторов персональных данных. Публичные тексты документов собираются из тех же исходников, что и экраны в приложении — расхождение невозможно.
7 встроенных игр (шашки, шахматы, пазл, квиз, морской бой, крестики-нолики, «Балда»). Плюс инструменты сообществ: погода, календари, взносы, SOS.
Чистая хронология работает плохо: лента открывалась записями двухмесячной давности. Сделал окно свежести, показ непросмотренного вперёд и ограничение — не больше двух постов подряд от одного автора. Порог окна выбран замером на живых данных, а не на глаз.
Обе решались по замерам, а не на ощупь.
Видео уходили такими, какими их сняла камера, а фото в браузере не сжимались вовсе. Сделал сжатие на устройстве и перекодирование до 720p на сервере: библиотека роликов 630 → 204 МБ, битрейт 5,7 → 1,9 Мбит/с, самый тяжёлый ролик 48,2 → 4,6 МБ, фото 3,8 МБ → 729 КБ. Плюс превью первым кадром через ffmpeg, кэш файлов на устройстве и проценты загрузки. Видео с iPhone (HEVC) конвертируется в фоне: сообщение уходит сразу, готовый файл приходит по socket-событию.
Просьба от пользователя: в PWA нет системной проверки текста. Поднял свой сервис на hunspell ru_RU поверх nspell с ленивой загрузкой словаря и кэшем. Встроенного подборщика не хватило — он исправляет одну ошибку в слове, а «превед» требует двух, поэтому добавил таблицу типичных русских опечаток. Разбор текста сделан в два шага: адреса почты, ссылки и номера отбрасываются целиком, иначе проверка вытаскивала куски из email как отдельные слова.
Современный full-stack на всех уровнях.
Три простых шага — за пару минут вы уже в своём сообществе.
На Android — из RuStore, в два касания и с автообновлением. На iPhone и компьютере — откройте сайт и добавьте на главный экран: есть пошаговая инструкция с картинками.
Быстрая регистрация по номеру телефона. Никаких проверок паспорта — только базовые согласия по 152-ФЗ.
Выберите категорию из 22 доступных, назначьте роли участникам, включите нужные модули — и начинайте общаться.
Android — из магазина. iPhone и компьютер — по пошаговой инструкции с картинками.