Первый проект от нуля до деплоя
Создаём первый проект: 7 фаз от подготовки VPS до деплоя. Пошаговый процесс с командой /new-project.
Простым языком
Первый проект — это как первый блин. Главное не то чтобы он был идеальным, а то чтобы ты прошёл путь от идеи до работающего сайта. Один раз — и дальше всё пойдёт легче.
В этом гайде ты возьмёшь любую идею и сделаешь её реальной. Шаг за шагом: придумал → описал → Claude написал код → сайт в интернете. Буквально за один день.
Обзор: 7 фаз создания проекта
Весь процесс запускается командой /new-project. Claude сам определяет готовность каждой фазы, показывает результат и переходит дальше. Твои точки входа — одобрить план и ответить на вопросы бизнес-аналитика.
- Фаза 0 — Инфраструктура (VPS, Docker, Nginx, SSL)
- Фаза 1 — User Spec: кто пользователь, что хочет, зачем
- Фаза 2 — Tech Spec: стек, архитектура, модель данных
- Фаза 3 — Декомпозиция: атомарные задачи + волны
- Фаза 4 — Реализация: TDD-цикл + чекпоинты
- Фаза 5 — Тестирование: до 14 типов тестов
- Фаза 6 — Финализация: QA + деплой + документация
Ожидаемые временные рамки
Фаза 0: Инфраструктура ~30 мин (один раз, потом переиспользуется)
Фаза 1: User Spec ~1 час (зависит от сложности проекта)
Фаза 2: Tech Spec ~30 мин
Фаза 3: Декомпозиция ~20 мин
Фаза 4: Реализация дни/недели (основной объём работы)
Фаза 5: Тестирование ~20% от времени реализации
Фаза 6: Финализация ~1-2 часаФаза 0: Инфраструктура
Поднять VPS, настроить безопасность, Docker, Nginx + SSL. Можно пропустить, если сервер уже настроен.
# Базовая защита нового VPS (Ubuntu 22.04)
apt update && apt upgrade -y
# Файрвол
ufw default deny incoming
ufw allow ssh
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
# Docker
curl -fsSL https://get.docker.com | sh
usermod -aG docker $USER
# Docker Compose (plugin)
apt install docker-compose-plugin -y
# Проверка
docker --version
docker compose versionФазы 1–2: Спецификации
Субагент business-analyst проводит глубинное интервью: 7 циклов вопросов от общего понимания до edge-cases. Он не просто спрашивает — предлагает варианты ответов, форматирует требования.
Примерные вопросы бизнес-аналитика:
- Кто будет пользоваться сервисом? Опиши одного конкретного пользователя
- Что самое важное должен уметь делать этот пользователь?
- Как выглядит успешное использование через 3 месяца?
- Что не входит в первую версию?
- Какие у тебя ограничения: бюджет, время, технические?
Результат — user-spec.md. Затем system-analyst формирует tech-spec.md с архитектурой, стеком, моделью данных, всеми API-эндпоинтами.
Не торопи бизнес-аналитика. Чем подробнее user-spec — тем меньше переделок в реализации.
Фаза 3: Декомпозиция
Tech-spec разбивается на атомарные задачи. Каждая задача содержит:
- Описание — что конкретно нужно сделать
- Пошаговый план — 5–10 шагов реализации
- TDD-якорь — названия тестов до написания кода
- Файлы для изменения — контекст без лишнего
- Acceptance criteria — как проверить, что готово
## Task-003: POST /api/auth/register
Создать эндпоинт регистрации пользователя.
### Шаги:
1. Добавить роут в src/api/auth.ts
2. Валидация { email, password, displayName }
3. Проверить уникальность email через UserService
4. Хэшировать пароль (bcrypt, rounds=12)
5. Создать запись User в БД
6. Вернуть { id, email, displayName, token }
### TDD-якорь:
- test_register_creates_user_200
- test_register_duplicate_email_409
- test_register_invalid_email_400
- test_register_weak_password_400
### Файлы:
- src/api/auth.ts (изменить)
- src/services/user.ts (изменить)
- tests/api/auth.test.ts (создать)Фаза 4: Реализация
Два режима: последовательный (один агент) или командный (Agent Teams, задачи параллельно волнами). Для маленьких проектов — последовательный. Для сложных — Agent Teams.
TDD-цикл для каждой задачи:
- Напиши тесты (они красные — реализации нет)
- Напиши минимальный код (тесты становятся зелёными)
- Рефакторинг (тесты всё ещё зелёные)
- Ревью + коммит
Фаза 6: Деплой
Типичный docker-compose.yml для продакшена:
version: '3.9'
services:
app:
image: my-app:latest
restart: unless-stopped
env_file: .env
ports:
- "3000:3000"
depends_on:
db:
condition: service_healthy
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_DB: myapp
POSTGRES_USER: ${DB_USER}
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "${DB_USER}"]
interval: 10s
retries: 5
volumes:
pgdata:Советы для первого раза
- Начни с малого — Telegram-бот, простое API, лендинг. Не Netflix
- Коммить после каждого рабочего блока — это страховка. Сломалось — откати к рабочему коммиту
- Не оптимизируй раньше времени — сначала пусть работает
- Читай логи — Docker logs, Nginx logs, application logs. Там все ответы
> Пока нет комментариев