Скачать Markdown Скачать TXT

SHARENTA — продуктовый аудит и дорожная карта

Дата: 23 сентября 2026
Основание: код репозитория (веб: Next.js App Router, контур applyContourAction, Android Compose-клиент того же /api/contour).
Не проверялось в браузере в этом аудите. Часть сценариев (вход, каталог, сделка) подтверждалась ранее на локальном пилоте; текущий документ не считает UI «готовым» только по названию экрана.

Главная функция продукта: соединять арендодателя и арендатора, помочь найти вещь, договориться и вернуться за следующей арендой. Ориентир механики — BlaBlaCar: нашёл предложение → связался → организовал сделку в интерфейсе. SHARENTA при этом остаётся площадкой аренды вещей, а не поездок.

Платежи, SMS, внешний KYC и УКЭП не подключены — это честно отражено в UI (SettlementNotice, копирайт KYC). Этот план не предлагает подключать провайдеров, пока владелец продукта явно не решит иначе.


1. Краткое описание текущего продукта

SHARENTA — рабочий городской пилот: публичный каталог, карта OSM, карточка юнита, заявка на даты, чат сторон, цепочка сделки (заявка → документы → подписи → фото выдачи → аренда → фото возврата → отзыв), кабинет с двумя рейками CRM, модерация объявлений и ручной KYC.

Слоган в шапке: «Найди. Возьми. Верни.»

Что уже является настоящим контуром, а не макетом:

Что выглядит как продукт, но не является законченной пользовательской ценностью: тарифы PRO/MAX, реферальные выплаты, каналы push/email/telegram, «просмотры» в аналитике, сортировка «по расстоянию», процент ответов владельца, Android-цифры рефералки.


2. Фактический статус существующих функций

Легенда статуса:

МеткаЗначение
РаботаетЕсть UI + реальное действие в контуре / API
ЧастичноЕсть каркас, но не закрывает сценарий
Маркетинг / заглушкаЭкран или копирайт без соответствующей логики
НетВ коде не найдено

2.1. Обнаружение

ФункцияСтатусЧто может пользовательЧего нет / проблема
Главная лента /РаботаетКатегории, карточки, «ещё», пустой городНет сортировки на самой главной; состояние фильтров общее с поиском
Поиск /searchРаботаетЗапрос, AI-разбор фразы, фильтры, «свободен на выходные»Пустой результат только «измените формулировку», без соседних городов и подписки
Категории /categoriesРаботает10 категорий, лента категорииПодкатегории транспорта ведут в /search без фильтра
Карта /mapРаботаетПины Leaflet, карточка снизу, диплинк ?id=Нет геолокации пользователя, радиуса, фильтров на карте; лимит 120
ФильтрыРаботаетКатегория, цена/день, рейтинг, доступность, «проверенные», даты, все города / город шапки, сортНет бренда/модели как отдельных контролов (они есть в полнотексте); «по расстоянию» сортирует зашитый distanceKm, не GPS
Карточка /listings/[id]РаботаетФото, цена, залог, вкладки обзор/хар-ки/календарь/условия/отзывы, избранное, шаринг ссылки, AI по юниту, броньНет блока «похожие»; бренд/модель не как отдельные поля UI; просмотры не пишутся
Профиль владельца /users/[id]РаботаетБио, звёзды из отзывов, активные объявления, «написать»responseRate — сидовое число, не считается по чатам; нет подписки на владельца
Избранное /favoritesРаботаетСердце на карточке и PDP, гостевой список + claimGuestFavoritesНет в нижней навигации, только кабинет
Недавно просмотренныеНет—Поле listing.views есть, инкремента при открытии нет
Похожие / рекомендацииНет как продуктAI-текст «рядом ещё N похожих»Нет карусели и фида
Сохранённый поискНет—Есть только watchCity из пустого города
Подписка на появление в городеРаботаетКнопка в CityEmptyState; при createListing уходит in-app noticeНет управления подписками вне пустого экрана; нет query-алертов

2.2. Аккаунт и создание предложения

