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
Sources