CLYOVO разработка × ТехМаркет
Full-cycle

CLYOVO разработкаТехМаркет

ТехМаркет · маркетплейс спецтехники

MINI APPЛотов: 5 630+Пользователей: 15 000+
Задача

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

Решение

Разработали полноценный Telegram Mini App с нуля: от архитектуры и UX до продакшен-деплоя.

Что внутри:

— Агрегатор лотов со всех лизинговых площадок (Европлан, ГПБ Аукцион и др.) — обновление каждые 30 минут, только живые лоты

— Каталог с поиском по марке, модели, категории + быстрые фильтры (новые, б/у, до 1 млн, по регионам)

— Детальные карточки лотов: галерея фото, цена выкупа, ежемесячный лизинговый платёж, технические характеристики, источник

— Умные уведомления: пользователь настраивает фильтр — бот следит 24/7 и присылает алерт в Telegram как только появился подходящий лот

— «Следить за ценой» — трекинг изменения стоимости конкретного лота

— Личный кабинет: покупки, заявки, история, избранное, уведомления, поддержка

— Бесплатное размещение объявлений для продавцов

— AI-подбор: платформа сама находит технику по заданным параметрам

— Роадмап: СПА (проверка по базе ГИБДД), снятие ограничений (юридическая помощь), техосмотр

Скринкасты · 5
Каталог
Каталог
Главная страница
Главная страница
О проекте
О проекте
Личный кабинет
Личный кабинет
/* Блок «Как мы это сделали» убран. Сначала это была таблица из пяти шагов на категорию — один и тот же текст на двадцати трёх дизайн-кейсах, из-за чего Яндекс и отбраковал кейсы как малоценные. Замена его на нарезку из solution уникальность вернула, но вывела тот же текст на странице дважды: solution уже отрендерен выше. Дубликат внутри одной страницы не лучше дубликата между страницами, поэтому блока просто нет — глубину даёт разбор в PageContent, написанный под конкретный кейс. */

ТехМаркет — маркетплейс лизинговой спецтехники, который живёт внутри Telegram. Ниже разобрано, как он собирает лоты с внешних площадок, почему цикл обновления — 30 минут, и что в такой сборке ломается чаще всего. Если вы думаете про агрегатор чужих данных или выбираете между Mini App и приложением в сторе — этот разбор про вашу задачу, а не про наши достижения.

Рынок, на котором покупатель работает браузером

Лизинг спецтехники и грузовиков раздроблен по площадкам: Европлан, ГПБ Аукцион и другие компании публикуют изъятую и б/у технику каждая у себя. Человеку нужен экскаватор до 3 млн в своём регионе. Он открывает десяток сайтов, и у каждого своя структура каталога, свои фильтры, свои названия категорий. Где-то в выдаче стоит цена выкупа, где-то ежемесячный лизинговый платёж — сравнить два лота между собой напрямую нельзя. Лоты при этом уходят быстро. Пока обошёл круг, часть предложений уже неактуальна, и обход надо начинать заново. То есть проблема была не в выборе, а в учёте: рынок есть, но его нельзя увидеть целиком в один момент времени.

Как устроен парсер-агрегатор

API нет ни у одной площадки. Сбор идёт по публичным страницам каталогов, и под каждый источник написан свой адаптер: своя разметка списка, своя пагинация, свои имена полей. Адаптер приводит лот к общей схеме: марка, модель, категория, год, цена выкупа, ежемесячный платёж, регион, фотографии, ссылка на источник. Без общей схемы фильтры и поиск не работают — сравнивать нечего. Цикл — раз в 30 минут. Это компромисс: чаще опрашивать чужие сайты значит грузить их и рисковать доступом, реже — показывать покупателю то, чего уже нет. Важнее добавления новых лотов — снятие исчезнувших. Каждый проход сверяет каталог с источником и убирает то, что пропало. Иначе за пару месяцев из 5 630 записей половина оказывается проданной, и доверие к каталогу пропадает целиком. Ссылка на источник остаётся в карточке: ТехМаркет агрегирует, а не перепродаёт, и покупатель видит, чей это лот.

Что оказалось сложнее, чем выглядит со стороны

Написать парсер — работа на несколько дней. Дальше начинается настоящая. Разметка источников меняется без предупреждения. Парсер, который работал вчера, сегодня отдаёт пустой список — и это не авария, а обычная жизнь агрегатора. Поэтому нужен не парсер, а присмотр за парсером: если источник резко вернул ноль лотов, это повод разбираться, а не молча перезаписывать базу нулём. Дубликаты. Одна и та же машина попадает в выдачу с двух площадок, с разными фото и разной ценой. Сверка по марке, модели и году не спасает: год совпадает у сотен единиц техники. Две цены в одной карточке. Цена выкупа и ежемесячный платёж — разные числа, и площадки показывают то одно, то другое. Быстрый фильтр «до 1 млн» обязан знать, по какому полю он фильтрует, иначе выдача становится случайной, а пользователь этого даже не заметит. Это, а не интерфейс, съедает основную часть бюджета такого проекта.

