- PVSM.RU - https://www.pvsm.ru -
TL;DR: Проект Cap (открытый аналог Loom, 22 800 звёзд на GitHub) держит весь монорепозиторий в открытом доступе, но выстроил четыре уровня монетизации. Главный ход: базовые движки захвата отданы под MIT, основной монорепозиторий закрыт AGPLv3, а коммерческая лицензия за $29/год продаётся не на исходный код, а на официально собранный бинарник. Разбираем архитектуру на Rust/Tauri + Next.js, код проверки лимитов и то, что из этой схемы может применить разработчик-одиночка.
Большинство попыток заработать на открытом коде упираются в две крайности:
Сбор донатов. Автор ставит кнопку спонсорства на GitHub или ссылку на Boosty. Проект собирает десятки тысяч звёзд, раздел Issues разрастается от баг-репортов, а создатель получает пару сотен долларов в месяц за круглосуточную техподдержку.
Внезапная смена лицензии. Проект привлекает инвестиции, набирает аудиторию за счёт сообщества, а затем переходит на закрытую коммерческую лицензию вроде BSL или SSPL (история Redis, Elastic и MongoDB). Сообщество отвечает резким негативом и немедленно делает форки (Valkey, OpenSearch), а доверие к авторам теряется навсегда.
В конце 2023 года появился проект Cap [1] — инструмент для записи экрана, альтернатива сервису Loom. Сейчас у репозитория CapSoftware/Cap [2] уже 22 800 звёзд на GitHub, небольшая удалённая команда и устойчивая выручка.
При этом весь исходный код доступен публично. Любой разработчик может склонировать проект, выполнить docker compose up -d и поднять сервис на своём сервере.
Я внимательно изучил монорепозиторий Cap, их лицензионные соглашения и тарифную сетку. Ниже — подробный разбор того, как устроена эта модель с точки зрения кода и бизнеса.
Cap устроен сложнее обычного веб-сервиса. Это монорепозиторий, разделенный на несколько независимых уровней:

Десктопное приложение (apps/desktop и apps/desktop-gpui):
Клиент написан на Rust с использованием фреймворка Tauri (а в новой ветке разрабатывается нативный интерфейс на GPUI).
Внутри работает легковесный веб-интерфейс на React.
Захват видео идёт напрямую через системные API macOS (ScreenCaptureKit) и Windows.
Низкоуровневые библиотеки (cap-camera*, scap-*):
Отдельные крейты на Rust, отвечающие за захват картинки с экрана и веб-камеры.
Серверная часть (apps/web):
Веб-приложение на Next.js с обработчиками API на базе Hono.
База данных — MySQL.
Объектное хранилище — совместимое с S3 (MinIO для локальной работы, AWS S3 или Cloudflare R2 на продакшене).
Медиа-сервер (apps/media-server):
Фоновый сервис на базе FFmpeg [3], отвечающий за обработку, нарезку и пережатие видеофайлов.
В репозитории нет закрытых модулей: клиент, серверные эндпоинты и файлы развёртывания лежат в общем доступе.
Интереснее всего в Cap устроен не стек технологий, а структура файла LICENSE в корне репозитория.
Авторы не стали выбирать одну лицензию для всего проекта, а разделили кодовую базу на три юридические зоны с разными задачами:
CapSoftware/Cap
├── cap-camera* / scap-* ──► Лицензия MIT (распространение и помощь сообщества)
├── apps/web / desktop ──► Лицензия AGPLv3 (защита от перепродажи в виде SaaS)
└── Сборки .dmg / .exe ──► Коммерческая лицензия (монетизация готовых файлов, $29/год)
Библиотеки из семейств cap-camera* и scap-* распространяются под свободной лицензией MIT:
- All code residing in the `cap-camera*` and `scap-*` families of crates
is licensed under the MIT License (see licenses/LICENSE-MIT).
Любой сторонний разработчик вправе взять этот код в свой проект, включая полностью закрытый коммерческий продукт.
Зачем авторам отдавать ядро бесплатно?
Высокая сложность захвата экрана. Стабильная запись экрана на macOS через ScreenCaptureKit и на Windows с поддержкой аппаратного ускорения — тяжёлая низкоуровневая задача.
Помощь сторонних инженеров. Другие Rust-разработчики находят ошибки, присылают исправления, оптимизируют код и тестируют библиотеки на разном железе.
Узнаваемость. Cap становится базовым стандартом видеозахвата для всей экосистемы Rust.
Всё остальное в репозитории — веб-панель, шеринг записей, само десктопное приложение — распространяется под лицензией AGPLv3.
Главное требование 13-й статьи AGPLv3: если вы вносите изменения в программу и запускаете её как сетевую службу (SaaS) для сторонних пользователей, вы обязаны опубликовать полный исходный код своих доработок под той же лицензией.
Это закрывает типичную проблему открытых проектов:
Сторонний сервис или облачный берёт готовый код Cap.
Меняет логотип, подключает приём платежей и продаёт чужой софт как свой, не помогая развитию оригинала.
Под AGPLv3 такой конкурент обязан открыть исходный код своей платформы. Нарушение этого условия ведёт к судебному иску.
Кроме того, AGPLv3 работает как фильтр для крупных корпораций. Юридические отделы многих enterprise-компаний запрещают сотрудникам использовать продукты под AGPL, чтобы случайно не поставить под угрозу закрытую интеллектуальную собственность компании. Этот барьер подталкивает корпоративных заказчиков сразу покупать коммерческую подписку.
Самая любопытная деталь проекта связана с монетизацией десктопного клиента.
Если код доступен под AGPLv3, на каком основании с пользователей берут оплату за программу на рабочем компьютере?
Ответ содержится на странице коммерческого лицензирования Cap (cap.so/docs/commercial-license)

