en
Feedback
Beliaev.AI — боты и автоматизация

Beliaev.AI — боты и автоматизация

Open in Telegram

Рабочий дневник разработчика Telegram-ботов и AI-автоматизаций. Внутри: живые кейсы и прямых клиентов, разбор архитектуры своих продуктов (LeadFinder, MaxSurge), продовые баги и их фиксы, инструменты ежедневной работы. Без воды, без курсов, без 🚀.

Show more
The country is not specifiedThe category is not specified
745
Subscribers
No data24 hours
-17 days
-1030 days
Posts Archive
#ябот Аватар этого канала, обложки постов и фото на сайте сгенерила нейросеть. С моего лица. За один вечер. Как это делается.
#ябот Аватар этого канала, обложки постов и фото на сайте сгенерила нейросеть. С моего лица. За один вечер. Как это делается. Берутся два обычных фото — фронтальное и вполоборота. Дальше модель генерации изображений получает их как референс лица плюс описание сцены: «за рабочим столом, тёплый свет, код на экране». На выходе — кадры, где я сижу за столом, за которым никогда не сидел. Из семи итоговых кадров получились аватар, пара «рабочих» сцен и портреты. Похожесть такая, что знакомые не заметили подмены. Но было и ведро фейлов: модель упорно сбривала мне бороду и стригла короче. Лечится только жёстким требованием в промпте — прямым текстом, капсом: бороду не трогать. После этого стало стабильно. Где нейрофото уместно, по-моему: аватары, обложки, иллюстрации к постам — там, где фото и так «постановочное». Где неуместно: документы, отзывы, «фото со встречи», которой не было, и вообще любой контекст, где картинка выдаётся за факт. Я для себя решил так: всё сгенерённое подписываю. В том числе этот пост выходит с нейро-обложкой — и вы теперь знаете, как она сделана. Небольшая честность стоит дешевле, чем один раз пойманное враньё. Доверие в нашем деле — единственный невосполнимый ресурс.

#build Пересобрал свой сайт. Не ради красоты — ради трёх вопросов, которые мне и так задают в личке каждую неделю. Первый: ты
#build Пересобрал свой сайт. Не ради красоты — ради трёх вопросов, которые мне и так задают в личке каждую неделю. Первый: ты вообще умеешь? Раньше на главной висели девять карточек работ подряд. Выглядело солидно и не читалось никак — глаз скользил мимо. Убрал четыре, оставил пять. Остальное уехало на отдельную страницу кейсов, где у каждого проекта нормальный разбор: задача, что сделал, что получилось, с цифрами. Семь таких разборов. Меньше карточек на главной — больше прочитанного. Второй: сколько стоит? На это давно отвечает страница с вилками по всем типам работ, без «рассчитывается индивидуально». Третий оказался самым интересным: а мне-то что конкретно нужно? Человек чувствует, что теряет время, но не знает, как это называется и что вообще заказывать. Собрал подбор из пяти вопросов: что съедает время, сколько обращений в неделю, где живут данные, что уже пробовали, когда нужен результат. На выходе — конкретный сценарий, вилка цены, срок и похожий кейс из практики. Самое важное там — один из возможных ответов звучит так: «Вам пока хватит таблицы. 0 рублей». Если обращений меньше десяти в неделю, автоматизация не окупится, и я предпочитаю сказать это до денег, а не после. Примерно половине написавших я так и отвечаю в переписке — теперь то же самое говорит сайт, ещё до меня. Ответы никуда не уходят и нигде не сохраняются, всё считается прямо в браузере. Никаких «оставьте телефон, мы перезвоним». Заодно нашёл у себя баг, за который стыдно ровно столько же, сколько смешно: генератор блога при каждом ночном прогоне перезаписывал карту сайта своими страницами — и вычищал оттуда кейсы, цены и всё остальное. Поисковики видели половину сайта. Чинится шестью строками, находится только когда идёшь проверять всё подряд, а не то, что менял. Подбор — aionika.ru/quiz.html Кейсы — aionika.ru/cases/