Почему Mini App, а не приложение в сторе

Покупка спецтехники — редкий сценарий. Человек ищет технику неделями, а потом не возвращается год. Ставить приложение ради одного поиска он не будет: установка из RuStore или Google Play — отдельный барьер, который отсекает часть аудитории ещё до каталога. Вторая причина — уведомления. Главная ценность продукта не в каталоге, а в алерте «появился ваш лот». В Mini App канал доставки уже существует: это чат с ботом. Не нужно просить разрешение на пуши и надеяться, что пользователь его дал. Третья — релизы. Правка выходит сразу, без ревью стора. Честное ограничение: у Mini App нет фонового доступа к железу и нет офлайна. Для маркетплейса это не важно. Для приложения такси, где нужны GPS в фоне и работа при плохой сети, мы делали именно нативный Flutter-клиент — сравните с кейсом «Везучая Трёшка».

Что в итоге получает пользователь

Каталог с поиском по марке, модели и категории плюс быстрые фильтры: новые, б/у, до 1 млн, по регионам. Карточка лота: галерея фотографий, цена выкупа, ежемесячный лизинговый платёж, технические характеристики и источник. Подписка на фильтр. Пользователь описывает, что ищет, — бот следит круглосуточно и присылает алерт в Telegram, как только появился подходящий лот. Это то, за чем возвращаются: искать самому больше не надо. «Следить за ценой» — трекинг стоимости конкретного лота. Личный кабинет: покупки, заявки, история, избранное, уведомления, поддержка. Для продавцов — бесплатное размещение объявлений. Плюс AI-подбор: платформа сама находит технику по заданным параметрам. На сегодня в системе 5 630+ лотов и 15 000+ пользователей.

Чего в проекте нет

ТехМаркет не лизинговая компания. Договор, проверка и сама сделка остаются на площадке-источнике или на продавце. Платформа доводит покупателя до лота, дальше начинается не её зона. В описании проекта есть роадмап — проверка по базе ГИБДД (СПА), помощь со снятием ограничений, техосмотр. Это план, а не работающие функции. Мы отделяем одно от другого, потому что читатель кейса иначе не отличит. Полноты рынка агрегатор не гарантирует. Он видит ровно те площадки, под которые написан адаптер, — не «весь лизинг России».

Частые вопросы

Сколько стоит такой Mini App?

Зависит от того, что именно вы называете таким же. Простой Mini App-каталог без агрегации — это уровень сайта или лендинга, от 30 000 ₽ и 1–2 недели. Бот с подписками на фильтры — от 50 000 ₽. ТехМаркет с парсерами под несколько источников, дедупликацией, подписками и личным кабинетом — это разработка уровня мобильного приложения, от 500 000 ₽ и 4–12 недель. Основная переменная в смете — число источников: каждый новый адаптер это отдельная работа, а не копия предыдущего.

Почему обновление раз в 30 минут, а не в реальном времени?

Реальное время требует, чтобы источник сам сообщал об изменениях, — API или вебхуков ни у одной площадки нет. Остаётся опрос. Опрашивать чаще значит грузить чужие сайты и рисковать доступом, а лизинговый лот живёт дольше получаса, так что покупатель разницы не почувствует. Для товаров с секундной динамикой такая схема не подходит вовсе.

Что будет, если площадка-источник закроет доступ?

Часть каталога перестанет обновляться, и это встроенный риск любого агрегатора — убрать его полностью нельзя. Смягчается двумя способами: несколько независимых источников, чтобы падение одного не обнуляло выдачу, и присмотр за парсерами, чтобы вы узнали о проблеме от алерта, а не от пользователей. Если ваша бизнес-модель держится на одном источнике, агрегатор строить не стоит: вы отдаёте выключатель своего продукта чужой компании.

Собирать лоты с чужих сайтов законно?

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

Можно повторить механику не для спецтехники?

Да, она переносится на любой раздробленный каталог: недвижимость, оборудование, автомобили. Переезжает ядро — общая схема лота, дедупликация, снятие исчезнувшего, подписки на фильтры. Адаптеры под источники пишутся заново, и это основная часть бюджета. Раздел про цену выкупа против ежемесячного платежа, например, верен только для лизинга — в другой нише будут свои перекосы в данных.

Цена в карточке точная?

Это цена из источника на момент последнего прохода, то есть с задержкой до 30 минут. Финальные условия всё равно у площадки, и в карточке специально стоит ссылка на неё. Обещать пользователю, что агрегатор знает актуальную цену лучше первоисточника, было бы неправдой.

3 свободных слота

Хочешь такой же результат?

Опиши задачу — пришлём 2 идеи бесплатно за 24 часа

40+ клиентов уже работают с нами · ответим за 2 часа