Правда о вайб-кодинге: сервис в прод за месяц за $50
Всем привет!
Меня зовут Сергей Пронин, и я в IT уже почти 20 лет. Моя последняя должность была VP of Product в Percona, где я занимался open-source базами данных, cloud-native и всем, что с этим связано.
Конец 2024-го и начало 2025-го ознаменовались безумным взлётом различных AI-агентов и ассистентов для разработки. Cursor, Replit, Lovable – все они росли нереальными темпами и выходили на миллионный годовой доход (ARR) буквально за считанные месяцы. Тогда же появился и новый термин — вайб-кодинг — который, правда, сразу всем не понравился.
В апреле 2025-го в моей карьере начались перемены, и мой этап в Percona подошёл к концу. Следующий проект уже маячил на горизонте, но появилось свободное время. А куда его потратить, как не на изучение новых технологий? Тут я и решил проверить, на что в реальности способен этот самый вайб-кодинг.
В качестве вдохновения взял проект onlineornot.com — систему гео-распределённого мониторинга. Мне нравится, что её в одиночку развивает Макс Розен (Max Rozen). Он активно делится своими успехами и факапами в блоге, рассказывая, каково это — строить SaaS-проект в одиночку.
С моим бэкграундом в инфраструктуре и построении платформ, я решил создать нечто похожее. Так появилась Pingera — платформа мониторинга для внешних сервисов и IT-контура. То, что начиналось как пет-проект, быстро выросло в небольшой, но полноценный бизнес. Буду рад, если попробуете. Не спешите закрывать статью - она не про проект.
Тут я расскажу, как мне удалось запустить платформу за месяц, используя вайб-кодинг, на какие грабли я наступил и как продолжаю развивать проект.
Теория: Что такое вайб-кодинг?
Вайб-кодинг — это написание кода через общение с LLM обычным человеческим языком. Однако просто попросить ChatGPT или Google Gemini написать код уже недостаточно. Хочется, чтобы сразу создались необходимые файлы, Git-репозиторий, настроилась база данных и прочее. Для этого и появились AI-агенты вроде Replit: они обещают, что вы забудете о сложностях, связанных с разработкой, и от вас потребуются только идеи.
Я понимал, что звучит это слишком хорошо, поэтому и ожидания были соответствующими.
Выбор агента
В апреле я выбирал между тремя основными инструментами:
Cursor — это, по сути, IDE на стероидах (на базе Anthropic Claude). Он умеет интегрироваться с базами данных, но «из коробки» не предоставлял готовых решений. А мне хотелось получить результат быстро.
Lovable, на мой взгляд, лучший агент для генерации мокапов и UI-интерфейсов, то есть фронтенда. Но с бэкендом и даже простейшей бизнес-логикой мне не удалось его подружить. К тому же, он по умолчанию использует Supabase, которую я не планировал использовать в продакшене.
А вот Replit мне понравился больше всего. У него, пожалуй, самое большое количество готовых интеграций с различными сервисами и провайдерами, что сразу даёт много преимуществ. Для написания кода можно использовать как Claude, так и GPT (в режиме ассистента).
Агент против Ассистента
У всех продуктов для вайб-кодинга обычно есть два режима.
- Агент не просто пишет код, но и сам протестирует его, попробует исправить ошибки, установит нужные пакеты.
- Ассистент же просто генерирует код и отдаёт его вам на ревью.
Так вот, моё мнение: агенты пока очень далеки от идеала и не пригодны для постоянного использования. Они вносят слишком много изменений, и чаще всего у них не получается сделать то, что нужно. А если получается, нужно быть готовым, что что-то неожиданно сломается.
Моя рекомендация: создавайте новое приложение с помощью Агента, чтобы получить первоначальную структуру, а дальше разрабатывайте, используя только Ассистента.
Проблемы, с которыми я столкнулся
1. Не надо писать полную спецификацию
Сначала я думал, что AI-агенты — это такие продвинутые джун-программисты. То есть на вход можно отдать детализированную спецификацию, а на выходе получить готовое приложение. Это заблуждение стоило мне нескольких итераций и откатов кода.
Проблема в том, что Агент может верно прочесть вашу спецификацию, но потом усложняет всё в 10 раз (10х, ага). В результате вы просите построить уютный дом, а получаете перевёрнутую Саграда Фамилию.
Вывод: не пишите полную спецификацию Агенту, двигайтесь очень маленькими шагами. Например, вместо детального описания всего приложения и всех фич, начните только с формы логина и бэкенд-части для неё.
2. Приложение-монолит
Окей, спецификацию я убрал. Я попросил Агента создать форму логина и описал её. В результате он сразу создал фронт, бэкенд и базу данных — всё в одном Git-репозитории, в одном пакете. Несмотря на обещания Replit о масштабировании и развёртывании этого в облаке, я понимал, что в проде такой монолит не взлетит.
Вывод: Если вы создаёте приложение, которое планируете развивать, а не просто валидируете идею, то обязательно продумайте архитектуру заранее. Разбивайте ваше приложение на части. Представьте, что у вас несколько продуктовых команд, где каждая отвечает за свой кусок продукта: API, фронтенд, CLI и так далее. Естественно, вам нужно будет продумать, как эти части будут общаться друг с другом.
3. Ограниченный контекст
Большие языковые модели имеют ограничения по размеру кода, который они могут «держать в голове». Когда ваш проект вырастет до нескольких тысяч строк и десятков файлов, вы столкнётесь с тем, что уже недостаточно просто сказать Агенту или Ассистенту, какую фичу надо сделать. Это может сработать, но он может начать писать код заново (хотя он уже есть) или редактировать не тот файл.
Тут надо подсказывать Агенту, в каких файлах или директориях смотреть. В большинстве AI-приложений это делается через символ "@", когда вы явно добавляете определённый файл в контекст запроса.
4. Зацикливание на проблеме
Это, наверное, самая частая проблема, с которой сталкиваются вайб-кодеры. Агент пытается создать фичу или пофиксить баг, но у него не получается. Спустя N итераций вы замечаете, что он пробует то же самое решение, что и несколько шагов назад.
Тут помогают подсказки, которые возвращают Агента в реальность. Нужно показать ему, что он уже пробовал, и попросить решить задачу иначе, проявить креативное мышление и так далее. Ещё можно попробовать откатиться на несколько шагов назад и сформулировать проблему или задачу по-другому.
5. Качество кода
Агенты натренированы на огромном объёме кода, и у них действительно есть представление о современных подходах и архитектуре. Но я вас уверяю, некоторые их решения вас сильно удивят.
Например:
- Вместо того чтобы переиспользовать уже существующую функцию или класс, агент напишет всё заново.
- Вместо того чтобы использовать известную и проверенную библиотеку, агент решит реализовать её функциональность с нуля (реже, но бывает).
Частично это можно списать на ограничения контекста (он просто "не видит" всего вашего кода). Но основная причина, на мой взгляд, кроется в системе их вознаграждений: цель агента — дать вам результат здесь и сейчас, создать "красивую картинку" или завершить задачу, не задумываясь о масштабируемости или производительности в долгосрочной перспективе.
Что помогает? Чётко описывайте ограничения. Не забывайте давать агенту конкретные инструкции: "Используй только функцию @existing_function" или "Не создавай свою реализацию, а используй библиотеку requests". Подсказки и ограничения — ваши лучшие друзья в работе с AI-агентами.
Как я добавляю новые фичи
Вы создали своё приложение, и оно работает. Теперь хочется добавить новую фичу. Я уже говорил, что Агенты не очень хорошо работают с длинными спеками. Но я использую ИИ для написания спек и фаз в них:
- Описываю фичу, которую хочу получить. Объясняю, что уже есть в приложении.
- Прошу не писать код, а предложить архитектуру для этой фичи.
- Затем прошу Агента, который отвечает за бэкенд, взять эту архитектуру и, без написания кода, подробно описать, как бы он это внедрил в бэкенде.
- То же самое делаю с другими "Агентами" (например, для фронтенда, CLI и т.д.).
Важно просить Агентов описывать шаги по фазам. Например, начать с изменения модели данных, потом создать API-endpoint, написать тесты и прочее.
И только после этого я прошу их писать код: "Вот тебе спека — @my-super-spec-file, там есть несколько фаз. Начни писать код для фазы 1."
Я прохожусь по всем фазам и всем "Агентам", фиксируя проблемы на каждом шаге. Это позволяет держать процесс под контролем и не давать AI уводить разработку в дебри.
Идём в прод: От Dev до Production за один день
Я создавал Pingera, ориентируясь на российский рынок. Для меня было критически важно, чтобы приложение и данные хостились в России. Поэтому предложение Replit по хостингу через их "волшебную кнопку" мне не подходило. Впрочем, для dev-среды оно работает отлично.
Тут, конечно, сказался мой предыдущий опыт: я сразу планировал запускать приложение в Kubernetes-кластере. Для базы данных — PostgreSQL, для key-value хранилища — Redis.
Для развёртывания всей этой кухни я снова обратился к агенту. И тут он справился на удивление хорошо:
- Создал билд-скрипты и Docker-файлы.
- Сгенерировал YAML-манифесты для Kubernetes.
- Написал Terraform-манифесты для развёртывания всей инфраструктуры (k8s-кластер, базы данных и прочее).
Я разворачивался сразу в двух облаках — Timeweb Cloud и Яндекс Облаке. Удивился, насколько агент осведомлён о существующих API, функционале и даже ограничениях этих провайдеров.
В итоге, от настроенной dev-среды до полностью автоматизированного прода я дошёл всего за один день.
Финансы: Сколько стоит вайб-кодинг
Все AI-сервисы для разработки предлагают бесплатные тарифы. Вы начинаете, пробуете, получаете красивую картинку, но ничего не работает. Пробуете ещё раз, и тут у вас заканчиваются кредиты. Вы не сдаётесь, оплачиваете минимальный тариф, и дело идёт лучше, но всё равно не идеально. И вот вы уже оплачиваете больше кредитов. Всё. Вы - вайб-кодер.
Неудивительно, что эти сервисы растут с безумной скоростью. Но ещё удивительнее, что их рост продолжается.
Как я уже говорил, для написания фич я почти не использую режим Агента, а работаю с Ассистентом. Каждый вызов Ассистента стоит 5 центов. Он может написать одну строчку или тысячу, цена от этого не меняется.
В день я обращаюсь к Ассистенту от 20 до 70 раз. В месяц получается около 1000 запросов, что обходится мне примерно в $50. Это, конечно, несоизмеримо дешевле, чем нанимать разработчика. И это я ещё скромничаю — есть ребята, которые тратят сотню-другую долларов в месяц, и для них это всё равно выгодно.
Заключение
На знакомство с Агентом у меня ушло всего несколько дней. Первое рабочее приложение я получил через пару дней, а уже через неделю была готова следующая, переписанная с нуля итерация. Через три недели я выкатил первую рабочую версию в прод.
Основной вопрос, который я себе задаю: смог бы я создать Pingera без AI-агента за такой короткий срок? И ответ — нет.
Страдает ли при этом качество кода? Где-то да (но, как я писал, эту проблему можно решать).
Скорость разработки и добавления новых фич не зависит напрямую от количества кода, но очень сильно зависит от количества компонентов и сервисов, которые эта фича затрагивает. Соединение всех этих точек, в купе с размером контекста LLM, накладывает определённые ограничения на работу с агентом.
Но для меня использование AI-агента стало настоящим открытием и инструментом, который может превратить мои идеи в реальность с невероятной скоростью. Явно быстрее, чем если бы это делал я сам. А если не сам, то выходит намного дороже.