Шаг 5 из 8

Первый проект от нуля до деплоя

Создаём первый проект: 7 фаз от подготовки VPS до деплоя. Пошаговый процесс с командой /new-project.

26.02.2026обновлено 7 апр

Простым языком

Первый проект — это как первый блин. Главное не то чтобы он был идеальным, а то чтобы ты прошёл путь от идеи до работающего сайта. Один раз — и дальше всё пойдёт легче.

В этом гайде ты возьмёшь любую идею и сделаешь её реальной. Шаг за шагом: придумал → описал → Claude написал код → сайт в интернете. Буквально за один день.


Обзор: 7 фаз создания проекта

Весь процесс запускается командой /new-project. Claude сам определяет готовность каждой фазы, показывает результат и переходит дальше. Твои точки входа — одобрить план и ответить на вопросы бизнес-аналитика.

  1. Фаза 0 — Инфраструктура (VPS, Docker, Nginx, SSL)
  2. Фаза 1 — User Spec: кто пользователь, что хочет, зачем
  3. Фаза 2 — Tech Spec: стек, архитектура, модель данных
  4. Фаза 3 — Декомпозиция: атомарные задачи + волны
  5. Фаза 4 — Реализация: TDD-цикл + чекпоинты
  6. Фаза 5 — Тестирование: до 14 типов тестов
  7. Фаза 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-цикл для каждой задачи:

  1. Напиши тесты (они красные — реализации нет)
  2. Напиши минимальный код (тесты становятся зелёными)
  3. Рефакторинг (тесты всё ещё зелёные)
  4. Ревью + коммит

Фаза 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. Там все ответы
TG

> Пока нет комментариев