#кейс Клиент прислал реальный заказ на проверку. Система провалила 24 позиции из 24. Контекст: сервис для поставщика продукто
#кейс Клиент прислал реальный заказ на проверку. Система провалила 24 позиции из 24. Контекст: сервис для поставщика продуктов сверяет 45 прайсов поставщиков с каталогом компании — по каждой позиции находит, у кого сегодня дешевле. ИИ-матчинг на тестах показывал приличные проценты, все довольны. И тут живой заказ — ноль из двадцати четырёх. Планка клиента — 70% автоматом. Первое желание — крутить «умную» часть: модель, промпты, пороги. Это ловушка. Вместо этого я прочесал систему с семи сторон по очереди: наполняемость, точность, цены, очередь подтверждений, поставщики, парсинг файлов, дубли. Тупо, по одной стороне за раз, с цифрами до и после. Что нашлось. Молочка сравнивалась с чужой категорией — из-за одного кривого правила категоризации. Бренды в кавычках — «Праймбиф» и Праймбиф считались разными словами, минус десятки совпадений. На листе сравнения часть цен была за килограмм, а система думала, что за штуку. Ни одна из находок не про ИИ. Все — про данные вокруг него. Два дня таких фиксов — и автоматика поднялась с 64 до 83 процентов. Модель не трогал вообще. Вывод, который я повторяю каждому: автоматический матчинг — это не «магия нейросети», это десяток скучных исправлений по проценту-два каждое. И такие системы деградируют молча: никто не заметит, пока не прогонит реальный заказ. Поэтому прогоняйте реальные заказы.

#дебаг Хочу рассказать про баг, который искал почти целый день, потому что он отлично показывает характер этой работы. Систем
#дебаг Хочу рассказать про баг, который искал почти целый день, потому что он отлично показывает характер этой работы. Система для логистики считала клиенту итоговую стоимость доставки. И иногда — не всегда, а примерно в одном случае из двадцати — итог получался заметно меньше правильного. Контейнер, который должен стоить условно 600 тысяч, выдавался за 320. Если бы клиент это не заметил и продал по такой цене — попал бы на сотни тысяч убытка на каждой сделке. Самое мерзкое в таких багах — что они плавающие. Девятнадцать раз считает правильно, на двадцатый врёт. Это значит что дело не в формуле как таковой — формула верная. Дело в данных, которые в неё попадают в каком-то редком случае. Я полдня шёл по следу. Добавлял логи, смотрел на каждый промежуточный расчёт, сравнивал «хороший» случай с «плохим». И в итоге нашёл. Цена складывалась из двух частей: морская перевозка в долларах и железная дорога в рублях. В обычном случае обе части были, всё пересчитывалось в рубли по курсу, складывалось — верно. А в том редком случае железнодорожная часть приходила пустой, и в одной строчке кода доллары складывались с рублями напрямую, без перевода по курсу. Доллар воспринимался как рубль. Отсюда и занижение. Одна забытая операция пересчёта в одной ветке кода. День работы чтобы её найти. Тридцать секунд чтобы исправить. Это и есть суть работы, которую снаружи не видно. Клиент видит «всё работает». Он не видит что между «работает» и «работает правильно во всех двадцати случаях из двадцати» лежат вот такие дни охоты за одним пробелом. И что именно за это, а не за «написать код», на самом деле платят.

#стори Частый вопрос: как ты один тянешь столько проектов и не сходишь с ума. Логистика, своя SaaS-платформа, боты для клиент
#стори Частый вопрос: как ты один тянешь столько проектов и не сходишь с ума. Логистика, своя SaaS-платформа, боты для клиентов, пет-проекты. Расскажу систему, она простая и, может, кому-то пригодится. Первое и главное — всё, что можно не держать в голове, не держу в голове. У меня нет суперпамяти. У меня есть заметки. Каждый проект — это папка, в ней файл «что происходит»: где сервер, какие доступы, что сделано, что следующее, какие были грабли. Когда переключаюсь на проект после недели паузы — читаю файл и за пять минут снова в контексте. Без этого первый час после каждого переключения уходил бы на «так, а где я остановился». Второе — один проект в один заход. Я не прыгаю между задачами в течение часа. Утро — логистика и только логистика. После обеда — клиентский бот. Переключение контекста — самый дорогой расход энергии в этой работе, дороже самой работы. Десять переключений за день выматывают сильнее чем восемь часов в одном проекте. Третье — автоматизирую свою же рутину агрессивно. Деплой одной командой. Боты, которые сами докладывают если что-то упало. Канал, который сам себя постит (привет, ты читаешь его прямо сейчас). Каждая повторяющаяся ручная операция рано или поздно становится скриптом. Я ленивый в хорошем смысле: лучше потрачу час на автоматизацию, чем буду тратить пять минут в день вечно. Четвёртое, и это не про технику — я разрешаю проектам ждать. Не всё горит. Клиент написал в субботу — отвечу в понедельник, и мир не рухнет. Иллюзия что надо реагировать мгновенно выжигает быстрее всего. Ставлю границы, и оказывается что 90% «срочного» спокойно ждёт до утра. Никакой магии. Заметки, фокус, автоматизация, границы. Скучно — но именно поэтому работает годами.