ФункцияСтатусЧто может пользовательЧего нет / проблема
Регистрация / вход /loginРаботаетЛогин (почта или имя) + пароль, сессия cookie/BearerНет OAuth, сброса пароля по почте (копирайт честный)
Онбординг /welcomeРаботаетЯзык, слайды, роль, гостьAndroid стартует с ленты/демо, без этого потока
Создание /landlord/createРаботает5 шагов: тип → фото → AI → цена/город → выдача → модерацияНет календаря доступности; координаты всегда 55.752, 37.591 (Арбат); район по умолчанию «Арбат»; новые объявления помечаются verified: true в publishDraft без проверки
Редактирование /cabinet/listings/[id]РаботаетНазвание, описание, цена, залог, фото, выдача, пауза, клик по дням календаряНет смены точки на карте; отклонённое нельзя явно «отправить снова на модерацию» отдельным статусом (правка есть, статус сам не едет в moderation)
Календарь доступностиРаботаетPDP, бронь, редактирование, /cabinet/calendarВ создании объявления отсутствует; кабинетный календарь подсвечивает только start/end, не весь период

2.3. Сделка и общение

ФункцияСтатусЧто может пользовательЧего нет / проблема
Заявка /book/[id]РаботаетДаты + время получения/возврата, сообщение, итог = дни × pricePerDayГость выбирает даты, отправка после входа; KYC verified обязателен; своё объявление нельзя; сообщение заявки не копируется в чат
Подтверждение / отказРаботаетВладелец: подтвердить → статус брони documents + пакет документов; отклонить → rejectedНет встречного предложения и других дат; отказ терминальный
Instant bookНет—Всегда requested → действие владельца
Чат /messagesРаботаетТекст, фото, системные статусы, привязка к listing, непрочитанныеВопрос до заявки спрятан в иконке на карточке владельца; нет быстрых ответов
Кабинеты /cabinet, /landlordРаботаетЕдиный аккаунт, переключатель роли, CRM две рейки, список бронейДубли экранов (кабинет / landlord / CRM / finance / analytics)
Выдача / возвратРаботаетФото + чеки; без них нельзя active / completedМесто и время передачи — свободный pickupNote, без точки на карте и подтверждения слота
ДокументыРаботаетГенерация при подтверждении, просмотр, подпись флагом в приложенииНе УКЭП; два хранилища (documents и dealDocuments)
ОтзывыРаботаетПосле completed, один на автора/бронь, ответ владельцаНе обязательны; нет «забронировать снова» с карточки отзыва
ДоставкаЧастичноEnum meetup / pickup / delivery + заметкаНет логистики, адреса, стоимости доставки

Цепочка статусов брони (код):
requested → documents (кнопка «Подтвердить») → signed → active → completed, либо rejected / cancelled / expired / noshow / unreturned.
Статус confirmed в типах есть, в живом пути почти не сохраняется.

2.4. Возврат, рост, админка, Android

ФункцияСтатусЧто может пользовательЧего нет / проблема
История арендРаботает/bookings, CRMНет CTA повторной заявки с теми же датами/юнитом
УведомленияЧастичноIn-app список, бейдж, mark all readКаналы push/email пишутся в аудит сделки, доставки нет; время всегда «только что»
МодерацияРаботаетАдмин approve/reject, опциональный AI-hint—
KYCЧастичноЗаметка ≥20 символов → админ вручнуюБез админа новая регистрация не бронирует; OCR нет (копирайт честный)
ТикетыЧастичноСоздать, админ меняет статусНет переписки по тикету; «чат поддержки» ведёт в обычные /messages
ЖалобыРаботает/security/report создаёт тикет; блок пользователя—
Буст /servicesЧастичноПокупка пишет purchases + boostedUntil, влияет на сортНет оплаты; «+40% просмотров» — маркетинговая строка
PRO / MAXМаркетингЧек покупкиНет entitlements, кабинет компаний / филиалов / сотрудников отсутствует
Рефералка /referral, /r/[code]ЧастичноКод запоминается при регистрации; статистика 10% от покупок услуг, не арендыВыводов денег нет; Android показывает зашитые 12 / 8 / 4250 ₽
AIЧастичноПоиск, ассистент каталога, разбор фото, цена, брифинг сделки, модерацияБез AI_API_KEY — mock; не выдумывает объявления (это правильно)
Аналитика владельцаЧастичноСделки, избранное, отзывы из контураviews не считаются; «спрос» как отдельный продукт нет
Мультиединицы / почасовая / комплектыНетМодель: 1 listing = 1 юнит, цена за суткиНе предлагать, пока суточная модель не стабильна
AndroidЧастичноЛента, поиск, карта OSM, карточка, бронь, чат, кабинет, объявление, админ KYC/модерация/тикеты, ассистентНет CRM/finance/welcome; рефералка фейковая; city watch не виден

