Итоговый план на основе всей информации на сайте: 36 разделов, 5 страниц, 13 схем сделок, 12 таблиц БД, 28 API endpoint'ов, 17 открытых вопросов. Всё, что нужно команде для старта - здесь.
Next.js 16 + Prisma 6 + PostgreSQL 16 + Bun - 26 моделей БД - 18 API endpoints - Apple HIG - PM2 + nginx - SSL Let's Encrypt
Обсуждаемые направления развития платформы. Прокомментируйте, измените статус или добавьте свои идеи - затем нажмите "Экспорт" и пришлите файл AI в следующем чате.
Тендер - это перевёрнутая схема маркетплейса: не продавец ищет покупателей, а покупатели формируют спрос и поставщики соревнуются за право его удовлетворить. Ниже - пошаговый процесс от заявки до исполнения.
Покупатель (или организатор закупок) открывает форму "Создать тендер". Заполняет: категорию/подкатегорию товара, целевые характеристики (бренд, модель, артикул), желаемый объём (минимум и максимум), срок сбора спроса (3-14 дней), города доставки, целевую цену (опционально). Платформа проверяет: нет ли уже похожего активного тендера (по categoryId + brand + cities), чтобы не плодить дубликаты. Если есть - предлагает присоединиться к существующему.
Тендер публикуется в каталоге с бейджем "🔴 Тендер" и на главной в блоке "Тендеры с растущим спросом". Другие покупатели присоединяются: указывают желаемое количество (от 1 до N ед.), при необходимости - желаемый бренд/модель. Счётчик спроса растёт: "143 / 200 участников - 720 / 1000 ед.". Каждый участник может поделиться ссылкой - реферальная программа v2 (блогер получает 5% с сделки если привёл участников). Опционально: участник резервирует эскроу-блокировку (сумма = целевая цена x его количество), чтобы показать серьёзность намерений.
Когда спрос достигает 50% minVolume (например, 100 участников из 200), платформа автоматически запускает рассылку RFQ (Request For Quotation): отбирает верифицированных поставщиков по фильтру (категория товара + гео + рейтинг >= 4.0 + isVerified=true), отправляет им in-app уведомление, email (через SMTP) и push в Telegram-бот @rodnoy_bot с текстом: "Тендер #T-2026-001: 100+ покупателей хотят Bosch-перфоратор. Дедлайн ставки: 25 июля. Целевая цена: 8000руб./ед. Сделать ставку -> [ссылка]". Поставщики видят тендер в SupplierTab -> "Тендеры для вас".
Поставщик делает ставку в форме: цена за единицу, срок поставки (дней), условия доставки (самовывоз/СДЭК/Boxberry), гарантия, комментарий. Ставки слепые - поставщики не видят чужие цены (как в b2b_auction), только общее число конкурентов. Каждый поставщик может сделать до 3 ставок, перебивая свою предыдущую. Минимальная ставка = целевая цена x 0.7 (защита от демпинга ниже себестоимости). Каждая ставка логируется в audit_log. Инициатор видит: "Получено 5 ставок от поставщиков. Лучшая видимая: 8200руб." (без имён).
Режим Авто (по умолчанию): система выбирает минимальную ставку, соответствующую требованиям (срок, доставка). Учитывается рейтинг поставщика как tiebreaker - при равной ставке выигрывает поставщик с рейтингом 4.9 против 4.5. Режим Голосование: инициатор + все участники спроса голосуют 24 часа за топ-3 ставки (видят цену, рейтинг, срок, но не имя поставщика до голосования). Это полезно для крупных B2B-тендеров, где важна не только цена. Победитель получает уведомление +60 секунд на подтверждение готовности исполнить.
Все участники спроса получают счёт на оплату по ставке победителя. Деньги замораживаются на эскроу-счёте платформы (через Pikassa / ЮKassa). Параллельно: авто-генерация договора через шаблон (PDF) - specifies поставщик, покупатель-организатор, объём, цена, сроки, условия доставки, ответственность сторон. Договор подписывается через Просто подпись / Kontur.Diadoc (ЭДО), либо простой электронной подписью (для физлиц). Если набралось >= 90% оплат - тендер переходит в "confirmed". Если < 90% - инициатор может продлить дедлайн на 3 дня или отменить (деньги возвращаются автоматически).
Поставщик отгружает товар -> трекинг через Metaship API (СДЭК, Boxberry, Почта РФ) -> каждый участник получает трек-номер и ПВЗ для самовывоза. Получатели подтверждают получение в приложении -> эскроу автоматически выплачивает поставщику (за вычетом комиссии 3% + 2.5% эквайринг). Кэшбэк 1% на bonus-баланс участникам. Отзыв о поставщике + рейтинг. Арбитраж: если участник не подтверждает получение 14 дней - автоматически считается доставленным (если трекинг показывает "Выдан").
TenderBid в schema.prisma (tenderId, supplierId, pricePerUnit, deliveryDays, isWinner)/api/tenders/[id]/bid (POST) - слепые ставки/api/tenders/for-me (GET) - релевантные тендеры для поставщикаtender_rfq.ts - рассылка RFQ при 50% спросаtender_winner.ts - выбор победителя по дедлайну/api/tenders/[id]/bid - POST ставки (слепые, макс. 3 на поставщика)/api/tenders/for-me - релевантные тендеры для поставщика/api/pools/create-tender - покупатель создаёт тендерСейчас все 13 видов сделок начинаются с предложения поставщика. Тендер - единственный, где всё начинается со спроса покупателей. В коде есть variant='tender', но процесса нет: покупатель не может создать тендер, поставщики не получают уведомлений, ставок нет.
Полный флоу: 1) Инициатор создаёт тендер (что/сколько/когда/целевая цена) -> 2) Сбор спроса 3-14 дней -> 3) При 50% minVolume авт-рассылка RFQ верифицированным поставщикам -> 4) Слепые ставки 5 дней (до 3 ставок на поставщика) -> 5) Выбор победителя (auto или голосование) -> 6) Эскроу-блокировка 3 дня -> 7) Исполнение через СДЭК. Backend: модель TenderBid, 2 API endpoints, 2 cron-задачи. Frontend: форма "Создать тендер", раздел "Тендеры для вас" в SupplierTab, страница "Мои тендеры", лента на главной.
На платформе 13 видов сделок и аукционов. Новичок не понимает, какой ему подходит. Сейчас только короткие описания в модалках - недостаточно для выбора.
Wizard для покупателя (4 вопроса: что/сколько/когда/где -> 3 рекомендации) и для поставщика (что/сколько/сроки/гео -> 3 рекомендации). Сохраняет ответы в localStorage для персонализации главной. Функция recommendVariant() на основе логики срочность x объём x гео. Интеграция в HomeTab (кнопка под "Виды торгов") и в SupplierTab (кнопка "Помочь выбрать variant" в форме создания пула).
Прежде чем реализовывать простую таблицу 13x7, рассмотрим 4 альтернативных подхода - у каждого свои плюсы и минусы.
Колонки: минимум участников, срок, скидка, доставка, комиссия, выгода покупателю, выгода продавцу. На мобильных - горизонтальный скролл.
Слева - ползунки/радио: "сколько готовы ждать", "сколько нужно", "город". Справа - карточки подходящих видов сделок с подсветкой совпадения. По мере изменения фильтров карточки переразмещаются (топ-3 крупные, остальные ниже).
Пользователь вводит свой сценарий: "100 шт Pampers, Москва, нужно через 5 дней". Платформа показывает расчёт по всем 13 видам: "Локальная: -20% - 5 дней - 100 в наличии. Federal: -28% - 9 дней (не подходит). Cascade: -25% - 7 дней (если подождёте)".
Сверху - компактная таблица для тех, кто хочет быстро сравнить. Снизу - кнопка "Подобрать для меня" -> открывает wizard (вариант B). Таким образом: начинающие проходят wizard, опытные смотрят таблицу.
Сложно сравнить 13 видов сделок по ключевым параметрам. Каждая карточка показывает короткое описание, но не позволяет быстро сравнить минимум участников, срок, скидку, комиссию.
Таблица 13x8 (виды x параметры): минимум участников, срок сбора, скидка, цена покупателю (с расчётом экономии), доход продавцу (с вычетом комиссии), ссылка на пулы. Сортировка по любому столбцу кликом по заголовку. Комиссия скрыта - пользователь сразу видит итоговые цифры. Расчёт для товара за 10 000 руб. (розница). На мобильных - горизонтальный скролл, на десктопе - полная таблица. Цветовые акценты: зелёный = сильная сторона, жёлтый = средняя, серый = слабая. Клик по строке - фильтр каталога по variant.
Карточки пулов не показывают, КОМУ этот пул выгоден. Покупатель не понимает, подходит ли пул под его профиль (семья / HoReCa / срочно / оптом).
9 типов бейджей с приоритетом: RU Российский производитель (90), [!] Срочно (100), 🔥 Популярный (85), 🏠 Идеально для семьи (80), 💰 Оптом дешевле (75), ☕ HoReCa-выгодно (70), 🌊 Цена падает (60), 📦 Почти собрано (50), 🎁 Кэшбэк +1% (30). Функция calculatePoolBadges(pool) -> топ-3 по приоритету. Интеграция в PoolCardMobile (под ценой) и PoolDetailSheet (полный список).
В карточке пула пользователь не видит, что тот же товар доступен в других пулах с другими условиями. Например, Pampers есть в локальной (быстро, -23%), каскадной (дольше, -18%->-25%) и slot-аукционе (-18%, лимит).
В PoolDetailSheet под кнопкой "Присоединиться" - блок "Альтернативы". Логика: 1) Тот же productId, другой пул (3 шт.) 2) Тот же бренд и категория, другой товар (2 шт.) 3) Тот же variant, другой товар (1 шт.). Топ-3 альтернативы с inline-подсказкой "Если подождёте 7 дней, сэкономите дополнительно 5%". Server-side endpoint /api/pools/[id]/alternatives с кэшем 5 минут. Аналитика кликов в audit_log.
В карточке пула показывается 3 уровня цен, но пользователь не видит живой выгоды при изменении количества. Нет CTA "возьми 24 - сэкономь 6720руб.".
Компонент WholesaleCalculator: слайдер/кнопки +/- для количества, динамический расчёт цены по priceTiers, подсказка "следующая скидка при N ед.", CTA-кнопка с предложением взять больше. Интеграция в JoinPoolSheet: при выборе количества автоматически применяется tier, подсказка "Добавьте ещё 5 ед. для -10%". Увеличивает средний чек.
Поставщик при создании пула не понимает, какой variant выбрать для своей ситуации. Форма создания пула требует заполнить много полей без контекста.
5 готовых сценариев в SupplierTab -> "Создать пул" -> "Выбрать сценарий": 📦 Распродажа остатков (flash_auction), NEW Новый товар (cascade), 🤝 B2B-контракт (cross_b2b), 💎 Лимитка (slot_auction), 🧪 Тестовый запуск (local). Каждый сценарий - предзаполненная форма с правильным variant, minParticipants, collectsUntil + tips[]. Интеграция с wizard.
Сейчас в seed-данных нелогичная логика: Локальная Pampers 23% скидки, Федеральная Tide - 22%. Должно быть наоборот: локальная (малый объём) = 15-20%, федеральная (большой объём) = 25-35%.
Двухуровневое решение. Уровень 1: поправить seed-данные с правильными скидками (pool-1: 18%, pool-2: 28%, pool-7: 25%, pool-8: 18%, pool-13: 25%, pool-14: 18%). Уровень 2: ввести формулу recommendDiscount(variant, minVolume, retailPrice) в форме создания пула с inline-подсказкой: "Для Локальной рекомендуемая скидка 10-20%. Ваша цена 920руб. ниже рекомендованного диапазона 960-1080руб. - проверьте маржинальность." Таблица диапазонов скидок для всех 13 variant.
Даже если реализовать все фичи, пользователи не поймут, как ими пользоваться. Сейчас на платформе только короткие описания в модалках. Нужен 3-слойный подход: онбординг + контекстные подсказки + образовательный контент.
Слой A (онбординг): тур для покупателя (4 шага -> персональные рекомендации) и для поставщика (4 шага -> wizard с вариантами). Слой B (contextual help): кнопка "Какой вид сделки мне подходит?" на главной, подсказки в карточке пула при простое >30 сек, блок "Альтернативы" внизу. Слой C (долгоиграющий контент): раздел "Как это работает" на gb.rodnoy.site (8 статей по одному на вид сделки), Telegram-канал @rodnoy_help (серия "Сделка недели"), email-дайджест с персональными рекомендациями, виральная механика "Я сэкономил 1120руб. - присоединяйся".
Покупатель хочет: дешевле + быстрее + меньше обязательств. Поставщик хочет: дороже + предсказуемо + больше объём. Нужно системно свести эти интересы через механики платформы.
5 механик сведения: 1) 3-tier pricing (уже есть) - покупатель видит "возьми 5 - -10%", поставщик получает объём. 2) Escrow-защита (уже есть) - покупатель не боится предоплаты, поставщик уверен в оплате. 3) Каскадная лесенка (уже есть) - автоматическое снижение цены. 4) Антифрод + рейтинги (уже есть). Что добавить: 📊 Калькулятор опта, 🎁 Бонус за объём (кэшбэк 2% при 5+ ед., 3% при 10+ ед. - сейчас 1% фикс), 📦 Связанные пулы (купи Pampers + ФрутоНяня = -5% на оба), [!] Гибкий дедлайн (поставщик может продлить сбор на 3 дня).
Реализовано за последние сессии: страницы брендов, тендер-система, контекстные подсказки, дашборд поставщика
Источник: developer.apple.com/design/human-interface-guidelines - обновлено 23 июля 2026
Платформа "Родной" полностью переделана по образцу Apple Human Interface Guidelines - официальной дизайн-системы Apple. Три ключевых принципа: Clarity (ясность - элементы читаемы и понятны), Deference (подчинение контенту - UI не отвлекает от содержания), Depth (глубина - реалистичные слои, тени и переходы). Mobile-first дизайн с фокусом на нативный iOS-опыт.
Шрифт: SF Pro на Apple устройствах, fallback на Inter (cyrillic subset). Все цифры - tabular-nums для выравнивания.
Юр. оформление, Figma-прототип, первые партнёры, регистрация ТЗ.
Базовый движок, escrow, СБП, 5 категорий, Telegram-бот, soft launch.
СДЭК интеграция, C2C-модуль, аукционы (MVP), performance-маркетинг.
B2B-кооперация, C2B-тендеры, 10 городов, мобильное приложение, Series A.
Месяц 18 - операционный break-even. Месяц 33 - полный возврат 205Mруб. инвестиций.
Покаскадная разбивка задач по бэкенду и фронтенду с привязкой к спринтам. Каждый блок - конкретные задачи, файлы, API и компоненты.
Если вы поставщик, покупатель, инвестор или хотите войти в команду - оставьте заявку. Первые 50 партнёров получат статус Founding Partner с пониженной комиссией и приоритетом в каталоге.