Как создать сайт с помощью нейросети и проверить

7 минут чтения

Чтобы создать сайт с помощью нейросети, опишите агенту бизнес, страницы и работу формы. Затем проверьте, что заявка сохраняется, сайт удобен на телефоне, а текст совпадает с условиями бизнеса. В нашем эксперименте 15 октября 2026 года Claude Code собрал лендинг вымышленной веломастерской «Тихий ход» за 17 минут. Проверка нашла три технических недочёта и восемь лишних обещаний. Исправления заняли 9 минут.

До запуска остаются хостинг, уведомления о заявках, защита от спама и политика персональных данных. Задание, обе версии сайта и скрипт проверки лежат в архиве (ZIP, 151 КБ).

Создание сайта с помощью нейросети: чат, конструктор или агент

Для этого лендинга мы выбрали агента: он создаёт файлы в папке проекта, запускает сервер и проверяет сайт. В обычном чате файлы из ответа нужно сохранить и запустить самостоятельно. Конструктор подойдёт, если его форма и шаблоны закрывают задачу. Магазин с корзиной и оплатой требует отдельного задания и проверки.

Работал Claude Code 2.1.280 на модели Opus 5.5 по подписке Max, в пустой папке.

Первый экран лендинга на ширине 1440 и 390 пикселей
Первая версия. «20 минут» и «Бесплатно» внизу экрана нейросеть придумала сама.

Задание, которое получил Claude Code

В учебном задании разрешено придумать цены. Для своего бизнеса уберите эту просьбу и укажите реальные цены, часы, контакты и условия услуг. Технические требования оставьте: заявка сохраняется на сервере, сайт запускается одной командой. Для работы с подрядчиком есть пример задания с критериями приёмки.

Задание дословно, 15 октября 2026
Сделай одностраничный сайт (лендинг) для веломастерской «Тихий ход». Бизнес вымышленный, сайт учебный.

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

Что должно быть на странице:
1. Первый экран: чем занимаемся, главное преимущество (ремонт за 1–2 дня), кнопка «Записаться на ремонт».
2. Услуги с ценами «от»: ТО, замена камеры, настройка переключателей, ремонт тормозов, сезонное хранение. Цены придумай правдоподобные, в белорусских рублях.
3. Как это работает: 3–4 шага от заявки до выдачи велосипеда.
4. Ответы на частые вопросы, 4–5 штук.
5. Форма заявки: имя, телефон, тип велосипеда, что случилось, удобная дата. После отправки человек должен понять, что заявка принята и что будет дальше.
6. Подвал: часы работы и контакты (пометь, что это пример).

Требования:
- Нормально выглядит на телефоне и на компьютере.
- Заявка с формы должна реально доходить: сделай простой сервер на Node.js без внешних зависимостей, который отдаёт сайт и сохраняет заявки в файл leads.json. Запуск одной командой: node server.js.
- Заполни title и description страницы, чтобы сайт нормально выглядел в поиске.
- Без внешних библиотек и CDN, всё лежит в этой папке.

Что получилось за 17 минут

За 49 шагов Claude Code написал страницу, экран «Заявка принята», сервер на Node.js и README. Перед ответом он сам открыл сайт в браузере на ширине 1280, 390 и 320 пикселей и прошёл форму на ширине 390.

Кое-что он сделал сверх задания. Файл с телефонами клиентов и код сервера по ссылке не открыть, одновременные заявки не затирают друг друга, форма работает без JavaScript. Спам-бот, заполнивший невидимое людям поле-ловушку, получает «принято» и в файл не попадает. Это мы проверили запросами. Ещё сервер отклоняет воскресенье, но этот выходной нейросеть придумала вместе с часами работы.

Как проверяли

Мы проверили сайт в браузере на ширине 360, 390 и 1440 пикселей; мобильные экраны эмулировал браузер. Скрипт Playwright сам открывает страницы и отправляет форму: пустую, с телефоном «123», двойным кликом и при выключенном сервере. Приёмку из 21 пункта и скрипт мы написали, пока Claude Code собирал сайт.

Первый прогон дал 12 из 21. Шесть отказов были ошибками скрипта: он заполнял поле-ловушку и из-за часового пояса выбирал воскресенье. После исправления проверки сайт прошёл 18 из 21: заявки сохранялись, боковой прокрутки не было. Пустую форму и телефон «123» сайт отклонял, двойной клик создавал одну заявку, при сбое сервера введённые данные оставались на месте.

Форма заявки на ширине 390: сообщение «Нет связи с сервером» и экран «Заявка №1 принята»
Исправленная версия. Сверху ошибка при выключенном сервере, введённые данные на месте. Снизу заявка после повторной отправки.

Три дефекта, которые нашёл скрипт

Что было
Чем мешает

Кнопки на телефоне

Что было

ссылки «Записаться на …» 26 px, кнопки «Прокол», «Тормоза» 38 px

Чем мешает

легко промахнуться; скрипт требует 40 px, просили 44 px по WCAG 2.2 (уровень AAA)

Описание для поиска

Что было

169 знаков

Чем мешает

выше нашего лимита 160 знаков; после правки 158

Картинка превью

Что было

нет, хотя Claude Code отчитался: «есть превью для соцсетей»

