AI АрхитектураGitHub ActionsWindsurf AINext.js

Автодеплой Next.js на Vercel с Windsurf AI

Реальный кейс: GitHub Actions пайплайн для автодеплоя Next.js с Tailwind и shadcn/ui на Vercel. Windsurf AI генерирует YAML, проверяет diff. Минимум шагов, максимум предсказуемости. Заберите workflow и ускорите CI/CD уже сегодня!

Ключевые выводы

  • 1Простой пайплайн: checkout, setup Node 20, npm ci, build, vercel deploy — на merge в main.
  • 2Windsurf AI как агент: генерит YAML, подсвечивает мелочи вроде content в tailwind.config.js.
  • 3Tailwind purge: указывайте пути ['./app/**/*.{ts,tsx}'], избегайте динамических классов.
  • 4Vercel: используйте CLI с токеном из Secrets, отключите автодеплой в UI.
  • 5Человек в контроле: ревью diff от ИИ для надежности.
4 мин609 слов
3
Автодеплой Next.js на Vercel с Windsurf AI

Вайб-кодинг в 2026 — это когда ты не воюешь с инфрой, а она работает на тебя. В этой статье покажу один конкретный кейс из реального проекта: как я собрал GitHub Actions пайплайн с Windsurf AI для автодеплоя React/Next приложения с Tailwind и shadcn/ui на Vercel. Без магии, без маркетинга, только инженерные решения и паттерны, которые можно забрать себе уже сегодня.

Контекст: небольшая fullstack-команда, Next.js 13+, App Router, Tailwind CSS и shadcn/ui для UI, Vercel как хостинг. Windsurf используем как инженерного агента: он помогает генерить yaml, проверять diff’ы и не забывать мелочи. Человек — в контроле, ИИ — в поддержке.

Почему Tailwind + shadcn/ui — база для вайб-кодинга

Tailwind CSS — утилитарный CSS-фреймворк, который позволяет собирать интерфейсы из готовых классов, а не писать кастомный CSS. В React классы задаются через className, что избегает конфликтов с зарезервированным class. Ключевое — purge: при правильной настройке content Tailwind вырезает неиспользуемые стили, и CSS остается легким, что критично для продакшена.

shadcn/ui поверх этого дает готовые доступные компоненты, которые живут прямо в репозитории. Нет черного ящика, все расширяемо. Именно эта комбинация хорошо масштабируется и идеально ложится в CI/CD.

Архитектура пайплайна: минимум шагов, максимум эффекта

Цель пайплайна простая: каждый merge в main — автоматический деплой на Vercel. Без ручных кликов. GitHub Actions выступает оркестратором, Vercel — исполнителем.

  • Триггер: push в main
  • Шаг 1: checkout кода
  • Шаг 2: установка Node.js
  • Шаг 3: установка зависимостей
  • Шаг 4: build (Tailwind + Next)
  • Шаг 5: deploy в Vercel

Никаких излишеств. Чем проще пайплайн, тем меньше он ломается.

GitHub Actions workflow

 name: Deploy to Vercel
 on:
 push:
 branches: [main]

 jobs:
 deploy:
 runs-on: ubuntu-latest
 steps:
 - uses: actions/checkout@v4
 - uses: actions/setup-node@v4
 with:
 node-version: 20
 - run: npm ci
 - run: npm run build
 - run: npx vercel deploy --prod --token=${VERCEL_TOKEN}

Это база. Дальше начинается интересное — роль Windsurf.

Windsurf AI как инженерный агент в CI

Windsurf я использую не как «автопилот», а как парного инженера. Паттерн такой:

  • Я описываю задачу на человеческом языке
  • Windsurf генерирует черновик workflow
  • Я ревьюю, режу лишнее, добавляю контекст

Например, он сразу подсказал вынести VERCEL_TOKEN в GitHub Secrets, добавить npm ci вместо install и зафиксировать Node 20. Мелочи, которые часто забываются.

Плюс — Windsurf хорошо ловит проблемы Tailwind: напоминает проверить content в tailwind.config.js, если после билда пропали стили. Это частая боль, особенно с динамическими классами, которые не purge’ятся.

Нюансы Tailwind и shadcn/ui в CI

Несколько практических моментов, которые всплыли в пайплайне:

  • Всегда проверяйте content пути: ['./app/**/*.{ts,tsx}', './components/**/*.{ts,tsx}']
  • Не используйте динамические классы вида bg-${color}-500 — Tailwind их вырежет
  • shadcn/ui лучше коммитить целиком, без npm-пакета

Tailwind в крупных проектах реально ускоряет разработку и уменьшает CSS-бандл, если purge настроен правильно. Это ощущается уже на CI, когда build становится быстрее.

Деплой на Vercel: без сюрпризов

Vercel хорошо дружит с GitHub Actions. Достаточно токена и проекта. CLI делает всю работу. Официальная документация Vercel подробно описывает этот флоу, и он стабилен уже несколько лет.

Важно: я отключаю автодеплой из Vercel UI и оставляю только CI. Один источник правды.

Итоговый вайб: человек + ИИ + простой CI

Этот пайплайн — не про «самый умный ИИ», а про правильное разделение ролей. GitHub Actions делает рутинную работу. Vercel — хостинг. Windsurf — инженерный ассистент, который подсвечивает ошибки и экономит время.

Если вы уже работаете с Next.js, Tailwind и shadcn/ui, я рекомендую пересобрать свой CI в этом ключе. Минимум шагов, максимум предсказуемости. Это и есть вайб-кодинг — когда деплой происходит сам, а ты фокусируешься на продукте.

В следующих статьях разберем, как подключить агентный ИИ к PR-флоу и ревью кода. А пока — забирайте паттерн, адаптируйте под себя и не усложняйте там, где можно проще.

#GitHub Actions#Windsurf AI#Next.js#Vercel#Tailwind CSS#shadcn/ui#CI/CD#автодеплой#вайб-кодинг

Часто задаваемые вопросы

Как Windsurf AI помогает в настройке CI?

Опишите задачу — он генерит YAML черновик, подсказывает Secrets, проверяет Tailwind content и diff.

Почему npm ci вместо npm install в пайплайне?

npm ci быстрее, чище устанавливает из package-lock.json, идеально для CI без мутаций.

Что делать, если Tailwind стили пропадают после билда?

Проверьте content пути в tailwind.config.js: ['./app/**/*.{ts,tsx}', './components/**/*.{ts,tsx}']. Избегайте динамических классов.

Нужен ли Vercel токен и как его добавить?

Да, создайте VERCEL_TOKEN в GitHub Secrets и используйте в шаге: npx vercel deploy --prod --token=${VERCEL_TOKEN}.

Можно ли коммитить shadcn/ui как npm-пакет?

Нет, лучше коммитить компоненты в репозиторий — полная расширяемость без внешних зависимостей.