Покупка и установка: разовая цена → ссылка на установку
Коротко
Модель монетизации — один разовый платёж без подписок: базовый движок 4 900 ₽ навсегда, модули по 1 900 ₽; каталог, сборка и превью бесплатны. Оплата картой через ЮKassa: после подтверждения платежа система сама выпускает персональную ссылку установки /install/<token> с пакетом под ваш инструмент (Claude Code, Cursor или AGENTS.md), README и промтом-установщиком. Вебхукам ЮKassa не доверяют на слово — статус перепроверяется запросом к API, обработка идемпотентна, поэтому двойной обработки или двух токенов не бывает. Лицензия считается по местам установки; купленная версия остаётся вашей навсегда — новое ядро выходит отдельным продуктом, а не «обновлением по подписке».
Что это. Модель монетизации простая и без подписок: один разовый платёж за один движок. Никаких кредитов, кошельков и абонплаты. Смотреть каталог, собирать/выбирать движок и листать превью — бесплатно; платите только за ДОСТАВКУ устанавливаемого пакета.
Зачем так. Конфиги — это commodity, их не стыдно показать. Ценность — в собранной дисциплине движка вайб-кодинга (команда ролей + вето-ревью + процесс + установщик); модули расширяют движок и покупаются так же — разовым платежом. Купленная версия — ваша навсегда; новая версия ядра выходит отдельным продуктом, а не «обновлением по подписке». Поэтому paywall стоит на границе доставки, а не на роутах: без оплаты вы видите redacted-превью, но не полную спеку и не пакет.
Сколько стоит. Цена видна прямо на карточке движка ещё до покупки: базовый движок — 4 900 ₽ разовым платежом и навсегда ваш, модули — по 1 900 ₽. Оплатили банковской картой через ЮKassa — и персональная ссылка установки у вас.
Worked-пример: от кнопки «Купить» до рабочего движка
Вход: вы собрали свой движок вайб-кодинга на базе Quest и жмёте «Купить».
Что делает движок (бэкенд):
createOrderв одной транзакции: проверяет, что org покупателя владеет движком (multi-tenant guard), фиксирует приведшего партнёра (если есть), создаёт заказstatus: pending, создаёт платёж в ЮKassa (идемпотентность по id заказа, redirect-подтверждение) и записываетpayment_url.- Вы оплачиваете банковской картой на защищённой странице ЮKassa.
- ЮKassa шлёт webhook. Телу уведомления не доверяем: статус перепроверяется авторитетным запросом к API ЮKassa (fail-closed — поддельный webhook бесполезен). Обработка идемпотентна: повтор уведомления просто подтверждается без повторной обработки; флип
pending → paid— это CAS по id заказа и статусу, поэтому гонка двух webhook'ов не выпустит два токена. - Как только платёж подтверждён, система сразу выпускает вашу персональную ссылку установки — ничего активировать вручную не нужно.
- Если заказ был приведён партнёром — атомарно и идемпотентно начисляется комиссия (см. статью про партнёрку).
Результат: ссылка на установку /install/<token> — посадочная страница с пакетом под ваш инструмент (Claude Code / Cursor / AGENTS.md), README, INSTALL.md и готовым промтом-установщиком.
Установка считается по местам (seat-counted лицензия)
Доставка — не «скачал раз и всё», а честная посчитанная лицензия. Токен в ссылке — это bearer, а отпечаток машины (machineFp) идентифицирует место:
POST /:token/materialize {machineFp}— РЕЗЕРВИРУЕТ место (не считается в лимит; резерв авто-освобождается через 15 минут, чтобы брошенная установка не сжигала слот) и выдаёт подписанный download-handle.GET /:token/download?h=...— стримит zip и СЧИТАЕТ доставку только ПОСЛЕ полной отправки (проверенная доставка = ENFORCED счётчик; оборванная — не считается).POST /confirm— HMAC-маячок «поставил/активировал». Он ADVISORY: подтверждает факт, но НИКОГДА не увеличивает лимит и не освобождает место.
Превышение лимита мест → 403 INSTALL_LIMIT. Страница установки всегда проверяет order.status = 'paid' — до оплаты не отдаётся ничего.
Покупка — ваша навсегда
Пакет лежит у вас на диске в открытом виде, работает оффлайн и не зависит от наших серверов: купленная версия остаётся с вами. Если оформите возврат, ссылка на установку просто перестанет действовать. Вопрос по оплате или возврату? Напишите в поддержку — разберёмся по-человечески.