Ко мне приходят, когда в продукте уже есть редактор, но работать вдвоём в нём невозможно: правки затирают друг друга, приходится блокировать документ на одного пользователя или обновлять страницу, чтобы увидеть чужие изменения. Я закрываю эту боль целиком — приношу совместную работу уровня Google Docs прямо внутрь вашего приложения. Несколько человек открывают одну сущность и видят набор текста в реальном времени, чужие курсоры и выделения, комментарии и упоминания, а система сама сводит одновременные правки без потерь и без ручного разрешения конфликтов.
Технически я строю всё на бесконфликтных структурах данных: CRDT и операциональные преобразования, обычно через экосистему Yjs. Она даёт проверенную логику слияния, канал awareness для присутствия и курсоров и транспорт на выбор — WebSocket, WebRTC или очередь сообщений. Отдельно закрываю то, что чаще всего проваливают в таких задачах: редактирование офлайн с корректной досинхронизацией после возврата в сеть, снапшоты и сжатие истории, чтобы данные не пухли бесконечно, отмену и повтор с учётом действий соседей, а также хранение, устойчивое к перезапускам и к работе на нескольких серверах сразу. Присутствие, статусы «печатает», ветки обсуждений — часть единой модели, а не набор костылей поверх неё.
На выходе — не прототип, а встроенная и протестированная функция. Я привязываю совместную модель к вашему конкретному редактору: форматированный текст, канвас, таблица или структурированная форма, покрываю её тестами на параллельные правки и обрывы связи, описываю протокол и схему масштабирования, чтобы команда дальше вела это без меня. Стоимость и срок ниже — стартовая оценка для первой совместной поверхности; масштабные внедрения по многим типам документов считаю отдельно.
Технически я строю всё на бесконфликтных структурах данных: CRDT и операциональные преобразования, обычно через экосистему Yjs. Она даёт проверенную логику слияния, канал awareness для присутствия и курсоров и транспорт на выбор — WebSocket, WebRTC или очередь сообщений. Отдельно закрываю то, что чаще всего проваливают в таких задачах: редактирование офлайн с корректной досинхронизацией после возврата в сеть, снапшоты и сжатие истории, чтобы данные не пухли бесконечно, отмену и повтор с учётом действий соседей, а также хранение, устойчивое к перезапускам и к работе на нескольких серверах сразу. Присутствие, статусы «печатает», ветки обсуждений — часть единой модели, а не набор костылей поверх неё.
На выходе — не прототип, а встроенная и протестированная функция. Я привязываю совместную модель к вашему конкретному редактору: форматированный текст, канвас, таблица или структурированная форма, покрываю её тестами на параллельные правки и обрывы связи, описываю протокол и схему масштабирования, чтобы команда дальше вела это без меня. Стоимость и срок ниже — стартовая оценка для первой совместной поверхности; масштабные внедрения по многим типам документов считаю отдельно.