#мнение Сейчас модно слово «вайбкодинг» — когда ты не пишешь код сам, а описываешь нейросети что хочешь, и она пишет. Вокруг
#мнение Сейчас модно слово «вайбкодинг» — когда ты не пишешь код сам, а описываешь нейросети что хочешь, и она пишет. Вокруг этого два лагеря. Одни кричат «всё, профессия мертва, любой школьник теперь программист». Другие — «это игрушка, серьёзное так не сделаешь, не смешите». Я каждый день работаю с AI в реальных проектах, поэтому скажу как есть, без истерики в обе стороны. Вайбкодинг реально ускоряет. То, на что раньше уходил день — накидать форму, разобрать чужой API, написать рутинный парсер — теперь занимает час. Это не маркетинг, это моя честная производительность. За последний год я стал делать заметно больше за то же время, и большая часть прироста именно отсюда. Но есть нюанс, который не видят оба лагеря. AI ускоряет того, кто и так умеет. Он как электроинструмент. Шуруповёрт в руках столяра — ускорение в разы. Шуруповёрт в руках человека, который не знает что такое шуруп — это просто способ быстрее испортить доску. Когда нейросеть выдаёт код, надо понимать правильный он или красиво-неправильный. Надо знать что спросить. Надо видеть где она тихо насажала багов, которые вылезут через месяц на проде. Поэтому «любой школьник теперь программист» — нет. Школьник теперь может быстро собрать что-то, что выглядит как работающее. Довести это до продакшна, который не падает и не сливает данные пользователей — всё ещё работа инженера. Моя профессия не умирает. Она меняет форму. Раньше ценность была в том, что я умею писать код руками. Теперь — в том, что я понимаю что и зачем строю, а инструмент в руках просто стал мощнее. И знаете что? Так интереснее.

#стори Самая опасная фраза в работе с клиентом — «давай по-простому, без наворотов». Звучит как подарок: меньше работы, меньш
#стори Самая опасная фраза в работе с клиентом — «давай по-простому, без наворотов». Звучит как подарок: меньше работы, меньше согласований. На деле за ней почти всегда прячется мина. Потому что «по-простому» у клиента и «по-простому» у разработчика — это два разных простых. Когда клиент говорит «простой бот, просто принимать заявки» — в его голове это и правда просто. Человек написал, заявка упала, всё. Но он не проговаривает то, что для него очевидно, а для меня нет. Что заявки надо складывать чтобы потом посмотреть. Что если человек написал ерунду — надо переспросить. Что в выходные отвечать не надо. Что нужно уведомление на телефон. Что заявки от существующих клиентов надо отличать от новых. Для клиента это не «функции», это просто «ну как иначе, это же очевидно». Я научился не радоваться слову «просто». Когда его слышу — наоборот, начинаю задавать вопросы. «А что происходит с заявкой после того как она пришла?». «А если человек напишет в три часа ночи?». «А куда вы смотрите чтобы увидеть все заявки за неделю?». Через десять минут такого разговора «простой бот» обретает реальные очертания, и они всегда сложнее изначальной картинки. Это не значит что клиент глупый. Это значит что он эксперт в своём деле, а не в разработке. Он видит результат, я вижу механику. Моя работа — не сделать буквально что попросили, а вытащить наружу то простое, которое он держит в голове как самоочевидное. Худшие проекты в моей жизни начинались словами «да там всё просто».

#стори Меня периодически спрашивают: «а вы студия или один работаешь?». Когда отвечаю что один — у некоторых клиентов мелькае
#стори Меня периодически спрашивают: «а вы студия или один работаешь?». Когда отвечаю что один — у некоторых клиентов мелькает сомнение. Студия же надёжнее, там процессы, там много людей, там не пропадёшь. Расскажу как это выглядит с другой стороны. Когда вы приходите в студию, вашим проектом занимается не «студия». Им занимается конкретный джуниор-разработчик, которого вы никогда не увидите. Над ним менеджер, который переводит ваши слова в задачи и часто переводит криво. Между вами и человеком, который реально пишет код, два-три слоя пересказа. Вы говорите «хочу чтобы кнопка была заметнее», менеджер пишет в таск «изменить UI», джуниор делает кнопку фиолетовой. Все при делах, результат не тот. Когда вы работаете со мной, вы говорите напрямую человеку, который пишет код. Я слышу не только что вы сказали, но и что вы имели в виду, потому что я же и в логистике вашей разбирался, и с вашим менеджером созванивался. Нет испорченного телефона. У одиночки есть и минусы, честно. Я не сделаю вам проект на тысячу человеко-часов за месяц — физически рук не хватит. Я могу заболеть, и тогда проект встанет. У студии есть запас прочности, которого у меня нет. Поэтому я честно говорю клиентам: если вам нужен энтерпрайз на сто экранов с командой поддержки 24/7 — идите в студию, это не ко мне. Если вам нужно решить конкретную бизнес-задачу быстро, по-человечески и без испорченного телефона — вот тут я сильнее любой студии. Выбор не «лучше-хуже». Выбор «под какую задачу».

