


Паша Молянов: за 40 часов собрал телеграм-бота для нарезки картинок на эмодзи и заработал 90 000 рублей
В кейсе рассказываем, как предприниматель с небольшим опытом в программировании собрал телеграм-бота для нарезки картинок на эмодзи. От идеи до первой работающей версии прошло 10 минут: Паша скинул скриншот в Cursor, надиктовал задачу голосом, и бот заработал. За три месяца в нем зарегистрировались 12 000 пользователей, 207 из которых оплатили подписку на общую сумму 90 000 рублей. Всего на разработку ушло около 40 часов, при этом код руками не писался ни разу — только промпты голосом и текстом.
Опыт с нейросетями
До лета 2024 года я никогда не программировал по-серьезному. В университете учился на программиста, в школе ходил на кружок, но все это было на отвали и без реальных проектов. Я мог прочитать чужой код и примерно понять, что он делает, но сам ничего не писал.
В июне я установил Cursor, потому что стало интересно, как работает вайбкодинг. Попробовал собрать что-то простое, и оно заработало. Это затянуло: я начал экспериментировать, пробовать разные задачи, разбираться, почему одни промпты работают лучше других. К октябрю у меня уже было понимание, как формулировать задачи для нейросети и чего от нее ожидать. С этим пониманием я и взялся за бота.
Присоединяйтесь к Нейроцеху — внутри ещё больше полезных гайдов. А ещё вебинары, уютное комьюнити, мастермайнды и всё, чтобы нейросети работали на вас, а не за вас.
Утренний кофе, пост в телеграме и 10 минут до первой версии
Идея появилась случайно. Утром я пил кофе и листал Телеграм. Попался пост, в котором картинка была собрана из эмодзи-пака. Выглядело интересно: я такого раньше не видел и решил скинуть в рабочий чат, чтобы попробовать так же оформлять посты на клиентских проектах.

Пока скидывал, подумал: а ведь вместо того чтобы резать картинку в Фотошопе вручную, это можно сделать скриптом. А скрипт можно навайбкодить.
Я сделал скриншот поста, закинул в Cursor и надиктовал задачу что-то вроде:
Я увидел в Телеграме, как картинка собирается из эмодзи-пака. Хочу бота, в которого присылаешь картинку, а он ее режет на эмодзи. Пойди изучи, какой должен быть размер, формат, как это работает в Телеграме, и сделай.
Cursor написал план. Я посмотрел, все выглядело логично, и дал ему работать. Через несколько минут запустил бота, отправил картинку, она порезалась. От идеи до работающей версии прошло минут десять. Правда, версия была сырая, и с ней почти сразу начались проблемы.

Телеграм режет эмодзи по-своему — нейросеть не справилась, пришлось думать самому
Сырую версию я допиливал еще день. Нужно было убрать очевидные баги, написать нормальные тексты для интерфейса, добавить базу данных, чтобы бот запоминал пользователей и считал их генерации. Когда довел до рабочего состояния, закинул бота в свой телеграм-канал и его сразу стали тестировать
Тут и вылезла главная проблема. Когда пользователи собирали картинку из эмодзи, части изображения наслаивались друг на друга и появлялись полосы. В комментариях начали жаловаться, и сначала я думал, что бот глючит.

Чтобы разобраться, я начал вручную резать картинки в Фигме и создавать из них эмодзи-паки. Оказалось, что проблема не в боте. Телеграм сам так отображает эмодзи, когда их ставишь рядом. Я полез обсуждать это с нейронкой, но она предлагала решения, которые не работали: поменять формат, сжать картинку, увеличить или уменьшить разрешение. Я перепробовал все варианты, и ни один не помог.
Тогда я начал думать сам. В Фигме я сдвигал границы нарезки по одному пикселю и смотрел, что получается. Эмодзи в Телеграме должны быть квадратными, 100 на 100 пикселей. Бот так и резал картинку, но при сборке квадраты налезали друг на друга. В какой-то момент я подумал: а что если резать не впритык, а оставлять зазор?
Идея сработала. Я добавил паддинг (отступ): бот стал резать картинку на прямоугольники 90 на 100 пикселей, а потом добавлять по 5 прозрачных пикселей сверху и снизу. На выходе получается такой же квадрат 100 на 100, но с пустым пространством по краям. Телеграм отображает его с меньшим наложением и картинка собирается почти без наслоений.

Я объяснил этот алгоритм Курсору, и он реализовал его в коде. Проблема почти решилась, но потом выяснилось, что на телефоне картинка отображается иначе, чем на компьютере. Универсального решения я не нашел, поэтому просто добавил в настройки бота выбор размера паддинга. Теперь каждый пользователь может подстроить его под свое устройство.
Оплату прикрутил за день — скинул документацию и сказал «я ничего не понимаю»
Когда в боте набралось полторы тысячи пользователей, я решил попробовать сделать платную версию. Не ради заработка, а ради опыта: мне было интересно, как вообще устроен процесс приема платежей в телеграм-ботах.
Я скинул в Курсор документацию CloudPayments и написал:
Я вообще ничего в этом не понимаю. Изучи все и расскажи, что надо сделать
Курсор изучил документацию, сам настроил вебхук-сервер и сказал мне, какие галочки включить в личном кабинете CloudPayments и какие данные ему передать. Я сделал все по инструкции, дал ему API-ключ, и оплата заработала. С технической частью проблем не было вообще.

