Термин «вайбкодинг» мне не нравится. Он подсознательно сужает восприятие ИИ, превращая его в универсальный молоток, с которым всё начинает выглядеть как гвоздь.
«Когда у вас в руке молоток, всё кажется гвоздём» — это как раз про это. Вайбкодинг на уровне посыла говорит: «Иди и программируй!» Но зачем?
Нужен отчёт по данным? Не обязательно писать бэкенд, фронтенд и деплоить VPS. Достаточно попросить ИИ создать Excel-файл с нужной структурой и формулами. Решение будет понятным, безопасным, легко передаваемым и не потребует настройки доступов.
Хотите запустить блог? Зачем сразу бросаться в Next.js, Supabase и Vercel? Можно взять Ghost или WordPress, использовать ИИ для подбора плагинов и тем, настроить дизайн и получить рабочее, поддерживаемое решение без месяцев разработки.
Эта статья родилась, когда моя жена — директор частной школы — попросила помочь с новым проектом. У неё накопился большой опыт в образовании: от мотивации учеников до подготовки к ОГЭ и ЕГЭ. Хотелось всё это систематизировать и поделиться — создать экспертный журнал.
Первая мысль: «Сейчас быстро всё навайбкодим!» Вторая: «А зачем?» Особенно если проект нужно будет обновлять, передавать другим и развивать постепенно.
Бюджет на разработчика и дизайнера — нулевой. Я — не фронтендер и не WordPress-специалист. Инфраструктуру знаю, но PHP и вёрстка — не моё.
Почему не писали свой движок
Соблазн был: взять Claude Code, сгенерировать CMS, получить дозу дофамина. Но задача — блог с категориями, SEO, картинками, поиском, RSS — уже двадцать лет решена WordPress.
Писать свой движок — это не создание журнала. Это создание CMS для журнала. А мне нужно публиковать статьи, а не дебажить рендеринг Markdown.
WordPress — не идеал, но у него есть то, чего нет у самописки: готовая админка, медиатека, SEO-плагины, система ролей, REST API, WP-CLI. Всё это бесплатно, документировано и работает.
Выбранный стек: VPS на Ubuntu, nginx, PHP 8.3, MySQL 8.0, WordPress с темой GeneratePress. Кастомизация — через mu-plugins и CSS.
Как работали с ИИ
Проект делался через Claude Code — CLI-инструмент, подключающийся по SSH, генерирующий PHP, правящий конфиги, заливающий файлы. Я формулирую задачу на русском, ИИ выполняет.
Например:
Я: «Сделай главную: hero-блок с закреплённой статьёй, сетка последних статей в три колонки, блок популярного, список свежих, сетка разделов».
ИИ: генерирует PHP-скрипт, создаёт Gutenberg-контент, прописывает CSS, настраивает тему.
Я: «Три колонки не работают, всё в одну».
ИИ: выясняет, что core-стили WordPress перебивают CSS, переносит стили в mu-plugin с высоким приоритетом.
Я: «Теперь работает, но отступы слишком большие».
ИИ: правит. И так далее.
Что получилось за пару вечеров
- Настроенный сервер: nginx с кешированием, PHP-FPM, MySQL, SSL, firewall, fail2ban.
- WordPress с кастомной главной: hero, карточки статей, свежие записи, сетка разделов.
- Дизайн: минималистичный, адаптивный, шрифт Inter, белые карточки на светлом фоне — аккуратно, но не шедевр.
- SEO: Rank Math, карта сайта, ЧПУ, транслитерация slug’ов.
- 12 mu-plugins для кастомизации — от шапки до подвала.
Итерационный процесс: как это работает
Вайбкодинг — это не «сказал и готово». Это диалог, иногда утомительный.
- Формулируешь задачу. Чем точнее — тем лучше результат.
- ИИ делает. Обычно на 80% правильно.
- Проверяешь в браузере. Находишь проблему.
- Описываешь: «текст прилип к краю», «блок уехал», «на мобильном всё сломалось».
- ИИ чинит. Иногда с первого раза, иногда нет.
- Повторяешь с пункта 3.
Пример: блок «Разделы» на главной. ИИ сначала сделал его статическим HTML — названия категорий зашиты в код. Я переименовал категории в админке, но на сайте ничего не изменилось.
Решение — mu-plugin с фильтром the_content, который подставляет актуальные данные из базы. Первая версия использовала захардкоженные slug’и. Я изменил категории — и на главной отобразились только две из восьми.
Вторая итерация: вместо списка — get_terms(), который берёт все категории. Заработало.
Три итерации на задачу, которая для WordPress-разработчика была бы тривиальной. Но мне не пришлось становиться им.
Ещё пример: CSS. WordPress генерирует inline-классы вроде is-layout-constrained, которые перебивают кастомные стили. Несколько итераций ушло на выяснение, почему сетка не работает. Решение — mu-plugin с приоритетом 999, который грузится после core-стилей. Это неочевидно без опыта. ИИ дошёл до этого методом проб и ошибок.
Где ИИ помог
Инфраструктура. Настройка nginx, PHP-FPM, MySQL, SSL, firewall — всё через SSH-команды от ИИ. Рутина, но экономит время. Главное — проверять, что делается.
Кастомизация WordPress. Я не знаю API WordPress. ИИ знает. Он написал 12 mu-plugins: убрать сайдбар, переопределить сетку, добавить поиск, сделать динамический блок категорий. Без ИИ я бы потратил на это гораздо больше времени.
CSS. Описываю: «карточки с тенью, hover с подъёмом, адаптив» — получаю рабочий CSS. Не идеальный, но правится точечно.
Где ИИ не помог (или мешал)
Не видит результат. ИИ (особенно консольный) не открывает браузер. Не знает, как выглядит страница. Тестирование — на мне. Приходится описывать проблемы словами. Иногда проще было бы показать скриншот.
Не понимает контекст изменений. Когда я переименовал категории, ИИ об этом не знал. Решение с захардкоженными slug’ами стало проблемой. Он не отслеживает состояние базы.
Перебивает правки. Иногда, чиня одну проблему, ИИ ломает другую. Например, исправил перенос заголовков через sed — случайно заменил стили и для даты. Пришлось перезаливать файл.
Не заменяет понимание архитектуры. ИИ может написать фильтр, но решение «нужен фильтр, а не статический HTML» принимаю я. Инициативу проявляет редко, и не всегда удачно.
Плагины и экосистема. Установил Cyr-To-Lat для транслитерации slug’ов. Оказалось, он не транслитерирует в редакторе до сохранения. Мы потратили время, выясняя, что это норма, а не баг. Опытный разработчик знал бы это.
Когда вайбкодинг подходит
- Прототипы и MVP. Когда нужно проверить идею, а не строить production. Наш журнал — MVP, и он работает.
- Стандартные задачи на незнакомом стеке. Я знаю, что нужно, но не знаю API. ИИ закрывает этот разрыв.
- Малые команды и сольные проекты. Когда нет отдельного фронтендера, бэкендера, DevOps. ИИ позволяет одному человеку закрыть все роли — не идеально, но достаточно.
- Кастомизация готовых решений. WordPress, Shopify, Bitrix — когда нужно допилить, а не строить с нуля.
Когда не подходит
- Безопасность критична. ИИ не думает о безопасности проактивно. Не предложит rate limiting, не проверит SQL-инъекции — если вы не попросите. Вы должны знать об этом и применять.
- Вы не понимаете предметную область и ждёте, что ИИ «разберётся сам». Не разберётся. Он выдаст правдоподобный код, который сломается при первом же изменении.
- Вы не можете оценить качество результата. Если вы не видите ошибок в логике ИИ, вы просто будете удивляться, почему всё падает.
- Время: от пустого VPS до журнала с контентом — пара выходных по несколько часов.
- Стоимость инфраструктуры: VPS (500–700 руб/мес), домен, бесплатный SSL.
- Стоимость разработки: подписка на Claude. Ноль часов оплаченной разработки.
- Объём кода: ~12 mu-plugins (PHP), ~600 строк CSS, несколько Python-скриптов. Всё написано ИИ, я — ни строчки.
- Количество итераций на задачу: 2–4.
Вайбкодинг — это не магия и не замена разработчику. Это инструмент, который позволяет человеку с техническим бэкграундом (но без узкой специализации) реализовывать проекты, которые раньше требовали найма специалиста или долгого обучения.
Ключевое — технический бэкграунд. Я понимаю, что такое nginx, DNS, SSL, SQL, CSS-специфичность, REST API. Я не знаю хуки WordPress наизусть, но понимаю, что это такое. Без этого фундамента вайбкодинг превращается в чёрный ящик: вы не можете ни сформулировать задачу, ни проверить результат, ни понять, почему что-то сломалось.
Наш журнал работает. Статьи публикуются. SEO настроен. Это не enterprise-решение, но для задачи «контентный блог для школы» — более чем достаточно. Сделано одним человеком, который параллельно занимался другими делами.
Профессиональный WordPress-разработчик сделал бы лучше. Наверняка — правильнее. Но его не было, а журнал был нужен. Вайбкодинг позволил закрыть задачу — не идеально, но работоспособно. А в реальной жизни «работает сейчас» часто важнее, чем «идеально никогда».
Вывод: не бросайтесь писать код только потому, что это модно. Да, иногда нужно приложение. Но не всегда! Не ограничивайте себя. ИИ в ваших руках — это мультитул, а не молоток.