#stack У меня крутится с десяток ботов на разных серверах. Раньше я узнавал что бот упал от клиента: «а чего не отвечает?». С
#stack У меня крутится с десяток ботов на разных серверах. Раньше я узнавал что бот упал от клиента: «а чего не отвечает?». Сейчас не узнаю — потому что они падают, но сами встают, и я даже не замечаю. Расскажу что для этого нужно, человеческим языком. Бот почти никогда не живёт один. Рядом база данных, иногда ещё пара служб. И вот первая беда: перезагрузился сервер — всё стартует одновременно, бот лезет к базе, а она ещё не успела проснуться. Бот падает. Его перезапускают — база всё ещё не готова — он снова падает. Получается петля, в которой он бьётся головой о стену. Лечится тем, что боту говорят: не стартуй, пока база реально не готова отвечать. Не «запущена» — а именно готова, это разные вещи. Вторая беда — бот просто не переживает сбой или ребут сервера и тихо остаётся лежать. Тут одна строчка настройки со смыслом: «упал — подними обратно сам; но если я остановил тебя руками — не воскресай». С ней бот сам встаёт после любой перезагрузки, а я сплю спокойно. Третья — данные. Хранилище легко настроить так, что после очередного обновления база окажется пустой или с битыми правами. Я один раз так потерял вечер, выясняя куда делись данные — оказалось, лежали не там, где я думал. Поэтому данные всегда живут в отдельном, «правильном» месте, которое переживает любую пересборку. Три вещи: дождись готовности базы, включи авто-подъём, правильно храни данные. Звучит банально, настраивается за полчаса — и закрывает почти все причины, по которым боты в малом бизнесе «вдруг перестали работать».

#stack FastAPI — то, на чём я делаю почти все свои бэкенды. Его хвалят за «асинхронность». Объясню что это, без терминов, на
#stack FastAPI — то, на чём я делаю почти все свои бэкенды. Его хвалят за «асинхронность». Объясню что это, без терминов, на одной картинке — и расскажу про ошибку, из-за которой я однажды полночи не спал. Представь кассу. Обычный сервер — это кассир, который ведёт одного человека от начала до конца: пробил, ждёт пока тот достанет карту, введёт пин, оплатит, упакует — и только потом зовёт следующего. Если у человека карта не считывается, вся очередь стоит и злится. Асинхронный сервер — это кассир, который, пока ты роешься в кошельке, успевает пробить товар следующему. Никто не ждёт впустую. Для сайта или бота это значит: сто человек обращаются одновременно, и всех обслуживают, не зависая на самом медленном. И вот главная ошибка. Если внутри такого «ловкого» кассира вставить одну операцию, которая всё-таки заставляет его замереть и тупо ждать — он замирает целиком. Не для одного человека. Для всех ста сразу. Сервер делает вид что быстрый, а по факту встал колом, и ты под нагрузкой ловишь необъяснимые тормоза. Самое коварное — на тестах этого не видно. Один ты сидишь — всё летает. Приходит реальная нагрузка — и проект ложится, хотя «вроде всё асинхронное». Лечится тем, что вообще все долгие операции внутри — запросы к чужим сервисам, к базе, к файлам — тоже должны быть «ловкими», а не блокирующими. Одно медленное звено убивает весь смысл. Звучит как мелочь. Но именно эта мелочь — причина половины «непонятных тормозов» на молодых проектах. Свою я выловил ночью на проде. Теперь проверяю первым делом.

