Меня зовут Богдан Непряхин, я CEO агентства bijobs.ru. Мы занимаемся performance-маркетингом и аналитикой данных. Я выступаю на конференциях, рассказываю про Яндекс Директ, VK Ads и работу с данными. В начале 2026 года я понял, что мне неловко давать ссылку на «страницу спикера» — её попросту не было. Была лишь строчка на сайте агентства, без фото, тем докладов или видео.
Обычный путь — заказать у специалистов: дизайнер (15–40 тысяч рублей, 1–2 недели) + верстальщик (15–30 тысяч, ещё неделя). Итого: месяц и 30–100 тысяч за одностраничник, который увидят десять человек. Я решил проверить, можно ли сделать это за выходные с помощью Claude Code — нейросетевого ассистента для работы с кодом.
Спойлер: получилось — speaker.bijobs.ru. Ниже — подробный разбор процесса: реальные промпты, ошибки и выводы.
Кстати, написание этой статьи заняло намного больше времени, чем создание самого сайта.
Почему не Tilda и не конструктор
Хотелось проверить, насколько сейчас эффективен вайбкодинг. Консоль с LLM-ассистентом ведёт себя как уверенный мидл-разработчик, которого нужно только направлять. Я понимаю основы HTML/CSS и чётко вижу конечный результат. Этого оказалось достаточно, чтобы контролировать процесс.
Шаг 1. Контент: нейросеть как помощник
У меня уже была долгая переписка с Claude: задачи агентства, материалы по выступлениям, учебные проекты. Я попросил собрать всё, что он знает обо мне, и сформировать черновик: биографию, темы докладов, достижения в цифрах.
Результат оказался вполне приличным. Достаточно было подправить акценты, уточнить формулировки и добавить свежие данные. Вместо нескольких часов на написание текстов — 20 минут на редактирование. Честно, самое приятное — не писать про себя в третьем лице.
Если у вас нет накопленного контекста, скиньте нейросети свои посты, тезисы выступлений, описания проектов. Попросите написать биографию в трёх вариантах: короткий, средний, развёрнутый. Редактировать чужой текст о себе — гораздо легче, чем писать с нуля.
Фотографии с конференций и ссылки на видео пришлось собирать вручную. Тут нейросеть помочь не может.
Шаг 2. Структура: сначала на бумаге
Перед первым промптом я нарисовал структуру страницы:
- Sidebar (фиксированный, 300px)
- Основной контент
- Фото (круглое)
- #hero: имя, должность, слоган
- #about: биография
- #topics: карточки тем докладов
- CTA-кнопка («написать мне»)
- #achievements: цифры достижений
- #gallery: фото и видео
- #contacts: форма или ссылки
Можно нарисовать на бумаге, в Figma или попросить нейросеть предложить типовую схему. Главное — не прыгать сразу в промпты. Пять минут с ручкой экономят час переделок.
Шаг 3. Первый промпт и главное правило
Самая частая ошибка — писать «сделай мне сайт» и ждать чуда. Не сработает. Получите что-то среднее между шаблоном Bootstrap и студенческой лабораторной.
Описывайте результат, а не процесс. Цель первого промпта — не красивый сайт, а правильный скелет: HTML с нужными секциями и базовый CSS для макета. Главное — убедиться, что всё стоит на своих местах. Цвета, анимации, шрифты — потом.
Открыл index.html в браузере: секции на месте, колонки не разъехались. Отлично — можно идти дальше.
Шаг 4. Итерации: показывай, а не описывай
Дальше начинается цикл: смотришь на результат, формулируешь замечание, отправляешь в Claude Code, проверяешь обновлённый код. И так по кругу.
Один из самых полезных приёмов — давать визуальные референсы. Я нашёл на ThemeForest тему с тёмным дизайном и sticky sidebar и скинул ссылку с комментарием: «хочу похожий макет и атмосферу».
Нейросеть сама разобрала визуальную логику: расположение колонок, типографику, отступы, поведение при скролле — и воспроизвела всё это в чистом HTML/CSS. Мне не пришлось описывать каждый padding словами. Ссылка на пример заменяет целый технический бриф.
Дальше пошли точечные правки:
- Типографика: размеры заголовков, межстрочный интервал, жирность
- Цветовая схема: оттенки синего для акцентов
- Карточки тем: закруглённые углы, hover-эффект
- Секция достижений: большие числа с анимацией счётчика
- Галерея: сетка фото с масштабированием при наведении
Каждая итерация занимала 5–15 минут: сформулировать → получить код → проверить в браузере. Обратная связь моментальная — процесс затягивает.
Важно: после каждой правки просите ассистента зафиксировать изменения. Почему? Потому что нейросеть может потерять контекст и сломать то, что уже работало. Документация (даже в виде текстового файла) помогает откатиться. Идеально — использовать Git.
Шаг 5. Мобильная адаптация и первые проблемы
Проверил сайт на телефоне. После десятка десктопных итераций мобильная версия выглядела как после блендера: sidebar занимал половину экрана, текст мелкий, карточки вылезали за края.
Новый промпт — и Claude Code добавил @media-запросы, переделал макет. Но тут я столкнулся с первыми граблями:
- backdrop-filter: blur() работал в Chrome, но в Safari требовал -webkit--префикс
- Несколько CSS-свойств содержали синтаксические ошибки, которые Chrome игнорировал, а другие браузеры — нет
Вывод: проверяйте сайт не только в Chrome. И не забывайте про планшеты (768–1024px) — это зона, где всё ломается по-своему.
Шаг 6. Оптимизация: самые болезненные грабли
Сайт выглядел отлично, и я уже собирался скинуть ссылку… Но решил прогнать его через PageSpeed Insights.
Результат: 38 баллов на десктопе, 27 — на мобильных. Для файла в 32 КБ — мягко говоря, грустно.
Главный виновник — фото профиля: bogdan_nepryahin.png весил 12 мегабайт. Это PNG 3592×3592 — исходник с телефона, загруженный как есть. LCP (время до отображения главного контента) — 12,4 секунды на десктопе и 82 — на мобильном. Почти полторы минуты.
Плюс три iframe с VK-видео грузились сразу, хотя пользователь ещё не доскроллил до них.
Скинул скриншот PageSpeed в Claude Code: «Вижу такие показатели, что не так?». Получил диагноз и список действий. Следующий промпт: «Сделай всё, что перечислил». Результат:
- Фото профиля: 12 МБ → 93 КБ (WebP, потеря качества незаметна)
- Галерея: 13 МБ → ~600 КБ
- VK iframe: loading="lazy", грузятся только при скролле
- Google Fonts — асинхронная загрузка, не блокирует отрисовку
- Preload для главной фотографии
Повторный тест: 90 баллов на десктопе, 63 — на мобильных.
Мораль: «красивый» и «быстрый» — разные задачи. Обязательно проверяйте PageSpeed перед тем, как показывать сайт.
Шаг 7. Деплой и новые приключения
Два варианта:
Простой: Netlify. Бесплатно, 5 минут. Регистрируетесь, перетаскиваете папку — и через 30 секунд сайт живёт по адресу random-name.netlify.app. Свой домен подключается через CNAME. Альтернатива — GitHub Pages.
Продвинутый: свой VPS + Nginx. Имеет смысл, если сервер уже есть. Я выбрал этот путь — и тут начались приключения.
Проблема с регистром файлов
На Windows и macOS Photo.jpg и photo.jpg — один файл. На Linux — два разных. Я потратил 20 минут, пытаясь понять, почему фото отображается локально, а на сервере — белый квадрат. В HTML было <img src="photo/Photo_1.jpg">, а файл назывался photo_1.jpg.
Правило: все файлы — строчными буквами, без пробелов. Только латиница, цифры, дефисы и подчёркивания.
Абсолютные пути в адресах
Нейросеть иногда генерирует <img src="/photo/photo1.jpg"> с ведущим слешом. На сервере работает, локально — нет (браузер ищет файл в корне диска). Мелочь, но раздражает.
Трабл с перезаписью проекта
Я хостю несколько проектов на одном VPS. Для SFTP был создан пользователь с chroot-изоляцией — он «видит» только папку спикерского сайта. Когда я загружал файлы другого проекта через этого пользователя, думая, что попадаю в другую директорию, файлы улетели в папку спикерского сайта и перезаписали его.
Заметил через несколько часов. Восстановил из Git за 5 минут. Вот где система контроля версий реально спасает.
Урок: когда работаете с несколькими проектами на одном сервере, документируйте инфраструктуру. В голове всё помнится ровно до того момента, когда перестаёт.
Принципы, которые я вынес
Итерируй, не жди идеала за один запрос. Первый промпт — скелет. Второй — типографика. Третий — мобильная версия. Четвёртый — анимации. Лучше десять простых запросов, чем один «монстр».
Явно указывай ограничения. «Без React, без Vue, без Bootstrap, только HTML/CSS/JS». Иначе нейросеть предложит «удобные» решения с кучей зависимостей, которые потом придётся поддерживать.
Проси объяснять код. Если не понимаете, что написала нейронка, спросите: «Объясни, что делает этот CSS-класс. Почему calc() и что такое 100vh?». Вопрос — 30 секунд, понимание — навсегда. Если нейросеть не может объяснить — скорее всего, код кривой.
Время: около 8 часов за два выходных, с учётом ошибок и экспериментов.
Деньги: $0 за хостинг (VPS уже был), подписка на Claude — единственная статья расходов.
Результат: speaker.bijobs.ru — одностраничник на чистом HTML/CSS/JS, 90 баллов PageSpeed на десктопе, адаптивный, без внешних зависимостей (кроме Google Fonts).
Нейронка не заменяет разработчика. Она убирает барьер: «я не начну, потому что это дорого и долго». Если вы понимаете, что хотите получить, и готовы итеративно уточнять — получите рабочий результат за выходные. Не идеальный. Но рабочий. А идеальный… давайте честно — его не бывает. Бывает «достаточно хороший, чтобы не стыдно было скинуть ссылку».
, а файл называлсяphoto_1.jpg.
с ведущим слешом. На сервере работает, при открытии файла локально нет, потому что браузер ищет файл в корне диска. Мелочь, но раздражает, когда ищешь баг не там.