Дубли, которые не надо плодить вторым контуром: избранное vs listing.favorites (счётчик); кабинет vs /landlord; буст «в ленте» и «в поиске» (один флаг); документы сделки vs legacy documents; чат с карточки, из брони и из профиля.


3. Сценарий A. Арендатор

ШагСейчасУлучшитьНе хватает
1. Открывает SHARENTAОнбординг / гость / лента «Рядом с вами»; город в шапкеГородской пилот на Vercel без Postgres эфемерен (не тема этого плана, но влияет на доверие)—
2. Категория или поискГлавная, /search, /categories, шапкаОбщее состояние query/filters путает при переходахПодкатегории транспорта не фильтруют
3. Место и периодГород шапки; даты в фильтрах и «выходные»; карта отдельноДаты спрятаны в панели фильтров, не на первом экране поискаЖивой радиус / «рядом со мной»; сорт «по расстоянию» врёт
4. Сравнивает выдачуКарточки, цена, бейджи, нагрузка, рейтинг из отзывовНельзя открыть два юнита рядомНет сравнения, похожих, recently viewed
5. КарточкаПолная PDPCTA «Забронировать» сильнее, чем «спросить»Похожие внизу
6. Цена, условия, фото, владелецЕсть; владелец кликабелен; календарь вкладкойdistanceKm и район у новых объявлений фиктивныеЧестный пин на карте у свежих юнитов
7. Вопрос или заявкаЧат с иконки; бронь с опциональным messageMessage не попадает в чат; вопрос не primary CTAЯвный «Написать владельцу» рядом с бронью
8. Ответ владельцаIn-app notice + чат, если владелец зашёлЕсли владелец не в приложении — тишинаPush/email (зависимость от решения по каналам)
9. Согласовать датыТолько новый запрос или отказКалендарь на брони один месяцВстречные даты, правка периода без новой заявки
10. Подтвердить договорённостьПодпись флагом после документовСтатусы documents vs кнопка «Подтвердить»Понятный чеклист «что дальше» одним языком
11. Место и время передачиВремя в заявке; pickupNote если владелец заполнилЛегко пропуститьПодтверждённый слот + точка; напоминание в чат
12. Пользуется и возвращаетСтатусы active / complete / unreturned; фотоАрендатор меньше кнопок, чем владелецАрендатору ясно, что делать в день возврата
13. ОтзывСсылка после completedЛегко уйти, не оставивНапоминание; повторный заказ с той же карточки
14. ВернутьсяИстория броней, избранное, профиль владельцаНадо искать вручнуюRepeat CTA, подписка на владельца, похожие

Узкое место сценария A: после «нашёл» следующий шаг — либо жёсткая заявка с KYC, либо спрятанный чат. Нет мягкого BlaBlaCar-шага «написать и договориться», а отказ владельца обнуляет путь.


4. Сценарий B. Арендодатель