#build Если ты дочитал до этого поста, у меня для тебя сюрприз. Канал, который ты читаешь, ведёт бот. Не я. Точнее, не совсем
#build Если ты дочитал до этого поста, у меня для тебя сюрприз. Канал, который ты читаешь, ведёт бот. Не я. Точнее, не совсем так. Тексты пишу я. Темы выбираю я. Картинки тоже я. Но между «написал черновик» и «появилось в канале» есть несколько ручных шагов, которые меня раздражали. Открыть телеграм. Найти черновики. Скопировать текст. Прикрепить картинку. Отформатировать. Выбрать день и время. Вспомнить что в среду уже был похожий пост, перенести на четверг. Я делал это руками первые недели. Потом понял что эта возня съедает у меня больше времени, чем сам процесс написания. Поэтому собрал бота-публикатора. Устроен он скучно и поэтому надёжно. Лежит обычный текстовый файл со списком постов: заголовок, текст, картинка. Я закидываю туда сразу штук пять-десять впрок, когда есть настроение писать. Дальше работает планировщик. В заданное время бот достаёт следующий пост из файла. Не публикует сразу — сначала присылает мне в личку: «вот пост, опубликовать?». С тремя кнопками — опубликовать, пропустить, отредактировать. Я смотрю с телефона. Устал и не хочу публиковать — жму «пропустить», бот молча отложит на следующий слот. Опечатка или хочу уточнить — жму «редактировать», прямо в чате присылаю новый текст, потом «опубликовать». Если всё ок с первого взгляда — сразу «опубликовать», и пост через секунду в канале с обложкой. Это не AI-автопостинг и не нейросеть, которая пишет за меня. Бот не сочиняет тексты, не выбирает темы, не редактирует. Он просто конвейер, который освобождает меня от рутины подготовки публикации. Авторство стопроцентно моё, контроль на каждом шаге тоже мой. Зачем рассказываю. Во-первых, я за прозрачность — если канал ведёт бот, читатели должны это знать. Во-вторых, это хороший пример того, что я называю «автоматизацией со смыслом»: не «свалим всё на нейросеть и пусть генерит», а «уберём рутину, оставив за человеком ценное — что писать и как». Кода в боте чуть больше четырёхсот строк. Стек банальный: Python, aiogram, планировщик, текстовый файл с постами. Если интересно как сделать такое у себя — могу собрать отдельный пост с разбором. Напишите в личку, если зайдёт. @beliaevd

#client Самый человеческий заказ за последний год пришёл вот так. Парень в личке пишет: «У меня мама продаёт украшения. Делае
#client Самый человеческий заказ за последний год пришёл вот так. Парень в личке пишет: «У меня мама продаёт украшения. Делает это давно, хорошо. Но у неё ещё и обычная работа — целый день занята, выматывается. А вечером начинается второй рабочий день: у неё 200+ чатов и групп в Telegram, WhatsApp, на Авито, где сидят покупатели. Появилась новая вещь — она садится после ужина и три-четыре часа копирует фото, описание, цену в каждый чат руками. Двести чатов. Каждый божий вечер. Я не могу больше на это смотреть. Сделаешь что-нибудь?» Двести чатов вручную после полного рабочего дня — от такого реально едет крыша. Делаем приложение. Не сайт, не бот — именно приложение, потому что маме привычнее открыть иконку на телефоне, а с ботами «там кнопки эти, я путаюсь». У приложения две половины, и вторая оказалась не менее важной чем первая. Первая — публикация. Мама нажимает «+», фотографирует прямо в приложении — кольцо, серьги, цепочку. Через секунду AI пишет описание: что за изделие, материал, к какому образу. Не нравится формулировка — «по-другому», текст переписывается. Дальше галочками выбирает куда отправить и жмёт «опубликовать». Через пятнадцать секунд товар в десятках мест одновременно. То, что занимало вечер, занимает пятнадцать минут. Вторая — CRM. Потому что после публикации в двухстах чатах начинают сыпаться ответы: «а размер есть?», «сколько стоит?», «беру». И раньше они тонули — пока пролистаешь все диалоги, половину покупателей потеряешь. Приложение собирает входящие со всех чатов и площадок в один список: вот вопросы, вот заказы, вот кому ответить. Мама работает не в двухстах окнах, а в одном экране. Сейчас в тесте, по ходу выясняется своё. Каждый мессенджер хочет своё: Telegram любит markdown и большие фото, WhatsApp — просто текст и сжатые картинки, MAX — свой API со своими правилами по тексту и вложениям. Под капотом это разные интеграции, склеенные одним «опубликовать» и одним общим входящим. Но главное — это не про оптимизацию. Это про возвращённый вечер. Когда у человека и так полный рабочий день, а потом ещё три-четыре часа механической возни по сотням чатов — приложение возвращает ему этот вечер. Ровно ради этого всё и затевалось.

#разбор Запускаю в канале рубрику, ради которой его и стоит читать тем, у кого своё дело. Правила простые. Вы присылаете мне
#разбор Запускаю в канале рубрику, ради которой его и стоит читать тем, у кого своё дело. Правила простые. Вы присылаете мне в личку любую рутину из своего бизнеса — то, на что тратите время и нервы. Формулировка свободная, по-человечески: «каждый день вручную свожу заказы из трёх мест в одну таблицу» или «трачу вечер, чтобы разослать прайс по клиентам». Я беру обезличенный пример — без названий и ваших данных — и разбираю в посте: можно ли это автоматизировать, как примерно, сколько стоит и стоит ли вообще. Зачем это вам. Во-первых, бесплатный разбор вашей конкретной задачи от человека, который этим живёт. Во-вторых, даже если вашу задачу не возьму в пост — вы увидите чужие разборы и узнаете в них свои процессы. Часто решение для «свести заказы в таблицу» подходит ещё к десяти делам. Зачем это мне, честно. Так я вижу реальные боли живого бизнеса — а это лучшие темы для постов и лучшее понимание, что людям нужно. Плюс иногда из такого разбора рождается проект. Всем хорошо. Один разбор в неделю, по пятницам. Что не войдёт — не пропадёт, вернусь. Первый кейс возьму из того, что пришлют после этого поста. Пишите задачу в личку @beliaevd — и посмотрим, можно ли это автоматизировать.

