Мой основной проект

ЧатЯдро

Платформа для локальных сообществ. Чаты, лента, аудиозвонки, доска объявлений и 22 категории с настраиваемыми ролями и модулями — всё в одном приложении. С августа 2026 года опубликовано в RuStore.

RuStore
модерация пройдена 16.08.2026
22
категории сообществ
88
экранов в приложении
100%
solo-разработка

Путь до магазина

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

  1. 7 августа 2026

    Подача

    Карточка магазина, витрина, возрастной рейтинг, 17 типов собираемых данных в разделе «Безопасность» и обоснование каждого запрашиваемого разрешения. Сборка проверена вскрытием APK: состав разрешений и версия — те, что заявлены.

  2. 11 августа 2026

    Отказ

    Магазин потребовал подтвердить включение в реестр операторов персональных данных. Отправил карточку реестра и снимок проверки статуса — вопрос оказался юридическим, а не техническим.

  3. 11 августа 2026, вечер

    Повторная сборка

    Повторно отправить тот же файл нельзя — магазин требует номер версии выше предыдущего. Пересобрал из боевого коммита в отдельной рабочей копии, подняв только номер версии: так в магазин не уехали правки, которые жили лишь на бете и ни разу не собирались в релизный APK.

  4. 16 августа 2026

    Опубликовано

    Модерация пройдена, приложение доступно в каталоге. Заметная часть новых участников пришла именно из магазина — видно по версии сборки в журналах сервера. Первые отзывы — на пять звёзд.

Что делает ЧатЯдро уникальным

Ниша, которую не покрывают ни Telegram, ни Nextdoor, ни MAX/Сферум.

🏘

Мультитенантность

Пользователь создаёт своё сообщество из 22 категорий: СНТ, семья, школа, работа, магазин, автоклуб, спорт, медицина и другие. У каждой категории — свои роли и свои модули.

🎭

Двухуровневые роли

Глобальные роли платформы (user / модератор / админ) + внутрисообщественные роли для каждой категории. Например для СНТ: Председатель, Член правления, Житель, Садовод.

📱

Где работает

Android — из RuStore или установкой APK с сайта. В браузере на компьютере — как обычный сайт. На iPhone — PWA с главного экрана: в App Store приложения нет, и я об этом говорю прямо. Один код на всё — Flutter.

📞

WebRTC-аудиозвонки

Голосовые звонки 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 на всех уровнях.

Клиент

  • Flutter 3.38 · Dart 3.10
  • PWA (Service Worker, Wake Lock)
  • WebRTC (аудио-звонки)
  • Собственная дизайн-система (glassmorphism)
  • Rich-text редактор постов (Quill)
  • Optimistic UI с socket-echo

Бэкенд

  • Node.js 20 · Express 5
  • Socket.IO 4 (single-channel)
  • PostgreSQL 15 (Docker)
  • Yandex Object Storage (S3-compatible)
  • ffmpeg async workers
  • JWT (access 15м + refresh opaque)

Инфраструктура

  • Nginx (HTTP/2, gzip)
  • PM2 process manager
  • Let's Encrypt (SSL авто-обновление)
  • rclone → Яндекс.Диск (шифрованные бэкапы AES-256)
  • Firebase Cloud Messaging (FCM)
  • Web-Push VAPID

Как начать пользоваться

Три простых шага — за пару минут вы уже в своём сообществе.

1

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

На Android — из RuStore, в два касания и с автообновлением. На iPhone и компьютере — откройте сайт и добавьте на главный экран: есть пошаговая инструкция с картинками.

2

Зарегистрируйтесь

Быстрая регистрация по номеру телефона. Никаких проверок паспорта — только базовые согласия по 152-ФЗ.

3

Создайте сообщество

Выберите категорию из 22 доступных, назначьте роли участникам, включите нужные модули — и начинайте общаться.

Готовы попробовать?

Android — из магазина. iPhone и компьютер — по пошаговой инструкции с картинками.