Чем мешает

картинка для карточки ссылки не задана; показ в мессенджере ещё нужно проверить

Карточка услуги на ширине 360: ссылка записи 26 пикселей до правки и 44 после
Сверху ссылка записи до правки, 26 пикселей. Снизу после правки, 44 пикселя. Граница обведена пунктиром.

Обещания, которых не было в задании

Самое серьёзное скрипт не ловит. В задании были срок 1-2 дня и цены «от». Нейросеть дописала бесплатный осмотр, звонок мастера в течение 30 минут и гарантию 30 дней. Ещё добавились две скидки по 20% (на детские велосипеды и на хранение с ТО), запчасти за 3-5 дней, оплата картой или наличными и замена камеры за 20 минут. Несколько мелких мы при чтении пропустили, например осмотр за 10 минут и срочный ремонт без записи в течение дня.

На живом сайте клиент придёт за осмотром и гарантией, которых мастерская не давала. Текст от нейросети читайте как договор: чего владелец не обещал, вычеркните или подтвердите.

Как исправили

Запрос отправили в том же разговоре. Две фразы в нём неточны: 160 знаков было нашим лимитом, а показ сниппета и карточки в мессенджере мы не проверяли.

Запрос на исправления дословно
Проверил сайт на телефоне 360 и 390 пикселей, форму и мета-теги. Исправь, пожалуйста:

1. На телефоне ссылки «Записаться на …» в карточках услуг высотой 26 пикселей, кнопки «Прокол», «Тормоза» и другие в форме 38, логотип в шапке 36. Пальцем по ним легко промахнуться. Сделай все кликабельные элементы на телефоне не ниже 44 пикселей.
2. description 169 знаков, в выдаче обрежется. Сократи до 150–160 знаков, смысл сохрани.
3. Картинки для превью нет: в мессенджере ссылка придёт без картинки. Добавь og:image 1200×630, чтобы превью работало в мессенджерах (им нужен полный адрес картинки).
4. На сайте есть обещания, которых не было в задании: бесплатный осмотр, перезвоним в течение 30 минут, гарантия 30 дней, скидка 20% на детские велосипеды и на хранение с ТО, запчасти под заказ за 3–5 дней, оплата картой или наличными, замена камеры за 20 минут при вас. Владелец мастерской их не давал. Убери их со страницы, со страницы «Заявка принята» и из ответов сервера. Из обещаний оставь только ремонт за 1–2 дня и цены «от».

Остальное не меняй.

Повторный прогон дал 21 из 21. Картинка превью появилась на сервере; её показ в мессенджере проверяется после публикации. Claude Code переписал все пять ответов FAQ, и пропущенные нами обещания ушли вместе с ними. Пять спорных формулировок он оставил владельцу, например «Запчасти оплачиваются отдельно».

От первого запроса до повторного прогона прошло 29 минут: 17 на генерацию, 9 на исправления, около трёх на прогоны и список правок. Дополнительные проверки сервера проводили позже. На чтение своего сайта закладывайте больше времени.

Как повторить у себя

  1. Для запуска сайта из архива достаточно Node.js 20 или новее. Для своей сборки нужен агент. Инструкция по Claude Code подходит тем, кому он доступен по официальным условиям; Беларусь в список поддерживаемых стран не входит.
  2. Откройте в агенте пустую папку и дайте задание со своими данными. Список проверок из архива приложите к заданию.
  3. Попросите агента запустить сайт и показать адрес для телефона в той же сети Wi-Fi.
  4. Отправьте тестовую заявку, найдите её в leads.json и сверьте текст сайта с заданием, включая экран после отправки.
  5. Проверку запускайте на отдельной копии без реальных заявок. Скрипт из архива рассчитан на наш сайт; для новой формы агенту нужно адаптировать проверки.
  6. Передайте агенту найденные ошибки. После исправлений повторите проверки и перечитайте все условия услуг.

Что осталось до запуска

Сайт работает только на нашем компьютере. Для живых заявок нужно ещё:

  • Хостинг с Node.js и диском, который не стирается при перезапуске, иначе пропадут заявки: куда выложить сайт с формой.
  • Уведомление владельцу в почту или мессенджер: файл с заявками никто не читает.
  • Домен и HTTPS: без шифрования имя и телефон идут по сети открытым текстом.
  • Защита от спама: ловушка есть, лимита заявок с одного подключения нет.
  • Персональные данные. Строку согласия нейросеть написала сама. В Беларуси организация или ИП обязаны до первой заявки выложить политику обработки персональных данных в открытый доступ (п. 4 ст. 17 Закона № 99-З).
  • Резервная копия заявок и счётчик посещений.
  • Настоящие адрес, телефон, часы и только те условия, которые владелец готов выполнять.

Частые вопросы

Наш способ с Claude Code требует платного доступа. Два запроса оценены самим Claude Code в $10,36 по тарифам API; эксперимент шёл по подписке Max. Эта оценка не равна отдельному списанию за сайт.
Код писать не нужно. Для проверки понадобится терминал: поставить Playwright и запустить скрипт по README архива. Лишние обещания видно только при чтении текста.

Что дальше

Новые посты на почту

Без спама. Отписка в один клик в любом письме.