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

С виду даже самый простой проект, который можно «запромптить» в пару подходов, содержит десятки подводных камней, из‑за которых его нельзя назвать 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. Технический кругозор определяет результат. Нейросеть не знает, чего вы не знаете. Чем шире опыт команды, тем больше «неочевидных» требований попадёт в задачу до запуска, а не после.

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

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


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


  1. sergey_prokofiev
    18.09.2026 09:55

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

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


    1. ikovyrshin Автор
      18.09.2026 09:55

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


      1. sergey_prokofiev
        18.09.2026 09:55

        Сейчас в обществе и у бизнеса складывается мнение, что навайбкодить продукт не составляет труда и в целом это может сделать даже не профессионал в этой области. 

        С этим согласен, глаз резануло что

        Ядро проекта нейросеть пишет быстро, обвязку не пишет вообще.

        Обвзяку пишет если сказать ей писать.

        Впрочем вы ниже поправляетесь что

        ИИ решает задачу так, как её сформулировали.

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


        1. Naturalisimus
          18.09.2026 09:55

          Тут вопрос скорее в метриках.
          Когда ты вайбкодишь отдельную фичу, ты можешь понять насколько хороша она выполнена чисто визуально. Лагает интерфейс или выполняется долго запрос и ты понимаешь, что здесь и здесь можно переделать.
          А что делать с СЕО? Вот я, как разработчик, или просто знающий человек сказал ИИшке сделай СЕО, вот она его сделала, но не учла ld+json разметку. А если я не знал о ней, я просто пропустил бы этот нюанс, да и все. Как я в моменте пойму плохо она сделала СЕО оптимизацию или нет? Да никак, надо смотреть, проверять в вебмастере, читать статьи. Поэтому, не смотря на то, что задачу я сформулировал верно, ии выполнила ее не до конца. Оба тезиса вполне верны и тут я разногласий не вижу. Используй ИИ, но оставайся спецом, чтобы можно было более полно ее проверять


  1. shugajev
    18.09.2026 09:55

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


  1. homushku_n
    18.09.2026 09:55

    Тезис «нейросеть не знает, чего вы не знаете» объясняет всё, что описал автор: не сказали про Docker — получили логи в файл, не сказали про SEO — получили SPA без индексации, не сказали про безопасность и тесты — получили дырявый код, который страшно трогать. Автор перечислил дизайн, SEO, логирование и мониторинг как «обвязку», но забыл, что безопасность и тестирование — тоже обвязка, которая не входит в промпт «сделай сервис»


  1. i_hml
    18.09.2026 09:55

    У нас на игровом проекте похожая история была. С ИИ быстро набросали механики и мелкие скрипты — уже можно было запустить и поиграть. Но чтобы всё нормально работало вместе, пришлось ещё долго дорабатывать, потому что одна правка ломала другую.

    Так что ускорение есть, но нужно понимать, что ИИ написал и как это проверить. Если сам шаришь в разработке, экономишь время. Если нет — надолго застреваешь на исправлениях.


  1. Yro_Boros
    18.09.2026 09:55

    Отличная иллюстрация, почему “промпт в пару подходов” ≠ production. Особенно ценно про то, что LLM не держит контекст окружения (Docker, SEO, мониторинг) — это надо явно закладывать в промпты и пайпланы. Полезно было увидеть, как вы компенсировали пробелы: референс, ручная палитра, Vector + VictoriaLogs. Спасибо за хороший разбор.