Официальная формулировка из документации:
"The Cap Desktop application you can download from our download page is free to use, but requires a commercial license to be used for commercial purposes...
This license does not apply to versions of the app you build yourself from our source code, only to binaries that we distribute."
В переводе на простой язык:
Если вы скачали готовый установочный пакет (.dmg для macOS или .exe для Windows) с официального сайта и используете его для рабочих задач (запись скринкастов для клиентов, созвоны, внутренние видео) — вы обязаны приобрести Desktop License за $29 в год (или за $58 разово).
Но если вы клонировали репозиторий с GitHub, установили компилятор Rust, настроили окружение и собрали бинарный файл самостоятельно через cargo build — вы пользуетесь программой бесплатно и легально.
Потому что ни одна компания не будет оплачивать рабочие часы штатного разработчика ради экономии $29 в год.
Самостоятельная сборка приложения и его поддержка требуют ощутимых усилий:
Нужно поставить и обновлять тулчейн Rust, Node.js, pnpm и сборочные зависимости Tauri.
На macOS возникает проблема цифровой подписи кода (Code Signing). Без платной учётной записи Apple Developer ($99 в год) и процедуры нотаризации система безопасности Gatekeeper блокирует запуск каждого нового билда.
Все обновления придётся пересобирать вручную после каждого выхода багфикса.
Час работы инженера стоит ощутимо дороже $29. Сотруднику гораздо проще оплатить лицензию корпоративной картой и списать её в отчёт о расходах.
Cap продаёт не закрытые алгоритмы, а удобство готового подписанного файла с регулярными автообновлениями. При этом каждый такой пользователь обходится авторам в $0 затрат на серверы, поскольку локальная запись и экспорт видео выполняются на компьютере пользователя.
Схема монетизации Cap разделена на понятные сегменты — от частных лиц до крупных компаний.
|
Тариф |
Стоимость |
Что именно покупает клиент |
Затраты на инфраструктуру для создателей |
|---|---|---|---|
|
Free |
$0 |
Полный редактор на компьютере, экспорт в 4K, облачные ссылки до 5 минут. Только некоммерческое использование. |
Минимальные (короткие ролики до 5 минут) |
|
Desktop License |
58 разово) |
Право запускать официальный дистрибутив на работе. Неограниченная локальная запись, до 20 ссылок в месяц. |
$0 (видео хранится и кодируется на клиенте) |
|
Cap Pro |
8.16/мес при оплате за год) |
Безлимитный облачный шеринг, свой домен ( |
Ощутимые (S3-хранилище, трафик, API нейросетей) |
|
Enterprise |
Цена Pro + модули (99/мес BAA) |
Корпоративные стандарты: единый вход SAML SSO, отчёты аудита SOC 2 Type II, ISO 27001, соглашение HIPAA BAA. |
Юристы, регулярный аудит безопасности, SLA |
В дополнение к тарифам работает Developer API (0.001 за минуту хранения видео в месяц для сервисов, встраивающих запись к себе).
В проприетарных программах проверки спрятаны в обфусцированном коде. В открытом проекте вся логика видна в исходниках.
Посмотрим, как авторы Cap ограничили длину бесплатных роликов пятью минутами.
В файле apps/web/app/api/desktop/[...route]/video.ts при загрузке ролика сервер проверяет статус аккаунта:
const user = c.get("user");
if (
createWithId &&
(!videoId || !/^[0-9abcdefghjkmnpqrstvwxyz]{15}$/.test(videoId))
) {
return c.json({ error: "invalid_video_id" }, { status: 400 });
}
// Проверяем, оформлена ли у пользователя платная подписка Pro
const isCapPro = userIsPro(user);
// Если подписки нет, а длина видео больше 5 минут (300 секунд) — возвращаем 403
if (!isCapPro && durationInSecs && durationInSecs > /* 5 min */ 5 * 60) {
return c.json({ error: "upgrade_required" }, { status: 403 });
}
В коде десктопного приложения (apps/desktop/src-tauri/src/upload.rs) клиент ловит этот ответ:
let status = response.status();
let body = response.text().await;
if let Some(error) = body
.as_ref()
.ok()
.and_then(|body| serde_json::from_str::<CreateErrorResponse>(body).ok())
&& status == StatusCode::FORBIDDEN
&& error.error == "upgrade_required"
{
// Открываем окно с предложением оформить платную подписку
return Err(AuthedApiError::UpgradeRequired);
}
Сложно ли это обойти?
Любой программист может за десять минут вырезать эту проверку в своём форке или направить клиент на собственный сервер.
Создатели Cap отдают себе в этом отчёт. Расчёт строится на простой закономерности: пользователь, готовый тратить вечер на правку чужого кода и поддержку сборки, всё равно никогда бы не оформил подписку. Деньги приносят те люди, которым нужно быстро отправить ролик клиенту и продолжить основную работу.
Cap даёт возможность поднять всю серверную инфраструктуру самостоятельно. В репозитории лежит готовый конфигурационный файл docker-compose.yml.
Казалось бы, если систему можно поднять бесплатно на своём сервере, зачем платить за облако?
Достаточно взглянуть на список компонентов для самостоятельного развёртывания:
Контейнер веб-приложения на Next.js.
СУБД MySQL.
Хранилище MinIO с настройкой постоянных дисковых томов.
Медиа-сервис с FFmpeg, создающий заметную нагрузку на процессор при кодировании видео.
Настройка обратного прокси (Nginx/Caddy) и выпуск SSL-сертификатов.
Регулярное резервное копирование данных.
Оплата собственных API-ключей для распознавания речи (Whisper) и генерации текстовых саммари через LLM.
При этом авторы прямо заявляют: техподдержка для самостоятельных установок не оказывается.
В результате возможность самостоятельного
Клиент спокоен: если компания закроется или резко взвинтит цены, данные не пропадут — их всегда можно поднять на собственном виртуальном сервере. Но на практике 95% пользователей не хотят тратить время на администрирование рекордера экрана за $8–12 в месяц. Им проще платить за готовое облако.
По точно такой же схеме работают Plausible Analytics, Ghost и Cal.com.
Вся коммуникация Cap нацелена на прямое сравнение с сервисом Loom, принадлежащим корпорации Atlassian.
Фактическое сравнение выглядит так:
Loom Business: стоит $18 за пользователя в месяц при помесячной оплате. Все внутренние записи компании хранятся исключительно на серверах Atlassian. Оффлайн-режима нет.
Cap Pro: стоит $8.16 за пользователя в месяц при оплате за год. Исходный код открыт, видеозаписи можно сохранять в собственное облачное хранилище S3 или Google Drive, десктопное приложение работает без подключения к сети, а для быстрого перехода есть встроенный инструмент переноса архива из Loom.
Cap не пытается продавать «новую парадигму асинхронных коммуникаций». Они формулируют предложение предельно понятно: «Мы делаем то же самое, что Loom, но в два раза дешевле, с открытым кодом и полным контролем над вашими данными».
Такая подача избавляет от необходимости долго объяснять аудитории пользу продукта: ценность инструмента понятна заранее, остаётся лишь показать выгоду по цене и контролю.
Если вы создаёте собственный продукт и планируете открыть код, вот практические приёмы, которые можно забрать из опыта Cap:
Разделение на домашнее и рабочее использование через лицензирование сборок. Вам не нужно писать сложные механизмы аппаратной защиты от копирования. Достаточно прописать в условиях: личное использование бесплатно, а использование готовой сборки в коммерческой деятельности требует оплаты $29 в год. Компании платят без споров, чтобы не рисковать нарушениями.
Публикация базовых компонентов под MIT, а самого сервиса — под AGPLv3. Если в вашем проекте есть сложная автономная часть (парсер, драйвер, движок захвата), отдайте её под MIT. Это даст поток контрибьюторов и внимание сообщества. Готовое приложение и серверную обвязку держите под AGPLv3 для защиты от копирования крупными игроками.
Ежегодная подписка вместо разовой пожизненной оплаты. Подписка за 58 даёт деньги один раз, но обязывает вас годами поддерживать пользователя и исправлять баги.
Спокойное отношение к открытому пейволлу. Не нужно бояться, что лимит времени или функционала зашит в открытый код. Платящие клиенты ценят своё время и не станут тратить часы на сборку форков.
Не все шаги Cap подходят для независимого разработчика без стартового капитала:
Обещание безлимитного дискового пространства. Cap предлагает тариф с неограниченным хранилищем. Хранение и раздача терабайтов 4K-видео требуют больших расходов на сетевой трафик. Стартап с венчурными инвестициями может позволить себе субсидировать эти затраты ради быстрого роста, но разработчика-одиночку это быстро уведёт в минус. Для небольшого проекта безопаснее брать деньги за реальный объём хранилища или давать пользователям подключать свои бакеты S3.
Прохождение сертификаций безопасности (SOC 2, ISO 27001, HIPAA). Это дорогостоящий процесс: оплата услуг аудиторов, пентесты, внедрение платформ мониторинга и составление сотен страниц регламентов. Одиночному разработчику браться за это бессмысленно, пока нет подтверждённых контрактов с крупными клиентами на крупные суммы.
Сложные корпоративные продажи. Личные созвоны, заполнение опросников отделов безопасности и согласование индивидуальных договоров отнимают всё рабочее время и не оставляют ресурсов на само написание кода.
Опыт Cap показывает, как устроен прагматичный Open Core:
Открытый репозиторий приносит проекту более 22 000 звёзд на GitHub, доверие разработчиков и естественный поток пользователей.
Лицензия AGPLv3 гарантирует, что сторонние сервисы не смогут перепродавать продукт под своим брендом без раскрытия кода.
Коммерческая лицензия на готовый бинарный файл ($29) обеспечивает монетизацию корпоративного сегмента без серверных затрат.
Облачный тариф ($12 в месяц) избавляет пользователей от необходимости тратить время на администрирование собственной серверной инфраструктуры.
Это взвешенная модель, которая позволяет проекту развиваться и зарабатывать деньги, не прибегая к скандальным сменам лицензий.
Автор: romankurnovskii
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/open-source/458919
Ссылки в тексте:
[1] Cap: https://cap.so
[2] CapSoftware/Cap: https://github.com/CapSoftware/Cap
[3] FFmpeg: https://github.com/ffmpeg/ffmpeg
[4] хостинг: https://www.reg.ru/?rlink=reflink-717
[5] Источник: https://habr.com/ru/articles/1087520/?utm_source=habrahabr&utm_medium=rss&utm_campaign=1087520
Нажмите здесь для печати.