ПРОЕКТ КЛИЕНТА

SBS — B2B-маркетплейс новой спецтехники

Площадка, где компании находят новую спецтехнику у проверенных дилеров: каталог с поиском по словоформам, обезличенное КП в PDF, кабинеты поставщиков, покупателей и партнёров, чат сделки с модерацией.

Сайт
sbsrus.com
Год
2026
Роль
Проект для заказчика по договору: архитектура, разработка и запуск на его сервере — я

Задача

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

Работа шла по договору в три этапа, у каждого своя приёмка. Итог — платформа на сервере заказчика, исходники и инструкции по эксплуатации у него на руках.

Что сделано

  • Каталог с фильтрами по параметрам каждой категории и поиском, который понимает словоформы: русский словарь подключён прямо в PostgreSQL, отдельного поискового сервера нет.
  • Коммерческое предложение в PDF по единому шаблону: обезличенное, с фото техники, QR-кодом на карточку и знаками платформы; повторный запрос не плодит дубли.
  • Цены в валюте пересчитываются в рубли по курсу ЦБ, рядом всегда видны исходная валюта и дата курса.
  • Отдельные кабинеты поставщика, покупателя и партнёра со своими контурами входа; прайс загружается из Excel по шаблону платформы или автоматически по ссылке.
  • Чат сделки с модерацией: контакты и адреса в сообщениях маскируются до этапа договора, оригиналы видит только оператор.
  • Панель оператора: модерация карточек и сообщений, проверка организаций, вход администраторов со вторым фактором и переключатели функций — заказчик сам решает, что и когда показать посетителям.
  • Фото и видео получают знак платформы при загрузке; файлы клиентов лежат вне публичной папки и отдаются только тем, кому положено.

Стек

  • Next.js 16 (App Router), React 19, TypeScript strict, Tailwind CSS 4
  • PostgreSQL 16 + Prisma; полнотекстовый поиск с русским словарём hunspell
  • iron-session + argon2, TOTP для администраторов
  • Playwright + Chromium — печать PDF-КП
  • node-cron — курсы ЦБ и ночные задачи
  • Docker Compose: web, postgres, nginx; VPS заказчика
  • Vitest (unit) + Playwright (e2e)

Измеримое

Замер мой, 27 сентября 2026 г., по публичной главной странице. Цифры бизнеса клиента здесь не показываются: их публикация — вопрос отдельного письменного разрешения, а выдумывать метрики я не буду.

Lighthouse mobile, производительность
87 из 100
медиана трёх прогонов Lighthouse 13 в режиме мобильного устройства по публичному адресу главной
Вес главной страницы
646 КБ
суммарный объём переданных ресурсов, медиана тех же прогонов
Отрисовка главного блока (LCP)
3,0 с
те же прогоны, эмуляция мобильной сети и процессора; медиана

Что можно применить в вашем проекте

  • Новые функции уезжают на сервер выключенными, а включает их заказчик сам в панели: выкладка кода отделена от показа, и недоделанное не видно покупателям.
  • Поиск по словоформам не требует отдельного сервера: словарь внутри базы дешевле в сопровождении, и этот приём подходит любому каталогу.
  • Проект передаётся целиком: сервер на заказчике, исходники и инструкции у него — подрядчик не держит ключи от чужого бизнеса.
Все работы