Как я навайбкодил бота в MAX и получил 2000 пользователей в течение 12 часов за 0 рублей - QubStore

Как я навайбкодил бота в MAX и получил 2000 пользователей в течение 12 часов за 0 рублей

Содержание статьи

Всем привет, Хабр. Сегодня хочу рассказать свою историю провала и успеха.

Топливный кризис как вынужденный толчок к рождению идеи

Я живу в Республике Алтай, поэтому топливный кризис докатился до нас, наверное, позже всех. И 4 июля уже были очереди на заправках. Примерно в то же время появился легендарный gdebenz.ru. Автор уже писал историю своего успеха — вот его статья на vc.ru.

Вдохновляясь его идеей, а также проблемой функциональности (согласитесь, не всегда удобно с телефона заходить на сайт, где карта напичкана огромным количеством функционала), я решил создать бота в MAX. Тогда уже самозанятым дали возможность сделать до 2 ботов, поэтому одного я сделал для продакшена, второго использовал для дев-разработки.

Мой бэкграунд и стэк технологий

Я бэкенд-разработчик на Java, поэтому стек был выбран наиболее близкий мне: Java 21, Spring Boot 3, Maven, k3s, PostgreSQL, Liquibase и немного кэширования, чтобы не упираться в rate limiting при парсинге данных. В качестве LLM и AI-агента был использован многими любимый Claude Code. Сервер арендовал в РФ, т.к. по закону нельзя сейчас хранить персональные данные на зарубежных серверах, хотя, к слову сказать, персональные данные я и не собирал. Я хранил лишь данные, которые предоставляет сам MAX — это userId. Геолокацию пользователя не собирал, лишь при первом входе просил указать регион для упрощения поиска самих АЗС.

Так появился Гдебенз.online и бот в MAX.

К сожалению, не сохранились у меня скриншоты первой версии — в процессе доработки я менял меню, поэтому только актуальный функционал.

Как началась разработка

Я как раз уехал на груминг собаки (не задач) и хотел остановиться на АЗС. Пока ехал по дороге, наблюдал просто огромнейшие очереди, чтобы заправиться. Уже сделали чат, где люди писали актуальную информацию, туда же скинули и ссылку на gdebenz.ru.

Я приехал домой и буквально за 5-6 часов сделал первую версию, настроил CI/CD через GitHub и задеплоил приложение (после нескольких тестов, конечно же, которые оказались провальными).

Данные я брал с самого gdebenz, открыв F12 и посмотрев их API, которое было открыто для запросов. Сделал миграцию всех АЗС и далее шедулер, который опрашивал каждые 30 минут данные о наличии топлива и очередей.

Первые сутки — первые тысячи пользователей

Я написал админу местной РеспубликоАлтайской группы о том, что сделал такого бота. Он абсолютно бесплатный, возможно, кому-то упростит жизнь. Он сделал пост и процесс пошёл. На следующее утро я уже обнаружил более 2 тысяч пользователей, которые запустили бота, и более 4.5 тысяч поисковых запросов на ближайшие АЗС, где есть топливо.

Нашел ближайший скрин уже спустя 2 дня только

Как я навайбкодил бота в MAX и получил 2000 пользователей в течение 12 часов за 0 рублей

Провал данных

Я езжу не так часто, поэтому наблюдать метрики активного использования из своей квартиры и реальное положение дел на улице — не одно и то же. Бот откровенно врал, потому что данные из источника были неликвидны. У нас небольшая республика, поэтому, наверное, и не так много было отчётов от пользователей. А в моём боте, хоть и была возможность оставить отчёт о ситуации с топливом на конкретной АЗС, он просто перетирался следующим обходом шедулера, т.к. коэффициент источника данных по сравнению с отчётом пользователя был выше (сделано было намеренно, в чём я сильно ошибся).

Немного подробнее о багах

Если конкретнее, то статус пары (АЗС, тип топлива) считался как средневзвешенный score всех отчётов сразу — и юзерских, и системных из источников. Отчёты не различались по природе, только по весу.

systemTrustMultiplier = 1.5 — системный источник считался в полтора раза достовернее живого человека. Синк писал каждые 5 минут.

Дальше арифметика делала своё: отметка водителя не то чтобы затиралась записью, она просто тонула в score за 5-10 минут, потому что следующие проходы синка перевешивали её.

Как я навайбкодил бота в MAX и получил 2000 пользователей в течение 12 часов за 0 рублей

И вторая половина проблемы, которую я осознал ещё позже. Выдача поиска включала только АЗС с топливом. То есть станция с ошибочным статусом «нет топлива» просто пропадала из выдачи, и опровергнуть её отметкой было физически невозможно — юзер не мог её открыть. У меня kot.04gov несколько дней показывал «бензина нет» по АЗС, где бензин фактически был, и никто ничего с этим не мог сделать.

Получилось, что система не просто игнорировала пользователей — она сама себе заблокировала механизм исправления. Фильтруешь выдачу по статусу и принимаешь правки только через выдачу — всё, ты замкнут в своей же ошибке.

Подключение новых регионов и новых источников

Буквально через несколько дней я подключил Алтайский край, Новосибирскую и Кемеровскую области и радовался притоку трафика. К тому моменту у меня уже было около 4 тысяч пользователей. (Те кто без региона, это до добавления фичи)

Как я навайбкодил бота в MAX и получил 2000 пользователей в течение 12 часов за 0 рублей

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

Спустя 2 недели метрики были хуже некуда: буквально 150 пользователей в день (от общего количества в 4500, можно посчитать процент использования).

Тут на сцену вышла новость, что Республика Алтай сделала свою официальную топливную карту наличия топлива — kot.04gov.ru.

Я переключил источник данных на официальный, а также узнал, что у Крыма ситуация такая же. Подключил Республику Крым, но хорошие новости в том, что топливный кризис закончился, а с тем закончилась и необходимость в моём боте. Хотя он всё ещё запущен.

Текущая аналитика бота

Как я навайбкодил бота в MAX и получил 2000 пользователей в течение 12 часов за 0 рублей

Ключевые ошибки

  • Нужно тестить данные самому и делать форму обратной связи

  • Нужно сразу делать лендинг и регистрироваться в Серч консоле и Я.Вебмастере, что бы был прирост трафика и индексация в поисковой выдачи. (хотя мне с сарафанкой просто повезло)

  • Не оставлять проект на долго без фичей

  • Проект не может жить автономно, ему нужен сапорт, а не просмотр метрик!!!

  • Если цель заработать деньги — краткоживущий хайповый продукт не лучшая идея.

    Еще могу рассказать о 2 других проектах, если интересно, которые были до, которые так же неуспешно были запущены. К слову, я не унываю и в свободное от работы время стараюсь что-то придумывать и делать, хотя последние пару недель уже как-то не ресерчил и не строил новых гипотиз по новым проектам 🙂

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.Описать другие кейсы?0%Пиши00%Не интересно0 Никто еще не голосовал. Воздержавшихся нет.

Ссылка на основную публикацию