Cosapp.

Self-hosted корпоративный мессенджер: форк Mattermost под российский B2B, без облачных зависимостей, с CosMeet вместо Zoom

Production2024IT-проект

Ключевые тезисы.

01Форк Mattermost под российский B2B: удалены облачные сервисы и SaaS-функциональность, проприетарные интеграции заменены на собственные (CosMeet вместо Zoom)
02Монорепо с разделением по платформам: server (Go), webapp (React legacy), webapp-v2 (Next.js 16, в работе), mobile (React Native), desktop (Electron), e2e-tests (Playwright)
03Активная миграция фронтенда: legacy React + Redux + SCSS → Next.js 16 + Tailwind v4 + Zustand + next-themes с Electron-совместимостью
04Self-hosted из коробки: Docker, Ubuntu, Tar, Kubernetes, Helm, Debian, RHEL — никаких облачных зависимостей, никакого SaaS-биллинга
05700+ интеграций через marketplace plus REST API v4 + WebSocket, slash-commands, Apps, Plugins, Webhooks — расширяется без правки ядра
06Open core лицензирование: MIT для скомпилированных версий, GNU AGPL v3.0 для исходного кода (или коммерческая лицензия), Apache 2.0 для admin tools
07Нативные приложения для всех платформ: Android, iOS (через React Native), Windows, macOS, Linux (через Electron)

~4M.

строк кода (Go + TS)

700+.

интеграций в marketplace

7+.

платформ деплоя

Статус

Production

Год

2024

Категория

Web App

Стек

Go 1.25TypeScriptReactReduxNext.js 16Tailwind v4ZustandReact Native 0.76ElectronPostgreSQLRESTWebSocketPlaywrightDetox

Теги

Mattermost ForkSelf-hostedCorporate MessengerTeam CommunicationWorkflow AutomationB2BOpen SourceGoReact NativeElectron

Cosapp — open core платформа корпоративного мессенджера и операционной системы для внутренних коммуникаций. Форк Mattermost, полностью переработанный под российский B2B-рынок: удалены облачные сервисы, SaaS-функциональность, проприетарные интеграции (Calls, Jira, Zoom, ServiceNow, GitHub, GitLab, MS Teams). Заменены на локальные форки и собственные интеграции — голосо-видеозвонки идут через CosMeet (наш форк Jitsi). Self-hosted из коробки, без зависимости от облака.

Проблема и контекст

Корпоративные мессенджеры — Slack, MS Teams — в России либо заблокированы, либо несут юридические риски (хранение данных вне РФ, требования к обработке ПДн). Mattermost решает базовую задачу self-hosted мессенджера, но привязан к экосистеме US-вендора с его roadmap, заточенной под глобальный SaaS, и проприетарными интеграциями, которые не работают в России. Cosapp убирает зависимость от вендора: код полностью наш, голос и видео идут через нашу же CosMeet, интеграции с 1С и Bitrix24 — встроены, документация переведена на русский, GitHub Project управляет roadmap.

Архитектура монорепо

Монорепо с чёткой структурой по платформам: `platforms/server/` (Go-бэкенд), `platforms/webapp/` (legacy React-фронтенд), `platforms/webapp-v2/` (новый Next.js 16 + Tailwind v4), `platforms/android/` (React Native + нативный iOS), `platforms/windows/` (Electron desktop), `platforms/tools/` (cosapp-govet и утилиты), `platforms/api/` (OpenAPI), `platforms/e2e-tests/` (Playwright). Сервер на Go 1.25 с PostgreSQL через миграции (morph-based, sequence-numbered), REST v4 в `channels/api4/` плюс WebSocket для real-time, бизнес-логика в слое App (`channels/app/`), SQL Store через squirrel-queries с EXPLAIN ANALYZE для новых запросов. CLI-администрирование через mmctl.