Сложнее оказалось продумать логику. Что делать, если человек начнет платить и передумает? Что если у него уже есть подписка «Макс», а он хочет купить «Про»? Как правильно считать реферальные бонусы?
Курсор предлагал варианты, но они мне не нравились. Поэтому я сам продумывал каждый сценарий, с помощью Курсора загонял это тестовый сервер и смотрел, как это работает с точки зрения пользователя. Потом описывал нужное поведение и отдавал Курсору на реализацию.
Вместе с оплатой я добавил в бота возможность делать видео и гифки. На все вместе ушло около десяти часов.
Код-ревьюер нашел 20 уязвимостей — пришлось рефакторить
Бот работал и приносил деньги, но иногда вел себя странно. Нажимаешь несколько кнопок подряд, и он зависает. К этому моменту я уже перешел с Курсора на Claude Code по рекомендации из Нейроцеха. Я попробовал и понял, что инструмент действительно удобный, поэтому все дальнейшие доработки я делал уже в нем.
Я закинул описание проблемы в Claude Code и спросил, что не так. Он посмотрел код и сказал, что дело не в конкретном баге: там в целом все написано криво, некоторые функции нужно полностью переписать. Мы составили план и начали рефакторить.
Примерно тогда же я наткнулся на Гитхабе на интересный подход. Один разработчик рассказывал, что использует отдельного субагента для проверки кода, такой код-ревьюер, который ищет ошибки и уязвимости. Я сделал себе такого же и прогнал через него своего бота.
Код-ревьюер начал выдавать одну проблему за другой: тут могут взломать сервер, тут база данных хранится небезопасно, тут злоумышленник может получить доступ к боту и рассылать спам всем пользователям. Всего он нашел 20 уязвимостей.
Я составил по каждой план исправления и пофиксил все по очереди. Потом прогнал код через ревьюер еще раз, чтобы убедиться, что ничего не пропустил. На рефакторинг и закрытие уязвимостей ушло два дня в фоновом режиме: занимался этим между другими делами. После этого бот стал работать стабильно, и с тех пор я его почти не трогаю.
12 000 пользователей, 90 000 рублей и 40 часов работы
Бота я запустил первого октября 2025 года, платную версию добавил пятнадцатого. На момент выхода этого кейса прошло три месяца.
За это время в боте зарегистрировались 12 000 пользователей. Каждый день приходит по 50–70 новых человек, и это органический рост. Я купил пару платных реклам, несколько раз упомянул бота в своем телеграм-канале, написал статьи на Пикабу и VC. Но основной поток идет сам по себе: люди находят бота, пользуются, рассказывают другим.
Платных подписок продалось 207 штук на общую сумму 90 000 рублей. Получается примерно по 20 тысяч в месяц. Для проекта, который я сделал между делом за утренним кофе, это неплохо.

Если сложить все часы работы над ботом, получится около 40. Десять минут на первую версию, день на доработку до полноценного бесплатного продукта, десять часов на оплату и видео, два дня на рефакторинг, плюс мелкие правки по ходу. При этом я ни разу не писал код руками. Все делал промптами: либо надиктовывал голосом, либо описывал текстом.
Главный навык — задавать вопросы, пока не поймешь
Когда я делал свой первый проект полгода назад, я работал в режиме болванчика. Кидал случайные запросы в Курсор, не пользовался Гитхабом, бэкапы делал вручную в папку, работал в одном чате, который постоянно затупливал и ломал код. Тогда мне просто повезло, что что-то получилось.
За эти полгода я перестал надеяться на везение и начал разбираться, что происходит. Главное, что изменилось: я стал задавать вопросы. Не просто принимать то, что выдает нейросеть, а спрашивать «почему», «зачем», «как еще можно сделать». Нейросеть отвечает, я снова спрашиваю. И так до тех пор, пока не пойму.
Например, я знал, что разработчики используют Гитхаб для хранения кода, но понятия не имел, как им пользоваться. Я так и написал Claude Code: «Хочу начать пользоваться Гитхабом. Никогда в жизни этого не делал. Объясни, что мне нужно, как это работает и зачем». Он объяснил, я сделал по инструкции. Потом захотел, чтобы бот работал не локально, а на сервере. Снова написал: «Я ни разу этого не делал, расскажи как». И так с каждой новой темой.
В этом смысле нейросеть оказалась идеальным учителем. Когда я в университете писал диплом, я задалбывал вопросами друга из Майкрософта. В какой-то момент он меня мягко послал. Нейросеть же так не сделает, ее можно забрасывать вопросами бесконечно, и она будет терпеливо объяснять.
Но это работает только если тебе действительно нужно понять, а не просто получить результат с минимальными усилиями. Если ты не пытаешься разобраться, как что устроено, то так и останешься болванчиком, которому иногда везет.
В Нейроцехе узнал про скиллы и планирование — это изменило подход к разработке
Многие подходы к вайбкодингу я узнал из Нейроцеха. Не только оттуда, конечно: я читаю Реддит, сижу на Гитхабе, смотрю Ютуб, подписан на разных людей в Телеграме. Но Нейроцех стал одним из главных источников практических советов, которые я реально применяю. Тот же переход на Claude Code случился после того, как резиденты начали про него рассказывать в чате. Они же подсказали про скиллы в Клоде.
Самое важное, что я понял за время работы с нейросетями: перед любой задачей нужно составлять план. Если задача маленькая, достаточно прогнать ее в режиме планирования. Если большая, лучше написать подробное техзадание в отдельном MD-файле. И прежде чем начинать делать, прогнать этот план через несколько сессий Claude Code, чтобы он подтвердил: да, это сработает, да, это не сломает то, что уже есть. Только после этого приступать к реализации.
Присоединяйтесь к Нейроцеху — внутри ещё больше полезных гайдов. А ещё вебинары, уютное комьюнити, мастермайнды и всё, чтобы нейросети работали на вас, а не за вас.