Привет, Хабр!

С виду даже самый простой проект, который можно «запромптить» в пару подходов, содержит десятки подводных камней, из‑за которых его нельзя назвать production‑ready. В этой статье я расскажу, с какими проблемами столкнулась моя команда при разработке сервиса «Запомни это» (ankigo.ru) с помощью нейросетей, почему «два вечера» превратились в полгода и как мы закрывали пробелы, которые ИИ закрыть не смог.

Как легко недооценить проект

Многие знакомы с методом интервальных повторений и Anki‑карточками (хороший разбор есть здесь). Я сам адепт подхода: готовлюсь с карточками к собеседованиям и учу английский.

Но удобной площадки для этого мне не хватало: официальное приложение для iOS платное, веб‑версия аскетична, а часть зарубежных аналогов открывается только через VPN. Решение казалось очевидным: мы крутые скилловые инженеры, что нам стоит написать CRUD для карточек и один эндпоинт для режима изучения? Тем более в век ИИ.

Стек выбрали быстро:

  • бэкенд: Django + DRF;

  • фронтенд: Vue + TypeScript;

  • мобильное приложение: сборка через Capacitor.

Срок обозначили в два вечера под пивко.

Ожидание и реальность

Спойлер: разработка заняла почти полгода. Ядро проекта (карточки, колоды, алгоритм повторений, авторизация) нейросеть действительно помогла собрать примерно за два месяца. Но между «ядро работает» и «продукт можно показывать людям» лежит пропасть, и именно в ней прошли оставшиеся четыре месяца.

Ниже разберу три проблемы, которых не ждёшь, когда решаешь «быстро завайбкодить проект».

Проблема 1. Дизайн после нейронки

Первое, что бросается в глаза, это дизайн. Нейросеть оставляет типовую «базовую» вёрстку, которую узнаёт любой, кто хоть раз открывал сгенерированный лендинг. А промптом «добавь маскота дельфина» можно не то что рассмешить, а по‑настоящему испугать новых пользователей.

Главная страница AnkiGO до редизайна
Главная страница AnkiGO до редизайна

Отдельного дизайнера в команде нет, но и оставлять нейрослоп (тем более с таким маскотом) не хотелось. Мы выбрали гибридный подход:

  1. Взяли за референс интерфейс Duolingo через Refero, где можно получить design.md с описанием паттернов популярных продуктов.

  2. Вручную подобрали цветовую гамму под наш проект и скормили её нейросети вместе с референсом.

  3. Для маскота сгенерировали стикерпак для Telegram (ссылочка на пак) и разложили разные эмоции дельфина по страницам. Получилось достаточно живо.

Главная страница AnkiGO после редизайна: референс Duolingo, своя палитра и дельфин из стикерпака
Главная страница AnkiGO после редизайна: референс Duolingo, своя палитра и дельфин из стикерпака

Проблема 2. SEO о котором нейросеть не думает.

Когда дизайн был готов, всплыла новая проблема: естественного трафика нет. Нейросеть концентрируется на коде и лучших практиках разработки, но не на том, как сайт будет индексироваться поисковиками и какой текст на нём будет размещён. У нас был SPA на Vue, на котором поисковику по сути нечего было индексировать.

Первым делом пришлось ответить на вопрос: какой контент вообще может быть полезен для индексации? Ответили так:

— завели блог, в котором ведём новости и описываем доработки: это регулярно обновляемые страницы с живым текстом;

— сделали колоды карточек публичными и добавили к ним релевантные описания: каждая колода стала отдельной индексируемой страницей.

Как итог нейросеть упустила страницы которые реально ценны для SEO индексации, оставив только лендинг.

Проблема 3. Логи и отслеживание инцидентов

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

Более того, когда я напрямую попросил решить вопрос со сбором логов, нейросеть не учла, как приложение деплоится, и предложила писать в файл. Решение имеет право на жизнь, но приложение крутится в Docker, а в контейнерах собирать логи из stdout сильно предпочтительнее, чем из файлов: не нужно монтировать тома, следить за ротацией и терять логи при пересоздании контейнера.

В итоге пайплайн собрали руками:

Django (JSON-логи в stdout)
        │
        ▼
Docker json-file log driver
        │
        ▼
Vector (парсинг JSON, обогащение полями сервиса и пользователя)
        │
        ▼
VictoriaLogs (хранение и полнотекстовый поиск)
        │
        ▼
Grafana (дашборды и алерты)

А вот дашборд в Grafana, который мы используем для анализа событий:

Дашборд событий AnkiGO в Grafana: общее число событий, распределение по типам, временной ряд и топ пользователей
Дашборд событий AnkiGO в Grafana: общее число событий, распределение по типам, временной ряд и топ пользователей

На практике, особенно полезным оказлось использование экспорта логов в csv (JavaScript обработчик настроенный на кнопку с помощью плагина Buisness Text) и спецфильтр по всем полям. Прикладываю json, на случай если пригодиться.

Выводы о «нейромагии»

На практике нейросеть действительно ускоряет разработку и помогает быстрее разобраться в незнакомых областях. Но без знаний и опыта невозможно сделать решение, которое гарантирует пользователям бесперебойную работу и удобный интерфейс.

Что мы вынесли из полугода работы:

  1. Ядро проекта нейросеть пишет быстро, обвязку не пишет вообще. Дизайн, SEO, логирование, мониторинг остаются на человеке, потому что их нет в промпте «сделай сервис».

  2. ИИ решает задачу так, как её сформулировали. Не сказали про Docker, получили логи в файл. Не сказали про поисковики, получили сайт без индексируемого контента.

  3. Технический кругозор определяет результат. Нейросеть не знает, чего вы не знаете. Чем шире опыт команды, тем больше «неочевидных» требований попадёт в задачу до запуска, а не после.

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

Если у вас есть свой опыт доведения «завайбкоженного» проекта до прода, делитесь в комментариях: интересно, какие грабли я не упомянул.


Комментарии (2)


  1. sergey_prokofiev
    18.09.2026 09:55

    LLM пишет ровно то что вы попросите ее писать и решает ровно те проблемы, которые вы попросите ее решить.

    Не подумали о SEO, логах, масштабировании, референс дизайне - нейросеть не подумает о них тоже. Подумали об описанных пробелмах - нейронка все сделает согласно реквесту.


  1. shugajev
    18.09.2026 09:55

    именно так! я придумал и описал программу, мне ChatGPT создал промт и описание этой программы на 40к текстом.. ну думаю, сейчас посмотрим, что будет.. потом, нашел не дорогого агента и в 16 итераций он мне все это создал за 2 реальных часа работы и много раз еще спрашивал что да как по ходу работы.. и да.. программа получилась =) но.. я потом 4 часа разбирался как она работает и правки вносил в интерфейс, потом еще начал удивляться с логики работы и странностей..
    теперь буду хирургически ее разбирать по частям и проверять как и что тут работает.. мне все не нравится.. НО. продукт работает и запускается =) но. когда я залез в базу данных, через Бобра.. понял.. тут рефакторить очень долго еще =) и я уже боюсь добавлять новые фичи в продукт, хотя, тестами так все покрыто, этих тестов столько что страшно и когда агент их только успел написать
    короче, если что-то простое, то да, раз и готово, если что-то поэтапно делать и разрабатывать, тут надо очень хорошо проектировать ядро и всю архитектуру продукта, вот просто железно все описывать до начала разработки