Предисловие

Скрытый текст

Здесь не будет дурацких промптов и пустых философских размышлений о том, отнимет ли искусственный интеллект вашу работу. Оставьте эти утешительные беседы инфоцыганам и теоретикам. Вы здесь для того, чтобы изучить тонкую науку и искусство системной инженерии. Я не ожидаю, что многие из вас оценят красоту изящно настроенного 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?”

Соответственно вместо 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 временами тупит).

Готовый конфиг
{
  "mcpServers": {
    "filesystem": {
      "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "C:\\Users\\User\\a_projects",
        "C:\\Users\\User\\.ssh"
      ],
      "env": {}
    },
    "sequential-thinking": {
      "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate",
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-sequential-thinking"
      ],
      "env": {}
    },
    "context7": {
      "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate",
      "command": "npx",
      "args": [
        "-y",
        "@upstash/context7-mcp"
      ],
      "env": {}
    },
    "serena": {
      "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate",
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/oraios/serena",
        "serena",
        "start-mcp-server"
      ],
      "env": {}
    }
  }
}
Куда тыкать в antigravity если chatgpt не объяснил

Файлик по пути аналогичном "C:\Users\User.gemini\antigravity\mcp_config.json" или как на скриншотах ниже:

Skills

Естественно реестр 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 задачу;

  2. Если 1 задача не решается в 1 чате - открывать новый и писать задачу чуть более конкретно и структурно;

  3. Если не получается, смотри п.1;

  4. Не надо задавать никаких ролей, целей и критеев в промтах и писать их на английском, с 2024 года модели стали куда умнее и это вредит даже;

  5. Если сложно просто формулировать в чате и все равно не получается, воспользоваться подходом “уточка”.

  6. Подход уточка (Rubber Ducking):

    1. Открываешь чат, например с gemini и разовариваешь с ней до тех пор, пока ты сам не поймешь что делаешь и пока она не сформулирует чекто задачу, пишешь ее context.md;

    2. Копируешь context.md в отдельный чат и просишь продумать там набор архитектурных изменений - vision.md;

    3. Копируешь в 3 чат и просишь написать задачи для изменения проект до vision.md с учетом context.md в tasks.md;

    4. Задаешь в 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 c asyncio );

  • Практики тех. совершенства: 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.

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

Главное не останавливайся, уверен, главное чтобы вайбкодинг не перерос во что-то вроде этого как у меня.