ШагСейчасУлучшитьНе хватает
1. РегистрируетсяЛогин/пароль, рольKYC не нужен, чтобы сдать, только чтобы взять—
2. Создаёт объявлениеНижняя вкладка «Сдать», мастер5 шагов нормальныКалендарь и карта в мастере
3. Фото, описание, ценаФото обязательны; AI предлагает, не публикует самМожно пропустить AI и застрять без названия до финалаПодсказки хар-к без AI (шаблоны категории)
4. Локация и доступностьТекстовый город; выдача meetup/pickup/deliveryКоординаты и район зашитыРеальная точка; закрытые дни до модерации
5. Публикуетstatus: moderation, в ленте не видноverified: true на сыром юните вводит в заблуждениеЯвный статус «на проверке» в кабинете уже есть — не ставить «Проверен» до модерации
6. Получает обращенияNotice «новая заявка», CRM needsActionЛегко не заметить, если не открывать колокольчикСписок входящих на первом экране кабинета уже частично есть (actionDeals) — усилить, не дублировать новым inbox
7. Отвечает на вопросыЧатНет шаблоновБыстрые ответы: «свободно», «залог», «где встреча»
8. Подтверждает или альтернативаПодтвердить / отклонитьОтклонить = тупик для арендатораПредложить другие даты / короткий комментарий отказа
9. Согласовывает передачуpatchDealFields (заметка, способ) пока документы готовыСкрыто в Deal WorkspaceЯвный блок «когда и где отдаём»
10. ПередаётФото выдачи → «Начать аренду»——
11. Получает обратноФото возврата—Напоминание в день endDate
12. Завершает«Завершить аренду» / «Не вернул»——
13. Получает отзывАрендатор может написать; владелец оценивает гостяНе форсится—
14. Управляет и принимает новыеПауза, цена, календарь, бустАналитика просмотров фейковаяНе строить второй кабинет; довести текущий

Узкое место сценария B: объявление появляется «не там» на карте и без календаря, а на входящую заявку можно только да/нет.


5. Список обнаруженных продуктовых проблем

  1. Связь со владельцем слабее брони. Основной CTA — «Забронировать». Чат вторичен. Текст заявки не становится сообщением в треде.
  2. Нет торга по датам. Отказ конечен; согласование = новая заявка и снова KYC-гейт.
  3. Новое объявление врёт карте. publishDraft пишет lat/lng Арбата и distanceKm: 0.3 независимо от города.
  4. Календарь не часть публикации. Владелец закрывает дни только после создания.
  5. Пустой поиск беднее пустого города. City empty: соседние города + watch. Search empty: одна фраза.
  6. KYC ручной — стоп-кран первой аренды. Новый человек не отправляет заявку, пока админ не нажмёт Verify.
  7. Статусы сделки говорят на двух языках (booking vs deal; кнопка «Подтвердить» пишет documents).
  8. «Проверен» и «просмотры» и «% ответов» и «по расстоянию» выглядят как живые метрики, часть из них — сиды или константы.
  9. Уведомления существуют только внутри открытого сайта. Для BlaBlaCar-ритма «написал — ответил» этого мало, но внешние каналы — отдельное продуктовое решение, не инфраструктурный фетиш.
  10. PRO/буст/реферал продают то, чего нет (оплата, выплаты, права PRO). Это ломает доверие сильнее, чем отсутствие функции.
  11. Возврат пользователя не собран: нет recently viewed, похожих, repeat booking, follow.
  12. Android отстаёт точечно (фейковая рефералка опаснее отсутствующего CRM).
  13. Дубли кабинетов повышают стоимость любой доработки хозяина.

Не проблемы этого плана (уже сделано или сознательно отложено): поиск по каталогу, антидаблбук, фото сделки, честный копирайт «деньги мимо платформы», модерация, избранное, city watch.


6. Приоритетный список P1 / P2 / P3

Правило: P1 — без этого трудно найти → связаться → договориться → арендовать. P2 — быстрее договариваются и возвращаются. P3 — рост бизнеса. Не включать то, что уже работает.

P1

#### P1-1. Вопрос владельцу как равный шаг рядом с заявкой

#### P1-2. Ответ на заявку: другие даты или короткий отказ, не только «нет»

#### P1-3. Честная точка на карте и город при публикации

#### P1-4. Доступность в мастере создания

#### P1-5. Пустой поиск с следующим действием

#### P1-6. Понятный статус заявки одним языком

#### P1-7. Снять ложные бейджи с нового объявления

P2

#### P2-1. Похожие объявления на карточке

#### P2-2. Недавно просмотренные + счётчик просмотров владельца

#### P2-3. Повторить аренду

#### P2-4. Избранное заметнее; подписка на владельца — нет, если не решите иначе

#### P2-5. Instant confirmation — только после решения PM

