Ключевые тезисы.
23+.
типов блоков редактора
21.
тип свойств databases
99+.
unit-тестов passing
Стек
Теги
Coswik — корпоративная open-source альтернатива Notion, спроектированная как self-hosted с первого дня. Не SaaS-сервис с private-cloud-опцией, а изначально продукт, который разворачивается на серверах клиента, держит данные внутри организации и хранит ключи шифрования локально. Создан под compliance-требования российского и международного рынков: банки (152-ФЗ, 187-ФЗ), госсектор, медицина (ФЗ-323), промышленные компании с гостайной. Лицензия AGPL-3.0 гарантирует, что любые модификации, включая развёртывание как сервиса, должны быть опубликованы под той же лицензией — никакого vendor lock-in.
Проблема и контекст
SaaS-Notion удобен, но недоступен для критичных сегментов рынка: санкции (после 2022 года множество российских организаций потеряли доступ), compliance-требования (хранение ПДн на территории РФ по 152-ФЗ, защита значимых объектов критической ИИ по 187-ФЗ, требования ФСТЭК к сертифицированным ОС), и стратегическое желание держать критичные данные на собственной инфраструктуре. Существующие self-hosted альтернативы (Outline, AppFlowy, Affine) или не дотягивают до уровня Databases Notion, или не имеют интеграций с экосистемой РФ. Coswik закрывает обе ниши: полноценный блочный редактор и databases уровня Notion плюс глубокие интеграции с 1С, Битрикс24, VK Teams и Пачкой.
Что построено
Полноценная замена Notion: блочный редактор на ProseMirror + Tiptap v3 с 23+ типов блоков (text, headings, lists, todos, code, callouts, embed, files, columns, dividers, и так далее), autosave каждые 500мс с flush-on-unmount, slash-меню, drag-handles. Databases Notion-уровня: 21 тип свойств (text, number, date, status, relations, formulas, rollups, multi-select, ...), 6 видов (Table, Board, Calendar, Gallery, Timeline, List), AST-парсер для формул, sub-items и связанные базы. Pages с ltree-иерархией (GIST-индекс для ancestor/descendant queries). Real-time совместное редактирование через Hocuspocus + y.js с multi-cursor. Полнотекстовый поиск через Meilisearch, семантический поиск через pgvector (RAG), AI с выбором провайдера (OpenAI, Anthropic, Groq, Google, Mistral, локальные модели через Ollama, GigaChat для российских инсталляций).
Архитектура: 2 apps + 15 packages
Монорепо на pnpm 10.23 workspaces + Nx 22.6 для оркестрации. Два приложения: `@coswik/app` (основное Next.js 16 веб-приложение на :3000 со всей логикой — auth, workspaces, pages CRUD, databases engine, API, UI shell, notifications, integrations) и `@coswik/collab-server` (отдельный Hocuspocus-сервер для real-time через y.js — отдельный микросервис, без него редактирование одиночное). Пятнадцать пакетов: `core` (ядро редактора, ProseMirror schema, Tiptap v3 extensions, y.js, 23+ блока — публикуется как npm), `react` (React-обёртка с hooks и компонентами), три альтернативных UI-набора (`shadcn`, `ariakit`, `mantine`), `code-block`, `multi-column`, `ai` и `ai-server`, экспортёры `pdf-export`, `docx-export`, `odt-export`, `email-export`, `server-util`, `dev-scripts`.
Стек
- Frontend: Next.js 16, React 19, TypeScript 5.9, Tailwind 4.1 с fluid responsive scaling, shadcn/ui на Radix primitives, next-themes
- Editor: ProseMirror + Tiptap v3 + Prosemirror-y (yjs), Hocuspocus client v2.13
- Backend: Node.js 22, Better Auth 1.4 (email, magic-link, 2FA TOTP с recovery codes, SSO через SAML/OIDC, LDAP), Prisma 6.1, PostgreSQL 16 с pgvector + ltree + pg_trgm
- Real-time: y.js 13.6, Hocuspocus server 2.13, WebSocket
- Storage: AWS S3 SDK (или MinIO self-hosted), y-indexeddb для offline
- Search & AI: Meilisearch (fulltext), pgvector (semantic / RAG), ai-sdk 6.0 (Anthropic, OpenAI, Groq, Google, Mistral, openai-compatible)
- Queue: BullMQ 5.34 + Redis 5.4 для embed jobs, cleanup, sync, digest
- Testing: Vitest 4.1 (unit, 99+ тестов), Playwright (e2e + component)
- Observability: OpenTelemetry SDK, Sentry, Prometheus + Grafana
- DevOps: Docker Compose (dev), Docker Alpine (prod), Dockerfile.astra (ФСТЭК), Helm chart для Kubernetes
Compliance и безопасность
Append-only audit-log с SHA-256 hash-chain: таблица `audit_events` защищена DB-триггерами от UPDATE/DELETE, каждая запись содержит хеш предыдущей — невозможно подделать. CLI `pnpm audit:verify <workspaceId>` проверяет целостность цепи. Соответствует 152-ФЗ (защита ПДн), 187-ФЗ (значимые объекты КИИ), требованиям ФСТЭК. RBAC и авторизация через CASL + Prisma. API-ключи с rate-limit per-key и истечением. Webhooks с HMAC-SHA256 подписью. SSO через Better Auth plugins (SAML 2.0, OIDC), LDAP sync для организационной структуры → workspace roles, 2FA TOTP с 5 одноразовыми recovery codes. Astra Linux SE 1.7 совместимость через dedicated Dockerfile.astra, SSRF-защита (CGNAT, IPv6-mapped, NAT64), отключение deprecated алгоритмов.
Интеграции с экосистемой РФ
- Notion Import: двухпроходной pipeline (метаданные → ID-map → S3-миграция медиа → контент с маппингом). Резюмирование на ошибке. 95%+ покрытие на реальных воркспейсах (включая 1k+ страниц, комментарии, attachments)
- 1С:Управление торговлей: read-only sync через OData v3 — контрагенты, номенклатура, заказы. Presets для УТ 12, BullMQ repeatable jobs для периодического sync
- Битрикс24: REST + OAuth, sync Сделок / Лидов / Контактов → database в Coswik, webhook + OAuth flow
- VK Teams + Пачка: notification routing в корпоративные чаты, бот для сводок и дайджестов
- Уведомления: Web Push (PWA), email через @react-email, in-app inbox, digest-письма через BullMQ repeatable, DND-расписание (не беспокоить 22:00–08:00 через Intl.DateTimeFormat)
- Экспорт: PDF, DOCX, ODT, email — отдельные пакеты в монорепо
Быстрый старт (15 минут)
Один скрипт `curl -fsSL .../install-quickstart.sh -o coswik.sh && ./coswik.sh` интерактивно клонирует репозиторий, ставит зависимости, поднимает docker-compose стек, запускает setup-wizard, применяет миграции, опционально создаёт demo-страницы. Локальная разработка: `pnpm install` + `pnpm docker:up` + `pnpm db:migrate:dev` + `pnpm dev` (Next dev на :3000). Команды: `pnpm build` (Nx), `pnpm test`, `pnpm e2e`, `pnpm lint`, `pnpm format`.
Статус и дорожная карта
v1.0 фактически готова в кодовой базе (99+ unit-тестов, все passing). Завершены 14 из 26 спринтов Q2 2026: фундамент (auth, БД с 32 Prisma-моделями, RBAC, audit-log, observability), редактор (BlockNote-форк, autosave, 23+ блока, drag-handles, slash-меню), pages CRUD с ltree-иерархией, Databases (21 свойство, 6 видов, AST-формулы, rollups), Notion-импортер (95%+ покрытие), enterprise security, self-hosted сборка (Docker Compose, Helm, Dockerfile Alpine + Astra Linux), i18n (ru/en), RAG с pgvector. Оставшиеся W15–W26: финализация Hocuspocus-синхронизации, RAG-UI, polish Databases (Templates, Linked DBs, Sub-items, Sharing), интеграции 1С / VK Teams / Битрикс24 / Astra compat, пилот с 3-5 клиентами, monitoring + SLO, GA v1.0.0. KPI пилота: ≥3 клиента на self-hosted, импорт 1k страниц < 30 минут, p95 открытия страницы < 200 мс, Docker Compose setup < 15 минут, backup/restore RTO < 30 минут.
Self-hosted — это не «опция Enterprise». Это единственный режим, в котором мы работаем.