# Wishpad: monetization specification ## 1. Цель документа Документ фиксирует идеи монетизации Wishpad на будущее. Монетизация не входит в MVP. MVP должен быть спроектирован так, чтобы платные ограничения и donation-модель можно было добавить позже без переписывания базовой архитектуры. Главный принцип: - не монетизировать гостя напрямую; - не мешать открытию публичной ссылки; - не усложнять бронирование подарка; - деньги брать за расширенные возможности владельца списка или за добровольную поддержку проекта. ## 2. Базовая Модель Основная модель на будущее: freemium. Тарифы: - `free`; - `plus`. В MVP оплаты нет, но в коде желательно не зашивать лимиты жёстко в бизнес-логику. Лимиты должны быть вынесены в конфигурацию или application settings, чтобы позже администратор мог включить платную модель отдельной настройкой. ## 3. Admin-Настройка Платных Возможностей Платные фичи должны включаться администратором через глобальную настройку. Рекомендуемая future-настройка: - `monetization_enabled`; Когда `monetization_enabled = false`: - приложение работает как бесплатный продукт; - пользователи не видят paywall; - ограничения plus/free не мешают обычному использованию; - админка может показывать настройки монетизации как disabled/future section. Когда `monetization_enabled = true`: - backend применяет лимиты free/plus; - frontend показывает состояние тарифа владельца; - owner UI показывает upgrade prompt только в местах, где пользователь упёрся в платное ограничение; - public guest UI не показывает paywall. ## 4. Первые Платные Фичи ### 4.1. Количество Списков Free: - до 5 активных wishlists. Plus: - максимальное допустимое количество wishlists по системному лимиту. Текущий системный лимит: - один пользователь может иметь не более 256 wishlists. Правило: - free limit применяется к активным спискам; - деактивированные списки не должны блокировать создание нового активного списка, если продуктово решим считать только active wishlists; - hard limit `256` остаётся защитным системным ограничением для всех тарифов. ### 4.2. Кастомизация Списков Free: - кастомизация публичной страницы wishlist недоступна; - используется системный внешний вид Wishpad. Plus: - владелец может кастомизировать публичную страницу wishlist. Возможные настройки кастомизации: - цветовой акцент списка; - обложка/фон списка; - тема оформления; - декоративный preset под событие; - скрытие или уменьшение брендинга Wishpad в будущем. Для первой версии plus достаточно минимальной кастомизации: - accent color; - optional cover image после появления upload/S3; - theme preset. ### 4.3. Публичный Slug Free: - используется системный публичный slug/token; - пользователь не вводит свой slug. Plus: - владелец может ввести custom public slug. Пример: - free: `https://wishpad.me/wishlist/7Nf8x...`; - plus: `https://wishpad.me/wishlist/anna-birthday`. Правила для custom slug: - slug уникален; - slug не должен совпадать с reserved routes; - slug должен быть нормализован; - slug должен быть безопасен для URL; - смена slug не должна раскрывать статусы бронирования владельцу; - старый системный token можно сохранить как внутренний stable identifier, даже если публичный URL использует custom slug. Рекомендация: - не заменять `public_token` полностью; - добавить отдельное поле `public_slug` в будущем; - публичный resolver должен уметь находить wishlist по `public_slug` или `public_token`. ## 5. Модель "Поддержать Проект" Отдельная мягкая модель монетизации: добровольная поддержка проекта. Цель: - дать пользователям возможность поддержать Wishpad без подписки; - не блокировать функции; - не создавать давления на владельцев и гостей. Возможные варианты: - one-time donation; - monthly supporter; - yearly supporter; - early supporter badge в owner UI; - страница `Поддержать проект`; - ссылка в owner settings; - ненавязчивый пункт в footer/menu. Правила UX: - не показывать donation prompt гостям во время бронирования; - не показывать modal paywall; - не мешать созданию или просмотру wishlist; - текст должен быть спокойным и честным; - donation не должна обещать функций, если это именно поддержка, а не тариф. Пример текста: > Wishpad можно использовать бесплатно. Если проект оказался полезен, вы можете поддержать его развитие. ## 6. Что Не Делаем На Старте Не рекомендуется для ранней версии: - реклама на публичных wishlist pages; - обязательная оплата для гостей; - paywall перед бронированием; - агрессивные upgrade prompts; - скрытая подмена ссылок на affiliate без явного уведомления; - продажа данных пользователей или гостей. ## 7. Future Monetization Ideas Дополнительные идеи на будущее: - affiliate/referral links для маркетплейсов; - загрузка изображений в S3-compatible storage как часть plus; - несколько изображений на подарок; - расширенные email/push notifications; - красивые шаблоны под события; - B2B/workspace для команд и корпоративных подарков; - кастомный домен для публичных страниц; - экспорт списка; - приоритеты, категории и расширенная организация подарков. Эти идеи не входят в первые платные фичи и должны рассматриваться отдельно после MVP.