#### P2-6. Сохранённый поисковый запрос

#### P2-7. Быстрые ответы владельца

#### P2-8. Честность Android-рефералки и сервисов

#### P2-9. Переписка по тикету поддержки

P3

Не делать, пока P1 не закрыт. Кратко, чтобы не изобретать заново:

IDЗадачаЗачемСейчасЗаметка
P3-1Права PRO (не новый кабинет)Компании прокатаПокупка без entitlementsСначала решить, нужен ли PRO; иначе спрятать тарифы
P3-2Оплата бустаПродвижениеБуст уже ранжируетТолько после выбора провайдера PM
P3-3Want-ad «ищу вещь»Спрос без оффераCity watchОтдельный рынок; не дублировать watch
P3-4Комплекты / add-onsЧек большеНетРано при 1 юнит = 1 listing
P3-5Почасовая / долгая ставкаГибкостьТолько суткиЛомает календарь и итог; не смешивать
P3-6Несколько единиц / филиалыПрокатНетДругая модель инвентаря
P3-7Push/emailВернуть к ответуКаналы в аудитеИмеет смысл после P1-1, это продукт «достучаться», не Kafka
P3-8Реферальные выплатыРостУчёт % от услугБез кассы платформы — только отчёт, как сейчас
P3-9Расширенный AIСкорость листингаУже есть разбор фото и поискНе центр плана
P3-10Follow владельцаВозвращаемостьНетПосле P2-3, если избранного мало

7. Рекомендуемый порядок разработки

Не параллелить новый кабинет, новый мессенджер и PRO.

  1. P1-1 чат = канал договорённости (включая текст заявки).
  2. P1-6 чеклист статусов на существующей сделке (быстрый UX, снижает путаницу пока идут 3–5).
  3. P1-7 убрать ложные бейджи/сорт.
  4. P1-3 точка на карте при создании и редактировании.
  5. P1-4 дни недоступности в мастере.
  6. P1-2 встречные даты (опирается на чат и календарь).
  7. P1-5 пустой поиск.
  8. P2-3 repeat из истории.
  9. P2-1 похожие на PDP.
  10. P2-2 просмотры как правда.
  11. P2-4 вход в избранное.
  12. P2-7 шаблоны ответов.
  13. P2-8 Android реферал не врать.
  14. P2-9 ответы в тикетах.
  15. Остальное — после ответов в §10 (instant, saved search, PRO, каналы, want-ad).

Android: повторять те же P1 на уже существующих экранах Compose, не поднимать отдельный продукт. Исключение — P2-8 сразу, это баг доверия.


8. Зависимости между задачами

P1-1 (чат)
  ├── P1-2 (другие даты в том же диалоге)
  └── P2-7 (шаблоны)

P1-3 (пин)
  └── P1-7 (distance имеет смысл только после пина / скрытия сорта)

P1-4 (календарь в create)
  ├── P1-2 (предложение дат)
  └── P2-5 (instant book, если разрешите)

P1-5 (пустой поиск)
  └── P2-6 (saved search)

P2-3 (repeat)
  └── P3-10 (follow — опционально)

PRO / оплата / want-ad / hourly / multi-unit
  └── ничего из P1; не начинать раньше решения PM

Существующие модули, на которые опираться, а не заменять: applyContourAction, canCreateBooking, useCatalogListings, CityEmptyState, DealWorkspace, watchCity, dual CRM.


9. Критерии готовности (сводка)

См. поле «Готово когда» у каждой задачи. Общий критерий пилота сценария:

Новый арендатор без демо-карточек: находит юнит в своём городе → пишет владельцу или шлёт заявку с текстом в чате → владелец предлагает другие даты или подтверждает → обе стороны видят один следующий шаг → фото выдачи → фото возврата → отзыв → из истории можно запросить тот же юнит.

Новый арендодатель: публикует фото, цену, свою точку, закрытые дни → после модерации юнит на карте там, где указал → видит входящую заявку и отвечает не только «нет».

Регрессы, которые нельзя сломать: нет двойной брони, гость не читает чужие чаты, KYC-копирайт не обещает OCR, деньги аренды не «принимаются» UI, AI не выдумывает юниты.