#build Иногда полезно делать чистую дичь. Без задачи, без заказчика, без бюджета — просто потому что идея кажется смешной. Зи
#build Иногда полезно делать чистую дичь. Без задачи, без заказчика, без бюджета — просто потому что идея кажется смешной. Зимой я собрал бота «Мамкин Трейдер». Концепт максимально простой. Подключаешь свой ключ Bybit, выбираешь сумму риска на сделку, жмёшь большую кнопку «Мне повезёт!». Бот делает абсолютно случайную сделку. Случайная пара из топ-20 крипты, случайное направление long или short, случайное плечо от единицы до десяти. И ждёт пока рынок что-то с этим сделает. Никаких индикаторов. Никакого технического анализа. Никаких сигналов из закрытых каналов. Чистый рандом, без претензий на стратегию. Идея пришла из наблюдения. Я общался с несколькими людьми, которые торгуют криптой, и заметил парадокс. Те, кто называет себя «трейдерами с системой», в итоге часто работают почти так же. Они смотрят в график, видят какую-то фигуру, чувствуют что «вот сейчас должно пойти», открывают позицию. Через час позиция в минусе, человек говорит «ну я неправильно понял сигнал». Через час в плюсе — «вот видишь, моя система работает». По сути это и есть рандом, только обёрнутый в нарратив. Мамкин Трейдер — это просто честная версия того же самого. Без самообмана. Ты подключаешься, понимая что это игра в орёл-решку. Если повезло — ну ок. Если не повезло — не вини бота, ты знал на что шёл. Технически бот — пол-вечера работы. aiogram для интерфейса, ccxt для взаимодействия с Bybit, sqlite для хранения истории сделок. Картинка-главное-меню с надписью «Мамкин Трейдер» и слоганом «Здесь нет места стратегии — только ты и судьба». Минимум кода, максимум юмора. Что я с этого получил. Во-первых, отличный мем-проект, который весело показывать. Во-вторых — напоминание, что код не обязан быть серьёзным. Между крупным клиентским проектом и следующим крупным клиентским проектом я могу сесть на вечер и сделать что-то бесполезное, но смешное. Это разгружает голову лучше любого отпуска. В-третьих — внезапно интересные разговоры. На двух последних встречах с клиентами, когда речь заходила «а что вы ещё делаете», я в полушутку упоминал Мамкин Трейдер. Реакция всегда одна и та же: сначала смех, потом «а это ведь честно про большинство трейдеров», потом мы возвращаемся к серьёзному обсуждению с лучшим контактом. Юмор, оказалось, неплохо продаёт серьёзные услуги.

#client В прошлом посте про мотохаб я писал про MVP бота — кнопка SOS, помощь на дороге, единая база мотоциклистов Екатеринбу
#client В прошлом посте про мотохаб я писал про MVP бота — кнопка SOS, помощь на дороге, единая база мотоциклистов Екатеринбурга. С тех пор прошло время, и вылезло то, чего на старте не было видно. Первая проблема — флуд. Когда у тебя в боте есть кнопка экстренной помощи, на которую при нажатии прилетает уведомление всем активным участникам сообщества, найдётся человек который начнёт её тестировать. «А что будет если нажать?». «А ещё раз?». «А пять раз подряд?». В первый день после запуска один пользователь нажал SOS восемь раз за минуту — просто проверял, действительно ли работает. Восемь раз весь чат получил уведомление о ложной тревоге. Поставил защиту: один SOS на пользователя в десять минут. Если в эти десять минут жмёт ещё раз — бот тихо игнорирует, человеку показывает «ты уже отправил, ждём подтверждения». Это убрало 95% мусора. Реальный SOS отправляется один раз, и человеку не до того чтобы спамить. Вторая проблема — боты-самозванцы. Кто-то с непонятными целями начал создавать аккаунты, вступать в бота, и я не понимал зачем. Не присылал SOS, не общался, просто висел в базе. На всякий случай добавил верификацию: чтобы получать алерты сообщества, нужно один раз подтвердить телефон через стандартную функцию телеграма. Кто не подтвердил — остаётся в боте, видит общую информацию, но в чувствительные рассылки не попадает. Это отрезало почти всех непонятных. Третья доработка не про безопасность, а про охват — мультимессенджерность. Часть аудитории мотохаба сидит не только в Telegram, но и в MAX (российский мессенджер, который растёт последний год). Поэтому того же самого бота развернули в MAX. Логика одинаковая: SOS, помощь, общая база. Хитрость в том, что один и тот же мотоциклист может писать SOS либо через Telegram, либо через MAX — а на стороне сервера это видится как один человек. Привязка через номер телефона: один номер — один профиль, не два. Главный урок, который я вынес из этих доработок, простой. Безопасность ботов начинается не с шифрования и не с защиты от взлома. Она начинается с защиты от обычного человека, который тыкает в кнопку много раз подряд. 95% всех проблем продакшна — это не атаки хакеров, это обычные люди в нестандартных сценариях. Если вы заранее подумали как ведёт себя бот когда пользователь жмёт кнопку 50 раз — у вас уже устойчивый продукт.