Что построено

  • Полный набор корпоративных коммуникаций: чаты, прямые сообщения, каналы с управлением правами, архивирование, поиск, файловые вложения
  • Голос и видео через CosMeet (наш форк Jitsi) — настроено по умолчанию в config.json, отдельный Zoom-плагин не нужен
  • Активная миграция фронтенда: legacy React с Redux + SCSS → новый webapp-v2 на Next.js 16 + Tailwind v4 + Zustand + next-themes
  • Standalone npm-проект для webapp-v2 (не workspace), Electron-совместимость (запрет window.confirm(), Radix Dialog вместо native)
  • Мобильные приложения на React Native 0.76 (New Architecture отключена), Detox для E2E, fastlane для CI
  • Desktop приложение на Electron с тремя webpack-конфигами (main, preload, renderer), Playwright для E2E
  • REST API v4 + WebSocket, slash-commands, Apps, Plugins, Webhooks — 700+ интеграций из marketplace
  • Multi-platform deployment: Docker, Ubuntu, Tar, Kubernetes, Helm, Debian, RHEL — никаких облачных зависимостей

Что было удалено в форке

В рамках очистки убраны модули, которые не нужны для self-hosted B2B-сценария: `shared_channel` (cross-organization общие каналы), `cloud` и `hosted_customer` (SaaS-биллинг), `recap` и `summarization` (закрытые SaaS-фичи), встроенные интеграции с проприетарными системами (Calls, Jira, Zoom, ServiceNow, GitHub, GitLab, MS Teams). Все `mattermost` / `Mattermost` заменены на `cosapp` / `Cosapp` в коде, документации, конфигах, identifiers и bundle ID. Управление задачами — GitHub Project #16, вместо встроенных roadmap-файлов. Исторический контекст форк-очистки хранится в архиве `_archive/roadmap-2026-05-08/roadmap.md`.

Технологический стек

Сервер: Go 1.25.8, PostgreSQL с морф-миграциями, REST v4, WebSocket, slash-команды, Apps, Plugins. Webapp legacy: npm workspace monorepo (Node 24, npm 11), React + Redux + SCSS, workspace-пакеты `@cosapp/types`, `@cosapp/client`, `@cosapp/components`, `@cosapp/eslint-plugin`. Webapp v2: Next.js 16.2.2, Tailwind v4, Zustand stores, next-themes, middleware для защиты роутов, токены дизайна через CSS-переменные (fluid scaling, dark/light). Mobile: React Native 0.76.9 + Detox. Desktop: Electron + Playwright. E2E: Playwright с Page Object Pattern, visual-тесты в Docker. OpenAPI документация — на платформе API.

Правила разработки

Server: EXPLAIN ANALYZE для новых запросов, CREATE INDEX только CONCURRENTLY, никаких ALTER COLUMN type-change, полный batching для миграций без full-table UPDATE. Уникальные constraint: сначала INDEX CONCURRENTLY, потом ADD USING INDEX. API layer: минимизировать round-trip к БД, DELETE...RETURNING вместо Get+Delete, нагрузочные тесты для новых эндпоинтов, проверки permissions. Webapp: импорты только через полные имена пакетов (`@cosapp/client`), без относительных путей, данные только через actions без прямого Client4, стили SCSS + CSS variables + BEM, i18n — только en.json при добавлении, тесты RTL + userEvent без snapshot-тестов.

Лицензирование

Скомпилированные версии — MIT (MIT-COMPILED-LICENSE.md в релизах). Исходный код — GNU AGPL v3.0 (с оговорками для admin tools) или коммерческая лицензия. Admin Tools и конфиги (`server/templates/`, `server/i18n/`, `server/public/`, `webapp/`) — Apache 2.0. Гарантия: Cosapp не будет применять copyleft AGPL если (а) проект не линкуется напрямую к платформе и (б) не модифицирует исходный код платформы. Новые версии выходят ежемесячно на 16-е число.

Статус

Активная разработка, последний коммит 2026-05-11. Текущий фокус — миграция с legacy React webapp на новый Next.js 16 + Tailwind v4 фронтенд (webapp-v2 in progress). 15+ коммитов в апреле–мае 2026: code-review passes для webapp-v2, модульная очистка кода после форк-удалений, новые интеграции, security-фиксы.

Открыть проект

Поделиться

следующая
Центр ойл