← Vibe Coding — and How to Take It to Production
01 / 07 · 30 min

What Vibe Coding Is and Where It Breaks

Where the term came from, how vibe coding differs from AI-assisted development, and the three places where a prototype breaks first.

Lesson content is currently available in Russian.

What you will learn

  • →Объяснять, что такое vibe coding и чем он отличается от AI-ассистированной разработки.
  • →Называть три типовые зоны, где vibed-прототип ломается: данные, безопасность, деньги.
  • →Определять момент, когда прототипу нужен инженерный подход, а не ещё один промпт.

Откуда взялся термин

В феврале 2025 года Андрей Карпати, сооснователь OpenAI и бывший руководитель AI в Tesla, описал в посте на X «новый вид программирования»: полностью отдаться вайбу, забыть о существовании кода, говорить с моделью голосом, всегда нажимать «Accept all» и не читать диффы. Если появляется ошибка — просто вставить её текст в чат без комментариев. Так родился термин vibe coding.

Важно понимать границу, которую позже чётко провёл Саймон Уиллисон: если вы читаете сгенерированный код, проверяете его и можете объяснить, как он работает, — это уже не vibe coding, а обычная AI-ассистированная разработка. Vibe coding в исходном смысле — это именно отказ от чтения кода: вы оцениваете результат только по поведению приложения на экране.

Оба режима легальны, но у них разные зоны применения. Vibe coding отлично подходит для одноразовых прототипов, личных инструментов и проверки идей за вечер. Проблемы начинаются, когда прототип, собранный «по вайбу», незаметно превращается в продукт с реальными пользователями, их данными и платежами — а внутри по-прежнему никто не понимает, как он устроен. Этот курс — про то, как пройти путь от первого промпта до продакшена и в нужный момент включить инженерную дисциплину.

Почему это вообще работает

Vibe coding работает не магией. Современные LLM обучены на гигантском корпусе открытого кода, и типовые веб-приложения — формы, списки, авторизация, CRUD-операции над базой — это самый частотный паттерн в этом корпусе. Когда вы просите «сделай трекер привычек с регистрацией», модель не изобретает архитектуру, а воспроизводит хорошо знакомую ей комбинацию: React-компоненты, роутинг, таблица в Postgres, вызовы API.

Инструменты вроде Lovable, v0 и Bolt добавляют к модели готовую обвязку: они сами создают проект, ставят зависимости, поднимают превью в браузере, подключают базу данных и деплой. Вы описываете продукт словами — получаете работающую ссылку. Скорость честная: рабочий прототип интернет-магазина или дашборда реально собирается за вечер.

Но у этой скорости есть цена, и она скрыта именно там, куда вы не смотрите. Модель оптимизирует «чтобы заработало на демо», а не «чтобы выжило в проде». Она охотно кладёт секретный ключ прямо в клиентский код, потому что так быстрее. Она создаёт таблицы без политик доступа. Она делает запрос к базе внутри цикла, и на десяти тестовых записях это незаметно, а на десяти тысячах реальных — кладёт приложение. Всё это не баги модели, а следствие того, что никто не сформулировал требования продакшена.

Три места, где прототип ломается первым

Практика ревью vibed-приложений показывает три повторяющиеся зоны отказа.

Данные. Схема базы меняется хаотично: агент добавляет колонки на лету, миграций нет, продакшен-база отличается от той, на которой всё тестировалось. Первое же «переименуй поле» после запуска теряет данные пользователей, потому что никто не написал миграцию.

Безопасность. Самые частые находки: API-ключи, зашитые в клиентский код и видимые любому через DevTools; таблицы Supabase без Row Level Security, из которых анонимный пользователь может прочитать всё; серверные эндпоинты, которые верят любому запросу, потому что «проверка же есть на клиенте». Это не экзотика — это стандартная конфигурация сгенерированного прототипа.

Деньги. Serverless-хостинг и API моделей тарифицируются за использование. Прототип без лимитов и кэша — это открытый кран: вирусный пост, недобрый бот или бесконечный цикл в собственном коде превращаются в счёт на тысячи долларов за одну ночь.

Запомните простое правило перехода: как только приложением пользуется кто-то, кроме вас, — появляются чужие данные, чужие деньги и ваша репутация. С этого момента «работает на демо» перестаёт быть критерием готовности, и каждая из трёх зон требует явной проверки. Остальные уроки курса — это последовательное закрытие этих зон.

Practice

Карта рисков вашей идеи

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

Deliverable

Документ: описание идеи + таблица из шести рисков с пометкой, что случится, если риск сработает.

Checkpoint

Чем vibe coding отличается от AI-ассистированной разработки и в какой момент прототип начинает требовать инженерного подхода?

  • ✓ Названа граница: читаешь и понимаешь код — ассистированная разработка, не читаешь — vibe coding.
  • ✓ Перечислены минимум две из трёх зон отказа: данные, безопасность, деньги.
  • ✓ Сформулирован триггер перехода: появление чужих данных или пользователей кроме автора.

Check yourself

Что в исходном смысле термина отличает vibe coding от обычной работы с AI-ассистентом?

01Что в исходном смысле термина отличает vibe coding от обычной работы с AI-ассистентом?

Почему LLM так хорошо генерируют типовые CRUD-приложения?

02Почему LLM так хорошо генерируют типовые CRUD-приложения?

Какая из ситуаций НЕ относится к трём типовым зонам отказа vibed-прототипа?

03Какая из ситуаций НЕ относится к трём типовым зонам отказа vibed-прототипа?

Какой момент считается триггером перехода от «вайба» к инженерной дисциплине?

04Какой момент считается триггером перехода от «вайба» к инженерной дисциплине?

Sources

What Vibe Coding Is and Where It Breaks · Vibe Coding — and How to Take It to Production · VORCL