#польза Прежде чем заказывать бота, прогоните себя по короткому чек-листу. Он экономит главное — деньги на проект, который ок
#польза Прежде чем заказывать бота, прогоните себя по короткому чек-листу. Он экономит главное — деньги на проект, который окажется ненужным или преждевременным. Сохраните. Первое: есть ли понятный повторяющийся процесс. Можете в двух фразах описать, что должно происходить — клиент делает то, система отвечает это? Если не можете — рано, сначала опишите процесс словами. Второе: считали ли вы, сколько времени съедает ручная работа. Хотя бы грубо — столько-то часов в неделю на одно и то же. Без этой цифры непонятно, окупится ли бот, и не с чем будет сравнить результат. Третье: есть ли куда складывать данные. Заявки, клиенты, заказы должны где-то жить — пусть для начала простая таблица. Бот без места для данных — это половина решения. Четвёртое: готовы ли вы поддерживать. У любого работающего бота есть стоимость жизни: сервер, иногда доработки. Если рассчитываете «сделал и забыл навсегда» — так не бывает, заложите небольшой бюджет. Пятое: есть ли человек на нестандартное. Бот закроет типовое, но всегда найдётся «а у меня особый случай». Должен быть тот, кому бот передаст такой запрос. Бот не отменяет вас, он вас разгружает. Если на все пять ответили «да» — вы готовы, бот окупится. Если «нет» хотя бы на первом или третьем — сначала наведите порядок там, иначе бот ляжет поверх хаоса. Сохраните и пройдитесь по списку перед тем, как кому-то платить. А хотите — разберём ваши пять пунктов вместе, напишите @beliaevd.

#build Фитнес-клуб пришёл с типовым запросом: «нам нужно мобильное приложение». Запись на тренировки, расписание, профиль кли
#build Фитнес-клуб пришёл с типовым запросом: «нам нужно мобильное приложение». Запись на тренировки, расписание, профиль клиента, оплата абонементов. На созвоне они уже мысленно прикидывали бюджет миллиона на полтора и сроки месяца на четыре. Я выслушал и предложил другое. Не мобильное приложение, а Telegram Mini App. Сэкономим миллион и три месяца, закроем те же задачи. Объясню разницу простыми словами. Мобильное приложение — это отдельная программа, которую человек скачивает себе на телефон из App Store или Google Play. Чтобы это случилось, у вас должно быть две независимых разработки (под iOS и Android, или хитрая кросс-платформа), вы должны пройти ревью в обоих магазинах, и каждое обновление снова идёт на ревью. Если завтра вы захотите поменять кнопку — пользователи увидят это через несколько дней, и только те кто обновится. Telegram Mini App — это веб-страница, которая открывается прямо внутри телеграм-бота. Пользователь жмёт кнопку в чате, у него на весь экран разворачивается ваше приложение. Под капотом это обычный сайт, но визуально он выглядит как нативное приложение и ведёт себя так же — кнопки реагируют, скролл плавный, есть доступ к телеграм-функциям типа платежей. Никакого скачивания. Никаких сторов. Никакого «у меня заполнен телефон, не могу установить». Обновления вы катите как на обычный сайт — изменил, задеплоил, через минуту видят все. Для большинства задач малого бизнеса это закрывает 90% потребностей. Запись на услугу, профиль, оплата, расписание, новости, программа лояльности — всё ложится в TMA отлично. Большое мобильное приложение действительно нужно, когда вам критична работа без интернета, серьёзная работа с камерой или геолокацией, фоновые процессы. У фитнес-клуба ничего из этого нет — клиенту просто нужно записаться и заплатить. Сделал за две недели. Клиент сэкономил миллион рублей и три месяца ожидания. Я закрыл проект быстро и получил красивый кейс, который сейчас продаю остальным заказчикам. С тех пор я по умолчанию предлагаю TMA всем, кто приходит с «нам нужно приложение». Девяти из десяти этого хватает. Десятому действительно нужно полноценное мобильное приложение — и я говорю ему правду, что под его задачи TMA не подойдёт. Самая полезная инженерная привычка — это не «уметь сделать сложное», а «понимать когда оно не нужно».

