Предисловие
Здесь не будет дурацких промптов и пустых философских размышлений о том, отнимет ли искусственный интеллект вашу работу. Оставьте эти утешительные беседы инфоцыганам и теоретикам. Вы здесь для того, чтобы изучить тонкую науку и искусство системной инженерии. Я не ожидаю, что многие из вас оценят красоту изящно настроенного ETL пайплайна или тонкую гармонию микросервисной архитектуры. Однако для тех избранных, кто обладает готовностью учиться, я могу показать, как околдовать разум разработчика, сварганить безупречную архитектуру и разлить по флаконам технический авторитет.
Это руководство для тех, кто готов инвестировать в свою техническую насмотренность и техническую эмпатию. Если вы не можете поставить VPN или жалеете двадцать долларов на подписки → закройте эту статью. Мы будем строить полноценный SaaS. Почему? Потому что с вероятностью 90% вы работаете или будете работать именно с SaaS-продуктами. Наш инструмент → контролируемый Vibe Coding , а наш полигон → реальный пет-проект.
Гайд рассчитан на 10 основных этапов (~30 дней) + 10 продвинутых для желающих погрузиться глубже. Преветствую тебя, оставшийся читатель.
Выбор проекта
При выборе проекта я рекомендую не брать всеми желаемые игры или гениальные мобильные приложения. Стоит учитывать что на 23.03.2026:
- Модели отлично работают с Python, JS, TS, React, Rust;
- Тебе нужно при разработке проекта полкрыть полностью стандартные решения вроде клиент-серверной архитектуры и REST;
- Ты должен столкнуться с типичными практиками, такими как юнит-тесты, контейнеры и логирование;
- Домен проекта должен быть тебе понятен и пригодиться в целом;
- Сервис должен наполняться живыми данными;
- Есть смысл расширять проект до 2 фронтенд-клиентов, запускать на сервере и интегрировать туда ИИ.
Поэтому у меня для тебя идеальное решение - сделать сервис ИИ ассистента по твоей команде, который на базе таск-трекера позволяет тебе отвечать на вопросы “Как дела”, “Какой загруз у Федора и тп”.
Если вдруг ты новичок, у тебя нет тасктрекера с данными команды за пару месяцев под рукой и тебя не испугал этот гайд, не беда. Делай сервис “Аналитик Open Source”, который может отвечать на вопросы: “Какие критичные баги сейчас висят в React?”или “О чем спорят разработчики в последнем Pull Request?”
Если вдруг ты новичок, у тебя нет тасктрекера с данными команды за пару месяцев под рукой и тебя не испугал этот гайд, не беда. Делай сервис “Аналитик Open Source”, который может отвечать на вопросы: “Какие критичные баги сейчас висят в React?”или “О чем спорят разработчики в последнем Pull Request?”
Соответственно вместо Jira API → GitHub API, вместо Atlassian MCP → GitHub MCP.
- python, fastAPI, postgres, uv
- react, typescript, vite, shadcn, tailwind
Но в целом в каждом этапе будет рекомендация что добавить.
Он будет состоять из AI code tool + mcp + skills. Заполнение всяких .cursorrules, gemini.md, claude.md,agent.mdне рекомендую делать пока вы не научитесь толком пользоваться и сейчас в целом часто избыточно.
AI coding tool
Я рекомендую для старта простоhttps://one.google.com/about/google-ai-plans/AI Pro за 20$. Почему:
- В целом для обучения без разницы, не обязательно сильно настраивать claude code, приучаться к codex или cursor;
- В нем есть IDE Antigravity и CLI Gemini и все на лимитах в момент времени, а не запросах.
По-умолчанию использовать фронтир модели, переключаться на самый последние, например gemini-3.1-pro high.
MCP (Model Context Protocol)
Тут не надо мудрить, джентельменский набор из:
- serena;
- sequential-thinking;
- context7;
- filesystem на всякий (antigravity временами тупит).
Естественно реестрhttps://skills.sh/и npm install -g @skills/cli (глобально или как хотите).
Какие скиллы поставить - релевантные проекту, но для примера будут для каждого этапа добавляться.
Environment
Что установить на комьютер:
- python;
- npm;
- pip (потом от него откажемся в пользу uv);
- git.
В целом тебе потом потребуется IDE (например Antigravity), Docker Desktop, DBeaver.
Как устанавливать сетап
Гайда не будет, открывай любой LLM SaaS, напримерhttps://gemini.google.com/и разбирайся сам, как установить на Windows 11 python и тд, это этап 0.
Как промптить и работать с ИИ
Первые 10 этапов я рекомендую не париться на этот счет, однако руководствоваться несколькими простыми правилами:
- Бить работу на задачи и делать в одном чате только 1 задачу;
- Если 1 задача не решается в 1 чате - открывать новый и писать задачу чуть более конкретно и структурно;
- Если не получается, смотри п.1;
- Не надо задавать никаких ролей, целей и критеев в промтах и писать их на английском, с 2024 года модели стали куда умнее и это вредит даже;
- Если сложно просто формулировать в чате и все равно не получается, воспользоваться подходом “уточка”.
- Подход уточка (Rubber Ducking):Открываешь чат, например с gemini и разовариваешь с ней до тех пор, пока ты сам не поймешь что делаешь и пока она не сформулирует чекто задачу, пишешь ее context.md;Копируешь context.md в отдельный чат и просишь продумать там набор архитектурных изменений - vision.md;Копируешь в 3 чат и просишь написать задачи для изменения проект до vision.md с учетом context.md в tasks.md;Задаешь в 4 чате что значит каждый таск в tasks.md и если тебя устраивает просишь сделать по ним.
Этап 1. Ответы в телеграм по джире от ИИ
Поставь Antigravity IDE (или что вам больше нравится), выпустить AI API токен (например, gemini бесплатной квоты хватит), выпустить Jira API токен положить это в .env и можно прямо так в чате Antigravity написать “сделай телеграм бота чтобы ходил по mcp в джиру и отвечал в чате на вопросы, без докера на фастапи просто”.
- Ожидаемый результат:Бот работает локально; ИИ имеет доступ к Jira, но использует его как черный ящик;
- Фичи:Базовый чат в Telegram; Gemini API самостоятельно решает, когда и как вызывать Atlassian MCP с использованием вашего токена;
- Тех стек:Python, FastAPI, Gemini API, Atlassian MCP;
- Практики тех. совершенства:нет (не думаю что переменные окружения, зависимости, хосты и порты стоит считать).
Если вдруг застрянешь, то вот готовый проект.https://github.com/letya999/tg-jira-answerer-mcp
(Единственно в нем используется Open AI, попроси поправить, у меня на момент написания статьи не генерировался токен почему-то)
Подсказка: Используйте проверенный сервер @aashari/mcp-server-atlassian-jira, а не @atlassian/mcp-server.
Этап 2. Прямая работа с Jira API и контроль версий
MCP - это удобная абстракция, которая скрывает от тебя что происходит, и именно поэтому мы от неё уходим. Ты почуствовал могущество, пора его приручить.
Инициализируй гит, работай в мейне. Переведи проект на получение задач одного конкретного проекта по API. Сделай 3 тул кол - скрипта с API (пользователи в проекте, статусы в проекте, детали задач).
Добавь скиллhttps://skills.sh/jeffallan/claude-skills/fastapi-expert.
- Ожидаемый результат:Отказ от непрозрачного MCP в пользу контролируемых REST-запросов; сохранение истории изменений кода;Не забудь добавить .venv, .gitignore и .env.example!
- Фичи:Выкачка задач строго 1 проекта за последние 30 дней напрямую через HTTP-запросы;
- Тех стек:Jira REST API, HTTP-клиент (requests), Git;
- Практики тех. совершенства:Local Version Control System, Tool Calling, API Integration.
Этап 3. Реляционная БД и полнотекстовый поиск
Сделай SQL схему из задач, журнала изменений задач. Добавь в ТГ бот кнопку для загрузки свежих данных за последние 30 дней с затиранием того что уже есть в БД (это деструктивно, но грузить тебя всякими append only и датаинжинирингом будет too much). Пусть ИИ отвечает на основе топ 5 результатов того что вернет БД.
- Ожидаемый результат:Данные сохраняются локально для быстрого доступа;
- Фичи:Синхронная загрузка задач и чейнджлогов по кнопке, поиск по тексту задач средствами БД;
- Тех стек:PostgreSQL FTS (tsvector/tsquery), чистый SQL (схемы таблиц), полнотекстовый поиск BM25 PostgreSQL.
- Практики тех. совершенства:Database Design, SQL Migrations, Information Retrieval.
Подсказка: установи tsvector или аналог, а также поставь DBeaver.
ORM пока не трогаем, работаем с чистым SQL - поймёшь зачем на этапе 9.
Этап 4. Векторный поиск и гибридный RAG
Добавь как сущности �� схему исполнителей, статусы и типы задач в отдельные таблицы. Произведи SQL миграции через выполнение SQL-скриптов руками (без Alembic). ID у сущностей сделай просто int.
Векторизуй загруженные задачи и научи ИИ искать релевантный контекст в двух таблицах: сначала ищи топ-5 задач по смыслу вопроса, потом по каждой задаче подтягивай связанные записи из changelog, и передавай это в контекст модели единым блоком. Именно так работает RAG: не один большой поиск, а цепочка запросов где результат первого определяет что искать во втором.
Чтобы это не тормозило, добавь индексы. На таблице задач: индекс поassignee_id,status_id,type_id(те самые новые сущности), и векторный индекс HNSW в Qdrant. На changelog: индекс поtask_id. Попроси AI IDE объяснить тебе разницу междуEXPLAINиEXPLAIN ANALYZEв PostgreSQL и прогони оба на своих запросах.
JOIN выглядит так: ты получил из Qdrant списокtask_id→ идёшь в PostgreSQL сWHERE task_id IN (...)→ делаешьLEFT JOIN changelog ON changelog.task_id =tasks.id→ получаешь задачи вместе с историей изменений одним запросом. Всё это передаётся в промпт как структурированный контекст.
Добавь скилл:https://skills.sh/github/awesome-copilot/postgresql-optimization
- Ожидаемый результат:ИИ отвечает на основе смыслового понимания задач с учётом их истории; запросы не тормозят даже на тысячах записей;
- Фичи:Векторизация задач, гибридный поиск (tsvector + Qdrant), JOIN задач с changelog для обогащения контекста, индексы на foreign keys и векторный HNSW;
- Тех стек:Qdrant, PostgreSQL (HNSW, tsvector, EXPLAIN ANALYZE);
- Практики тех. совершенства:RAG, Hybrid Search, Vector Databases, Query Optimization.
Подсказка: пока никакого чистого кода, OpenAPI спецификаций и докера. Миграции руками, это намеренно, на следующем этапе поймёшь почему это боль.
Этап 5. Базовые практики качества
Теперь когда поиск работает, самое время не добавлять фичи, а навести порядок. Это скучно. Это важно. Именно это отличает код который можно поддерживать от кода который боятся трогать.
Добавь скилл:https://skills.sh/supercent-io/skills-template/backend-testing
- Ожидаемый результат:Кодовая база покрыта тестами, линтеры не дают писать грязный код, зависимости управляются нормально;Добавь линтеры ruff, black, mypy;Перейди на uv, он заменит pip, спроси у AI IDE чем он лучше и попроси мигрировать проект;Добавь pytest, задизайнь самостоятельно 3 теста (например: поиск возвращает результаты, пустой запрос не падает, JOIN не дублирует строки) и покрой 50% кода.
- Фичи:Линтинг, типизация, тесты на поисковую логику;
- Тех стек:ruff, black, mypy, uv, pytest;
- Практики тех. совершенства:Static Analysis, Test Coverage, Dependency Management.
Подсказка: пока никакого OpenAPI, докера и алембика, всё это придёт, но позже.
Этап 6. Веб-интерфейс, миграции и Long Polling
Сделай веб приложение на реакте и запусти на локалхосте, так чтобы оно могло стучаться в fastapi сервис по REST API, причем для получения ответа пусть происходит опрос сервера раз в 5 секунд. Также добавь в БД сущность спринты и переведи все ID на UID v4, но проведи миграции на Alembiс (кайфани).
- Ожидаемый результат:Переход от мессенджера к браузерному UI с запуском на локальной машине, удобные миграции БД:Покрой тестами до 75% и обязательно добавь фикстуры;Добавь JWT-auth c сохранением в local storage (пока так, потом поменяется).
- Фичи:Простой веб-чат; обновление интерфейса через периодические запросы к серверу, а также удобные миграции;
- Тех стек:HTML/JS или базовый React, REST API;
- Практики тех. совершенства:Client-Server Communication, Polling.
- Подсказка: данные ты потеряешь, но не беда, тут не страшно!
Этап 7. Контейнеризация и WebSockets
Перестань страдать, установи докер-клиент, запусти в докер контейнере отдельными образами фронтенд, бекенд и БД. Переключи на вебсокет чат, а также добавь OpenApi спецификацию и подергай запросы через Swagger.
Добавь скиллhttps://skills.sh/sickn33/antigravity-awesome-skills/docker-expert.
- Ожидаемый результат:Мгновенная доставка сообщений в чат без лишней нагрузки на сеть; унификация среды запуска;Добавь eslint (линтер для реакта);Добавь тайп чекер, напримерtsc;Раздели /frontend и /backend на отдельные папочки со своими докер-файлами.
- Фичи:Двунаправленный чат в реальном времени; запуск базы, бэкенда и RAG одной командой;
- Тех стек:WebSockets, Docker, Docker Compose;
- Практики тех. совершенства:Real-time Communication, Containerization.
Этап 8. Развертывание на удаленном сервере (VPS)
Возьми любого провайдера какой тебе больше подходит и подешевле. Я рекомендую взять просто digital ocean и его бесплатные кредиты тут, тебе на месяца 2-3 хватит. Не пугайся ubuntu консоли и SSH, я в тебя верю. Домен не покупай, настрой доступ просто по IP, но добавь свой комьютер в вайт лист, всех остальное в блеклист. Деплоится черновик намеренно.
Добавь (если готов) скиллhttps://skills.sh/bobmatnyc/claude-mpm-skills/digitalocean-overview.
- Ожидаемый результат:SaaS-продукт доступен в интернете 24/7 по публичному IP-адресу;
- Фичи:Ручной деплой на облачный сервер; базовая настройка портов;
- Тех стек:DigitalOcean Droplet (или аналог VPS), SSH, Linux;
- Практики тех. совершенства:Server Provisioning, Manual Deployment.
Этап 9. Командный процесс и Atomic Design на фронтенде
Познай Component Driven Design. Сгенерируй из OpenAPI схемы модели с помощью hey-api. Сделай общие стили и тему (типографика, цвета, иконки, шрифты и тд) . На базе темы и моделей сделай нужные атомы, вроде кнопки. Из атомов собери молекулы (поле ввода в чат) и из атомов лайауты. Каждый компонент делай через сторибук и проверяй там. Каждый компонент наполни через моки.
Добавь скиллы:https://skills.sh/vercel-labs/agent-skills/vercel-react-best-practices,https://skills.sh/shadcn/ui/shadcn,https://skills.sh/wshobson/agents/tailwind-design-system
Добавьhttps://github.com/github/github-mcp-server
- Ожидаемый результат:Внедрение процесса безопасн��го слияния кода; фронтенд готов к масштабированию и переиспользованию UI.Выложи репозиторий на гитхаб в privateформате;Сделай 2 основных ветки - main и dev;Запрети писать в main, только через пул реквест и мерж дев-а;Делай фича ветки от dev, затем пул реквесты в дев (дев не удалять;Проси твой AI IDE делать код-ревью открытых пул реквестов, закрывай их и мержи потом dev в main.
- Фичи:Разработка интерфейса строго по компонентам (атомы, молекулы, организмы, лайауты); работа через ветки;
- Тех стек:GitHub, React (react 19 + ts 6 + vite 6 + shadcn + tailwind + radiux ui + zod + storybook + hey-api + tanstack;
- Практики тех. совершенства:GitHub Flow (Pull Requests), Component-Driven Development, Atomic Design.
- Подсказка: через github mcp можно без команд просто по-умолчанию это делать и просить ИИ открывать пул реквесты.
Этап 10. Чистая архитектура бэкенда и стейт-менеджмент UI
Полностью перепиши бекенд код, чтобы у тебя сохранялась чистая структура и зоны отвественности. Отрефактори на clean code + vertical feature slicing design, фронтенд также на vertical feature slicing design + store stack.
- Ожидаемый результат:Избавление от спагетти-кода; жесткое разделение ответственности на бэкенде и фронтенде;
- Фичи:Бэкенд:монолит разделен на модели, схемы, репозитории, сервисы, провайдеры (Vertical Feature Slicing).Фронтенд:хуки, пропсы, глобальный стор, мутации/квери; компонентные тесты;
- Тех стек:SQLAlchemy, Pydantic, React Query, Zustand, Vitest;
- Практики тех. совершенства:Clean Architecture, Domain-Driven Design concepts, State Management, Component Testing.
Поздравляю ты справился, Темный Лорд годиться тобой, ты можешь называть себя принцем-полукровкой по праву. Но если ты настолько самоуверен, то можешь попробовать погрузиться в глубины магии.
А что дальше? Дальше идут этапы для тех кто хочет дорасти до скорее технически подкованного менеджера, а не просто технически грамотного PM - здесь уже нет готовых подсказок, только направление.
Этап 11. Переход к deep-coding
- Переходи на SDD, например используй openspec, проще всего начать с установки этих скиллов и выдаче задач с упоминанием скиллаhttps://skills.sh/forztf/open-skilled-sdd
- Ищи или пиши для себя релевантные скиллы, устанавливай их в корень диска в .agents и ставь симлинки
- Переходи на более мощные инструменты: claude code ← opencode ← codex ← gemini cli ← codex app ← cursor ← antigravity
- Переходи на более мощные инструменты: opus ← sonnet ← glm-5 ← gpt 5.4 ← остальное
- Пробуй работать одновременно в нескольких инструментах, делегируя задачи например из claude в gemini cli с помощью скиллов/хуков, напримерhttps://github.com/letya999/claude_puppets_gemini_cli_and_codex
Этап 12. Асинхронная работа с данными и кеширование
Теперь не по кнопке в интерфейсе запускай извлечение данных их джиры и жди пока они загрузятся, а сделай выгрузку регулярным таском раз в 15 минут, который можно также преждевременно запустить по кнопке и получать его статус по эндпойнту.
Добавь скиллhttps://skills.sh/wshobson/agents/async-python-patterns,
- Ожидаемый результат:Сервер не блокируется при выкачке тысяч задач из Jira, пользователь не ждет ответа перед пустым экраном, частые запросы не нагружают базу данных;
- Фичи:Кеширование частых вопросов к ИИ, перевод синхронной загрузки задач из Jira на фоновые джобы (Jobs); мгновенный ответ API о старте задачи, уведомление фронтенда об окончании через WebSocket;
- Тех стек:Redis (как In-memory кеш и брокер очередей), Celery (или SAQ casyncio);
- Практики тех. совершенства:Asynchronous Processing, Message Queuing, Data Caching, Background Job Processing;
- Подсказка: если хочет чтобы и другие могли воспользоваться (похвалиться), а не только ты, можешь без сложных танцев с бубном настроить прокси через Caddy и http basic-auth.
Этап 13. Разделение на микросервисы
- Ожидаемый результат:Монолит распилен на физически независимые компоненты для раздельного масштабирования;
- Фичи:ВыделениеIngest Service(выкачка из Jira),Rag Service,Chatотдельные приложения, общающиеся друг с другом;
- Тех стек:REST API между сервисами, Docker Compose (обновленный для запуска нескольких бэкендов);
- Практики тех. совершенства:Microservices Architecture, Service Decoupling.
Этап 14. Событийно-ориентированная архитектура и E2E тесты
- Ожидаемый результат:Микросервисы общаются через события без жесткой связности; критические бизнес-пути покрыты автотестами полного цикла;
- Фичи:Замена REST-вызовов между сервисами на топики Kafka (задачи_обновлены, извелчение_данных, чат_ответ). Сквозные тесты бэкенда (API) и фронтенда (имитация кликов пользователя в браузере);
- Тех стек:Apache Kafka, Playwright (UI E2E), Pytest (Backend E2E);
- Практики тех. совершенства:Event-Driven Architecture (EDA), End-to-End Testing.
Этап 15. Непрерывная интеграция и доставка (CI/CD)
- Ожидаемый результат:Ручной деплой запрещен; код автоматически проверяется и попадает на сервер при каждом слиянии;
- Фичи:Автоматический прогон E2E-тестов и линтеров; сборка Docker-образов в облаке; пуш на VPS;
- Тех стек:GitHub Actions, Docker Registry;
- Практики тех. совершенства:Continuous Integration (CI), Continuous Deployment (CD), Pipeline Automation.
Этап 16. Мобильный клиент и Shared-пакет
- Ожидаемый результат:SaaS доступен со смартфона, фронтенд-логика и компоненты где не надо не дублируются, а переиспользуется между вебом и мобилкой;
- Фичи:Кроссплатформенное приложение с интерфейсом чата, вынос общих типов, хуков API и бизнес-логики в локальный npm-пакет;
- Тех стек:React Native (Expo), Turborepo / npm workspaces;
- Практики тех. совершенства:Cross-platform Development, Code Sharing, Monorepo Architecture.
Этап 17. Админка, RBAC, Cookies и API Gateway
- Ожидаемый результат:Единая точка входа для всего трафика, безопасное управление сессиями, разграничение прав доступа;
- Фичи:Переход от JWT в localStorage к защищенным HTTP-only Cookies, внутренняя панель администратора; ролиAdmin/User,шлюз, маршрутизирующий запросы к нужным микросервисам;
- Тех стек:API Gateway (Kong / Nginx), React-admin, HTTP-only Secure Cookies;
- Практики тех. совершенства:Role-Based Access Control (RBAC), API Gateway Pattern, Secure Session Management.
Этап 18. Наблюдаемость, окружения и нагрузочное тестирование
- Ожидаемый результат:Полный контроль за здоровьем системы, проверка пределов отказоустойчивости, строгая изоляция тестовых баз;
- Фичи:Дашборды загрузки CPU/RAM, Telegram-алерты об ошибках, генерация 10000 одновременных запросов для проверки падения, разделение на.env.dev,.env.stageи тд, добавлениеdocker-compose.dev.ymlи тд;
- Тех стек:Prometheus, Grafana, Locust (нагрузочное тестирование).
- Практики тех. совершенства:Observability, Alerting, Load / Stress Testing, Environment Management.
Этап 19. Децентрализация: Отдельные репозитории и Managed БД
- Ожидаемый результат:Инфраструктура готова к распределенной разработке несколькими командами, отказ от самописного управления базами данных;
- Фичи:Распил монорепозитория (каждый микросервис и клиент в своем репо); публикация Shared-пакета в приватный реестр; переезд PostgreSQL и Redis из локального Docker-контейнера в управляемые облачные сервисы (DBaaS);
- Тех стек:npm private registry, Managed PostgreSQL;
- Практики тех. совершенства:Multi-repo Strategy, Database as a Service (DBaaS), Package Management.
Этап 20. Infrastructure as Code (IaC), Reverse Proxy и Домен
- Ожидаемый результат:Инфраструктура описана кодом; продукт доступен по красивому HTTPS-домену;
- Фичи:Поднятие серверов и базы данных скриптами, настройка финального Reverse Proxy для раздачи SSL-сертификатов, привязка доменного имени;
- Тех стек:Terraform, Traefik (или Nginx), Let's Encrypt (SSL), Cloudflare (DNS);
- Практики тех. совершенства:Infrastructure as Code (IaC), HTTPS/SSL Configuration, Reverse Proxying.
Дальше пробуй добавлять фичи и наблюдать не слолось ли чего. Ну а если ты хочешь стань темным лордом, тут я тебе не подскажу, мы все разбираемся как с этим ИИ работать.
Главное не останавливайся, уверен, главное чтобы вайбкодинг не перерос во что-то вроде этого как у меня.