Стратегия фичей Nukl
1. Feature Gap Analysis
Фичи, которые есть у конкурентов, но отсутствуют в Nukl:
| Фича | У кого есть | Описание | Важность |
|---|---|---|---|
| Создание матча пользователем | Footy Addicts, Plei, Ballers, Playtomic, Meetup | Пользователь сам создаёт и организует игру | Критическая |
| Бронирование площадок | Footy Addicts, Plei, Playtomic, Playfoot, OpenSport | Marketplace для аренды полей с онлайн-оплатой | Критическая |
| Онлайн-оплата/сбор денег | Footy Addicts, Spond, TeamSnap, Playtomic | Оплата за участие, сбор взносов через платформу | Высокая |
| Внутриигровой чат | Spond, Heja, TeamSnap, SportBuddy | Групповой чат команды/матча | Высокая |
| Рейтинговая система (ELO) | Footy Addicts, Plei, Playtomic, Ballers | Числовой рейтинг игрока на основе результатов и оценок | Высокая |
| Лидерборды | Ballers, Playtomic, Footy Addicts | Таблицы лидеров по городу, площадке, общие | Средняя |
| Автобалансировка команд | Footy Addicts, Plei | Автоматическое деление на команды по рейтингу | Средняя |
| Статистика игрока (детальная) | TeamSnap, Playtomic, Strava | Голы, ассисты, матчи, win rate, тепловые карты | Средняя |
| Турниры и лиги | TeamSnap, Playtomic, GoalAlert | Организация cup/league форматов между командами | Средняя |
| Фото-галерея матча | Spond, Heja | Загрузка и просмотр фото/видео с игры | Средняя |
| Интеграция с календарём | Spond, Heja, TeamSnap | Экспорт матчей в Google/Apple Calendar | Низкая-Средняя |
| Карта площадок/игр поблизости | Pickup Soccer, Footy Addicts, SportBuddy | Интерактивная карта с играми и полями | Средняя |
| Real-time check-in | Hoop Maps (баскетбол) | Отметка "я на площадке" для спонтанных игр | Низкая |
| Погодная интеграция | Volleyball apps | Автоуведомления о переносе из-за погоды | Низкая |
| Интеграция с wearables | Strava, Catapult consumer | Данные с Apple Watch/GPS-трекеров | Низкая |
| Web-версия | Spond, TeamSnap, Meetup | Доступ через браузер для организаторов | Низкая-Средняя |
2. Оценка потенциальных фичей (RICE Scoring)
| # | Фича | Reach (1-10) | Impact (1-10) | Confidence (1-10) | Effort (недели) | RICE Score |
|---|---|---|---|---|---|---|
| 1 | Создание матча (Create Match) | 10 | 10 | 10 | 4 | 250 |
| 2 | Внутриигровой чат (матч/команда) | 9 | 8 | 9 | 5 | 130 |
| 3 | Онлайн-оплата за участие | 8 | 9 | 7 | 6 | 84 |
| 4 | Рейтинговая система (ELO) | 8 | 8 | 8 | 4 | 128 |
| 5 | Лидерборды (город, площадка, глобал) | 7 | 7 | 9 | 2 | 221 |
| 6 | Детальная статистика игрока | 7 | 7 | 8 | 3 | 131 |
| 7 | Карта площадок и матчей | 8 | 6 | 8 | 3 | 128 |
| 8 | Автобалансировка команд | 6 | 8 | 7 | 3 | 112 |
| 9 | Аналитика + Crash Reporting | 10 | 7 | 10 | 1 | 700 |
| 10 | Бронирование площадок (marketplace) | 7 | 9 | 5 | 10 | 32 |
| 11 | Фото-галерея матча | 6 | 5 | 8 | 3 | 80 |
| 12 | Интеграция с календарём | 5 | 4 | 9 | 1 | 180 |
| 13 | Streak-система (серии игр) | 7 | 6 | 7 | 1.5 | 196 |
| 14 | Достижения и бейджи | 6 | 5 | 7 | 2 | 105 |
| 15 | Турниры/Cup-формат | 5 | 7 | 5 | 8 | 22 |
| 16 | Offline-режим (кеширование) | 6 | 5 | 8 | 3 | 80 |
| 17 | CI/CD pipeline | 10 | 6 | 10 | 1.5 | 400 |
| 18 | Погодная интеграция | 5 | 4 | 8 | 1 | 160 |
| 19 | Система повторяющихся матчей | 7 | 7 | 8 | 2 | 196 |
| 20 | Invite-ссылки (deep links) | 8 | 7 | 9 | 2 | 252 |
| 21 | Web-версия для организаторов | 4 | 5 | 6 | 8 | 15 |
| 22 | Wearables-интеграция | 3 | 4 | 4 | 6 | 8 |
Топ-5 по RICE:
- Аналитика + Crash Reporting (700)
- CI/CD pipeline (400)
- Invite-ссылки / deep links (252)
- Создание матча (250)
- Лидерборды (221)
3. Killer Features — уникальные фичи для конкурентного преимущества
3.1 "Match Replay" — AI-генерация текстового отчёта о матче
После завершения матча, на основе данных King of the Match голосования, рейтингов и состава команд, генерируется короткий "репортаж" в стиле спортивных новостей: "Команда A обыграла Команду B 5:3 на Арене Центральная. Король матча — Иван С., набравший 7 из 10 голосов." Это превращает каждую любительскую игру в событие. Ни у одного конкурента такого нет.
3.2 "Smart Lineup" — AI-балансировка с учётом истории
Автоматическое формирование двух равных команд не просто по рейтингу, а с учётом: (а) истории совместных игр (кто с кем уже играл), (б) предпочтительных позиций, (в) win rate в конкретных комбинациях. Это решает главную боль pickup-футбола: "одна команда всегда сильнее".
3.3 "Formation DNA" — уникальный визуальный профиль игрока
У Nukl уже есть уникальная фича — интерактивное поле с формациями 5x5..11x11. Развитие: для каждого игрока генерируется "Formation DNA" — тепловая карта на основе его исторических позиций. Визуально красивая и шерабельная карточка, которую можно расшарить в соцсетях. Это становится визитной карточкой приложения.
3.4 "Rivalry Mode" — система соперничества
Автоматическое отслеживание пар игроков, которые часто оказываются в разных командах. Приложение выделяет "соперничества": "Ты и Алексей сыграли 12 раз друг против друга, твой win rate 58%." Элемент персонализации, который создаёт эмоциональную привязку и стимулирует возвращаться. Ни один конкурент не работает на уровне межличностных историй.
3.5 "Instant Match" — матч в один тап
Функция "Quick Match": нажимаешь одну кнопку, указываешь время (сейчас / через час / вечером) — приложение автоматически находит ближайшую свободную площадку, создаёт матч и рассылает приглашения ближайшим игрокам с подходящим рейтингом. Максимальное снижение friction: от желания сыграть до организованного матча за 30 секунд.
4. Улучшение существующих фичей
4.1 Матчи (ядро продукта)
| Улучшение | Текущее состояние | Что сделать | Эффект |
|---|---|---|---|
| Пагинация списка матчей | Загрузка всех матчей разом | Cursor-based пагинация + pull-to-refresh | Производительность при росте |
| Формат даты по локали | Захардкожен en_US | Использовать Intl.defaultLocale | Корректное отображение для RU/ES/FR |
| Placeholder изображение | Внешний URL (dhresource.com) | Перенести в assets или Supabase Storage | Надёжность |
| King of the Match DELETE policy | RLS policy отсутствует | Добавить DELETE policy для собственных голосов | Функциональность отмены голоса |
| King of the Match визуализация | Голоса собираются, но нигде не отображаются агрегировано | Добавить "Hall of Fame" экран, профиль "Король матча N раз" | Геймификация, retention |
4.2 Профиль и социальные функции
| Улучшение | Текущее состояние | Что сделать | Эффект |
|---|---|---|---|
| Пагинация друзей | Загрузка всех разом | Добавить пагинацию | Производительность |
| Валидация имени | Только regex на латиницу | Добавить min/max длину, поддержку кириллицы для RU | UX для русскоязычных |
| Расширенный профиль | Только имя, позиция, город, кол-во матчей | Добавить: win rate, средний рейтинг, кол-во "Король матча", любимая площадка | Вовлечённость |
4.3 Уведомления
| Улучшение | Текущее состояние | Что сделать | Эффект |
|---|---|---|---|
| Подсчёт непрочитанных | SELECT id + count на клиенте | count: 'exact', head: true на сервере | Производительность |
| Настройки уведомлений | Таблица без миграции | Добавить миграцию + UI для настройки категорий | Деплоймент + UX |
4.4 Инфраструктура
| Улучшение | Текущее состояние | Что сделать | Эффект |
|---|---|---|---|
| .env в assets | Потенциальная утечка ключей | Перенести в dart-define или --dart-define-from-file | Безопасность |
| go_router | Подключён, не используется | Удалить или мигрировать навигацию | Размер бандла, чистота |
| Схема БД | 3 таблицы без миграций | Создать миграции для friendships, notification_preferences, news_translations | Деплоймент |
5. Приоритизированный Roadmap
Phase 1: 0-3 месяца (Must-have / Critical)
| # | Фича | Effort | Expected Impact | Зависимости |
|---|---|---|---|---|
| 1 | Аналитика + Crash Reporting (Firebase Analytics + Crashlytics или Sentry) | 1 неделя | Возможность понимать поведение пользователей, ловить ошибки. Без этого вы слепы. | Нет |
| 2 | CI/CD pipeline (GitHub Actions + Fastlane/Codemagic) | 1.5 недели | Автоматизация сборки и деплоя, снижение человеческих ошибок | Нет |
| 3 | Создание матча (Create Match) — полный flow: выбор площадки, время, формат, правила, публикация | 4 недели | Разблокирует органический рост. Без этого пользователи зависят от администратора. Главный блокер продукта. | Нет |
| 4 | Invite-ссылки / Deep Links — делись матчем через ссылку, приглашай друзей | 2 недели | Виральность, привлечение новых пользователей. Снижает CAC. | Create Match |
| 5 | Чат матча — групповой чат для участников матча (Supabase Realtime) | 5 недель | Удержание внутри приложения, замена WhatsApp-групп | Create Match |
| 6 | Закрытие техдолга Phase 1: .env из assets, миграции 3 таблиц, fix даты по локали, удаление go_router, fix King of Match DELETE policy, fix refreshUnreadCount | 2 недели | Безопасность, надёжность, корректность | Нет |
Итого Phase 1: ~15.5 недель (4 месяца с буфером)
Phase 2: 3-6 месяцев (Should-have / Growth)
| # | Фича | Effort | Expected Impact | Зависимости |
|---|---|---|---|---|
| 7 | Рейтинговая система (ELO/TrueSkill) — автоматический расчёт рейтинга по результатам | 4 недели | Качественный матчмейкинг, мотивация, доверие к системе | King of Match + статистика матчей |
| 8 | Лидерборды — топ игроков по городу, площадке, глобальный | 2 недели | Геймификация, возвращаемость, соревновательный дух | Рейтинговая система |
| 9 | Детальная статистика игрока — расширенный профиль с графиками, win rate, история | 3 недели | Глубина продукта, "причина вернуться" | Рейтинговая система |
| 10 | Streak-система — серии последовательных игр ("играл 5 недель подряд"), push-напоминания | 1.5 недели | Retention, привычка, аналог Duolingo streak | Аналитика |
| 11 | Система повторяющихся матчей — "каждый вторник в 20:00 на этом поле" | 2 недели | Удобство для регулярных групп, снижение friction | Create Match |
| 12 | Карта площадок и матчей — интерактивная карта с фильтрами | 3 недели | Discovery, визуальный поиск, wow-эффект | PostGIS (уже есть) |
| 13 | Автобалансировка команд (Smart Lineup) — AI-деление по рейтингу и истории | 3 недели | Справедливые команды, уникальная фича | Рейтинговая система |
| 14 | Онлайн-оплата (Stripe) — сбор денег за участие через приложение | 6 недель | Монетизация, удобство для организаторов. price_cents уже в схеме. | Create Match |
Итого Phase 2: ~24.5 недели
Phase 3: 6-12 месяцев (Nice-to-have / Scale)
| # | Фича | Effort | Expected Impact | Зависимости |
|---|---|---|---|---|
| 15 | Formation DNA — визуальный профиль игрока на основе исторических позиций | 2 недели | Уникальность, шеринг в соцсетях, виральность | Статистика игрока |
| 16 | Match Replay — AI-генерация текстового отчёта о матче | 2 недели | WOW-фактор, контент для ленты, уникальность | Статистика |
| 17 | Rivalry Mode — автотрекинг соперничеств между игроками | 3 недели | Эмоциональная привязка, персонализация | Рейтинг + статистика |
| 18 | Фото-галерея матча — загрузка фото, привязка к матчу | 3 недели | Социальный элемент, контент | Supabase Storage |
| 19 | Турниры / Cup-формат — bracket, таблицы, плей-офф между pickup-группами | 8 недель | Расширение на организованный спорт | Create Match + рейтинг |
| 20 | Бронирование площадок (marketplace) — партнёрства с полями, онлайн-бронь | 10 недель | Основной revenue stream, аналог Playtomic | Оплата + карта |
| 21 | Instant Match — матч в один тап с автоподбором | 4 недели | Снижение friction до минимума, уникальность | Create Match + рейтинг + карта |
| 22 | Интеграция с wearables — Apple Watch, HealthKit, GPS-трекеры | 6 недель | "Quantified athlete", дифференциация | Статистика |
| 23 | Web-версия для организаторов — Flutter Web dashboard | 8 недель | B2B-сегмент, удобство для лиг | Зрелая мобильная версия |
6. Антифичи — что НЕ стоит делать
| Антифича | Почему кажется привлекательной | Почему НЕ стоит делать сейчас |
|---|---|---|
| Мультиспорт (баскетбол, волейбол, теннис) | Расширяет TAM, аналог SportBuddy | Размывает фокус. Nukl силён визуализацией формаций — это уникально для футбола. Мультиспорт требует совершенно другого UX для каждого вида. Сначала — доминирование в нише. |
| Встроенный видеоредактор / highlights | Тренд на AI-видео (Veo, HomeCourt) | Огромная сложность (компьютерное зрение, хранение видео), требует камеру на поле. ROI неопределён. Лучше интегрироваться с существующими решениями (Veo API) позже. |
| NFT / крипто-бейджи | Buzzword, "Web3-геймификация" | Отпугнёт mainstream-аудиторию, усложнит онбординг, юридические риски. Обычные бейджи работают не хуже. |
| Собственная соцсеть / Stories | Удержание пользователей "внутри" | Конкуренция с Instagram/TikTok бессмысленна. Лучше интеграция для шеринга (Formation DNA card, Match Replay). |
| AR-функции (расстановка на реальном поле через камеру) | WOW-эффект на презентациях | Низкий реальный use case, высокая сложность разработки, зависимость от устройства. Гаджет, а не продукт. |
| Полноценная B2B CRM для площадок | Бронирование площадок = главный revenue stream | Это отдельный продукт (аналог Playtomic Club). Строить до достижения 50K+ MAU — преждевременная оптимизация монетизации. |
| Собственный платёжный процессинг | Меньше комиссий, чем у Stripe | Лицензирование, PCI DSS compliance, поддержка — это целая компания. Stripe/RevenueCat решают задачу. |
Резюме
Nukl обладает сильным техническим фундаментом (Supabase triggers, PostGIS, FCM v1, 4-язычная локализация) и уникальной визуализацией формаций, но критически заблокирован отсутствием функции создания матча — без неё пользователи не могут самостоятельно организовывать игры, что делает органический рост невозможным. Первый приоритет — "разблокировать" продукт: Create Match + аналитика + CI/CD + invite-ссылки + чат за 3-4 месяца. Второй этап должен быть посвящён геймификации (рейтинг, лидерборды, streaks), которая по данным конкурентов повышает retention на 30-40%. Уникальные killer-фичи Nukl (Formation DNA, Smart Lineup, Match Replay, Rivalry Mode) могут стать сильными дифференциаторами, но только после закрытия базового gap с конкурентами. Монетизация через онлайн-оплату (Stripe) и позже marketplace площадок логично встраивается в Phase 2-3, при этом price_cents уже заложен в схему БД. Критически важно не распылять ресурсы на мультиспорт, видео или собственную соцсеть — фокус на футбольной нише с глубокой геймификацией и низким friction (Instant Match) даст наибольший конкурентный эффект на фрагментированном рынке.