10. Вопросы владельцу продукта

Без этих ответов часть бэклога нельзя честно брать в работу.

  1. KYC до первой заявки: оставить ручной стоп (сейчас так) или разрешить заявку/чат, а выдачу держать до Verify? Это главный тормоз сценария A.
  2. Instant book: нужен ли флаг «подтверждать сразу», или пилот всегда с живым «да» владельца (ближе к BlaBlaCar)?
  3. Деньги: аренда по-прежнему только напрямую? Буст/PRO остаются бесплатной записью в контур или прячем витрину /services, пока нет провайдера?
  4. PRO: реальные права (лимиты объявлений, сотрудники) или убрать маркетинговые тарифы, чтобы не обещать кабинет компаний?
  5. Гео пилота: один город / список CITIES / свободный ввод города мира? От этого зависит P1-3.
  6. Want-ad («ищу дрель»): нужен в этой волне или достаточно city watch + пустой поиск?
  7. Каналы связи: достаточно in-app на пилот или нужен хотя бы email на «новая заявка» / «вам написали»?
  8. Подписка на владельца vs усилить избранное и repeat — что ближе к «вернуться»?
  9. Android: паритет P1 на тех же экранах или веб — источник правды, приложение догоняет позже?
  10. Галочка «Проверен» на юните: это KYC владельца, модерация объявления или ручной бейдж? Сейчас смыслы смешаны (listing.verified vs user.kyc).

Метод и ограничения аудита


Сводная таблица

ФункцияСтатус сейчасЧто требуетсяПриоритет
Главная лентаРаботаетНе дублировать; общее состояние фильтров не трогать без нужды—
Поиск, фильтры, категорииРаботает; транспорт-подкатегории пустыеПочинить подкатегории вместе с поиском, не новым каталогомP1-5 смежно
КартаРаботаетЧестные пины новых юнитовP1-3
Карточка объявленияРаботаетCTA «Написать»; похожиеP1-1, P2-1
Профиль владельцаРаботаетНе считать responseRate живым; follow — вопрос PMP3/вопрос
Регистрация и входРаботаетНе переделывать—
Создание объявленияРаботает без гео и календаряПин + закрытые дни; не ставить verifiedP1-3, P1-4, P1-7
Редактирование / паузаРаботаетСмена координат; resubmit rejectedP1-3, позже
Календарь доступностиРаботает после публикацииВнести в мастерP1-4
Заявка на датыРаботает + KYC-гейтТекст в чатP1-1; KYC — вопрос 1
Подтверждение / отказРаботает, отказ терминальныйДругие датыP1-2
Instant bookНетТолько после вопроса 2P2-5
ЧатРаботает, вторичен на PDPСделать основным каналомP1-1
Кабинеты / CRMРаботает, экраны дублируютсяНе плодить третий кабинет—
Выдача / возвратРаботаетЧеклист статусовP1-6
Документы и подписьРаботает как демо-флагНе имитировать УКЭП—
ОтзывыРаботаетRepeat с историиP2-3
ИзбранноеРаботает, слабо видноВход в оболочкеP2-4
История просмотровНет; views не считаютсяСессионные просмотрыP2-2
ПохожиеНет UIБлок на PDPP2-1
Подписка на поискНет; есть city watchСначала пустой поискP1-5 → P2-6
УведомленияIn-appНе строить push без вопроса 7P3-7
МодерацияРаботает——
KYCРучной, блокирует броньРешение PMвопрос 1
ТикетыБез тредаРепликиP2-9
AndroidТот же контур, дырыНе врать реферал; догонять P1P2-8
PRO / компанииМаркетингСпрятать или entitlementsвопрос 4 / P3-1
БустРанжирование без оплатыЧестный копирайт уже есть; витрина — вопрос 3P3-2
РефералКод и отчёт на вебеAndroid совпасть; выплаты не выдумыватьP2-8 / P3-8
AI поиск и листингРаботает + mockНе центр планаP3-9
Мультиединицы, почасовка, комплекты, want-adНетНе в этой волнеP3
Доставка как логистикаEnum + заметкаТочка передачи в P1-3, не служба доставки—