Завайбкодили за два вечера, доводили полгода: что отделяет ИИ‑прототип от production

С виду даже самый простой проект, который можно «запромптить» в пару подходов, содержит десятки подводных камней, из‑за которых его нельзя назвать production‑ready. В этой статье я расскажу, с какими проблемами столкнулась моя команда при разработке сервиса «Запомни это» (ankigo.ru) с помощью нейросетей, почему «два вечера» превратились в полгода и как мы закрывали пробелы, которые ИИ закрыть не смог.
Как легко недооценить проект
Многие знакомы с методом интервальных повторений и Anki‑карточками (хороший разбор есть здесь). Я сам адепт подхода: готовлюсь с карточками к собеседованиям и учу английский.
Но удобной площадки для этого мне не хватало: официальное приложение для iOS платное, веб‑версия аскетична, а часть зарубежных аналогов открывается только через VPN. Решение казалось очевидным: мы крутые скилловые инженеры, что нам стоит написать CRUD для карточек и один эндпоинт для режима изучения? Тем более в век ИИ.
Стек выбрали быстро:
бэкенд: Django + DRF;
фронтенд: Vue + TypeScript;
мобильное приложение: сборка через Capacitor.
Срок обозначили в два вечера под пивко.
Ожидание и реальность
Спойлер: разработка заняла почти полгода. Ядро проекта (карточки, колоды, алгоритм повторений, авторизация) нейросеть действительно помогла собрать примерно за два месяца. Но между «ядро работает» и «продукт можно показывать людям» лежит пропасть, и именно в ней прошли оставшиеся четыре месяца.
Ниже разберу три проблемы, которых не ждёшь, когда решаешь «быстро завайбкодить проект».
Проблема 1. Дизайн после нейронки
Первое, что бросается в глаза, это дизайн. Нейросеть оставляет типовую «базовую» вёрстку, которую узнаёт любой, кто хоть раз открывал сгенерированный лендинг. А промптом «добавь маскота дельфина» можно не то что рассмешить, а по‑настоящему испугать новых пользователей.
Отдельного дизайнера в команде нет, но и оставлять нейрослоп (тем более с таким маскотом) не хотелось. Мы выбрали гибридный подход:
Взяли за референс интерфейс Duolingo через Refero, где можно получить design.md с описанием паттернов популярных продуктов.
Вручную подобрали цветовую гамму под наш проект и скормили её нейросети вместе с референсом.
Для маскота сгенерировали стикерпак для Telegram (ссылочка на пак) и разложили разные эмоции дельфина по страницам. Получилось достаточно живо.

Проблема 2. SEO о котором нейросеть не думает.
Когда дизайн был готов, всплыла новая проблема: естественного трафика нет. Нейросеть концентрируется на коде и лучших практиках разработки, но не на том, как сайт будет индексироваться поисковиками и какой текст на нём будет размещён. У нас был SPA на Vue, на котором поисковику по сути нечего было индексировать.
Первым делом пришлось ответить на вопрос: какой контент вообще может быть полезен для индексации? Ответили так:
— завели блог, в котором ведём новости и описываем доработки: это регулярно обновляемые страницы с живым текстом;
— сделали колоды карточек публичными и добавили к ним релевантные описания: каждая колода стала отдельной индексируемой страницей.
Как итог нейросеть упустила страницы которые реально ценны для SEO индексации, оставив только лендинг.
Проблема 3. Логи и отслеживание инцидентов
Самой острой проблемой стала отладка багов и инцидентов на проде. Несмотря на лучшие практики, которые уже зашиты в Claude и в популярных наборах скиллов (например, superpowers), нейросеть так и не догадалась добавить структурированное логирование и тем более не задумалась о том, как логи собирать и анализировать.
Более того, когда я напрямую попросил решить вопрос со сбором логов, нейросеть не учла, как приложение деплоится, и предложила писать в файл. Решение имеет право на жизнь, но приложение крутится в Docker, а в контейнерах собирать логи из stdout сильно предпочтительнее, чем из файлов: не нужно монтировать тома, следить за ротацией и терять логи при пересоздании контейнера.
В итоге пайплайн собрали руками:
Django (JSON-логи в stdout)
│
▼
Docker json-file log driver
│
▼
Vector (парсинг JSON, обогащение полями сервиса и пользователя)
│
▼
VictoriaLogs (хранение и полнотекстовый поиск)
│
▼
Grafana (дашборды и алерты)А вот дашборд в Grafana, который мы используем для анализа событий:

На практике, особенно полезным оказлось использование экспорта логов в csv (JavaScript обработчик настроенный на кнопку с помощью плагина Buisness Text) и спецфильтр по всем полям. Прикладываю json, на случай если пригодиться.
Выводы о «нейромагии»
На практике нейросеть действительно ускоряет разработку и помогает быстрее разобраться в незнакомых областях. Но без знаний и опыта невозможно сделать решение, которое гарантирует пользователям бесперебойную работу и удобный интерфейс.
Что мы вынесли из полугода работы:
Ядро проекта нейросеть пишет быстро, обвязку не пишет вообще. Дизайн, SEO, логирование, мониторинг остаются на человеке, потому что их нет в промпте «сделай сервис».
ИИ решает задачу так, как её сформулировали. Не сказали про Docker, получили логи в файл. Не сказали про поисковики, получили сайт без индексируемого контента.
Технический кругозор определяет результат. Нейросеть не знает, чего вы не знаете. Чем шире опыт команды, тем больше «неочевидных» требований попадёт в задачу до запуска, а не после.
Контроль над тем, что есть и что должно быть, пока остаётся за человеком. И от того, насколько широк ваш технический кругозор, зависит, какое приложение вы получите в результате.
Если у вас есть свой опыт доведения «завайбкоженного» проекта до прода, делитесь в комментариях: интересно, какие грабли я не упомянул.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.