Пост в этом канале выходит через бота — но это не автоген. Каждую тему я планирую сам: о чём писать, в каком порядке, что сейчас важно показать. Дальше бот присылает мне карточку с готовым постом — и я вычитываю каждый перед выходом. Что-то правлю руками, что-то переписываю, что-то выкидываю. В канал уходит только то, что я одобрил. Бот отвечает за дисциплину — расписание и очередь, чтобы посты выходили стабильно, а не «когда дошли руки». За смысл отвечаю я. В комментариях и личке тоже живой человек — отвечаю сам. Как устроен этот конвейер, можно потрогать руками: @Beliaev_tgcontent_bot → /demo Такой же под ваш канал — @beliaevd

#мнение Я зарабатываю на автоматизации и при этом регулярно отговариваю от неё клиентов. Потому что есть вещи, которые автома
#мнение Я зарабатываю на автоматизации и при этом регулярно отговариваю от неё клиентов. Потому что есть вещи, которые автоматизация портит, а не улучшает. Вот три, на которые я говорю «не надо». Первое — живое общение там, где оно и есть продукт. Если к вам идут за человеческим отношением — мастер, врач, репетитор, маленький бренд с душой — не сажайте на первую линию бота, который бодро сыплет шаблонами. Клиент чувствует подмену мгновенно. Автоматизируйте всё вокруг — запись, напоминания, оплату — а само общение оставьте себе. Второе — то, что случается редко и каждый раз по-разному. Задача раз в месяц, всегда с нюансами, не окупит ни разработку, ни поддержку. Проще сделать руками за десять минут. Автоматизировать редкое и нестандартное — классический способ потратить сто тысяч, чтобы сэкономить полчаса в год. Третье — процесс, который вы сами ещё не поняли. Если у вас «как пойдёт» и нет устоявшегося порядка — автоматизировать нечего. Зальёте в код хаос — получите быстрый хаос. Сначала отладьте процесс руками до состояния «делаем всегда вот так», и только потом несите в автоматизацию. Общее правило: автоматизация усиливает то, что уже работает, и закрепляет то, что уже понятно. Она не наводит порядок и не заменяет душу. Если в основе бардак или живой контакт — сначала разберитесь с основой. Поэтому когда приходят с «давайте всё заавтоматизируем», я первым делом ищу, что автоматизировать НЕ надо. Это экономит клиенту деньги, а мне репутацию.

#client Клиент пришёл с заказом: бот для премиальной студии пилатеса. Запись на тренировки, оплата YooKassa, профиль. Всё штатно. Я уже мысленно собирал стандартную схему: aiogram + reply-кнопки с эмодзи, inline-клавиатуры с галочками и стрелочками, привычный набор. На созвоне клиент сказал одну фразу, которая всё поменяла: «Только сразу прошу — ни одного эмодзи. Нигде. Ни в кнопках, ни в текстах, ни в логах». Я сначала подумал что это каприз. Потом сел делать — и понял что это не каприз, а правильно сформулированный бренд. Открой любой телеграм-бот из туториала: «✅ Запись подтверждена!», «💎 Premium», «🚀 Поехали!». Это язык маркетплейса, барахолки, инфоцыгана. Когда ты убираешь эмодзи — голый текст должен сам по себе быть нормальным. Если он не справляется — значит он плохо написан, и эмодзи просто маскировали это. «ЗАПИСАТЬСЯ» — кнопка. «🔥 ЗАПИСАТЬСЯ 🔥» — это не кнопка, это объявление на столбе. Пришлось перепридумать каждую строчку. Не «❌ Отмена» — а просто «Отмена». Не «📅 Мои записи» — а «Мои записи». Текст после отправки телефона: не «🎉 Отлично! Теперь ты в системе!», а «Спасибо. Записан.» Точка. Бот получился странно тихий. Сдержанный. И — внезапно — выглядит дороже, чем все остальные мои боты. Хотя кода там столько же. С тех пор я смотрю на эмодзи в продукте как на сахар в еде. Иногда уместно, чаще — заполнитель пустоты. И когда заказчик в следующий раз просит «сделай поярче, поэмоджейней», я уже знаю что он на самом деле имеет в виду «у меня слабый бренд, замаскируй».