2.1 KiB
2.1 KiB
C2 Решение по стеку web prototype
Дата: 2026-03-07
Статус: approved
Владелец: Engineering
1) Принятое решение
- Для web prototype используется
Vite + React + TypeScript(SPA). - Бэкенд-ядро остаётся в Go (
/api/v1+ SSE/api/v1/events/stream). Next.jsна MVP-этапе не используется.
2) Почему так
- В проекте уже есть готовый Go API-контракт; отдельный Node/SSR-слой не обязателен.
- Цель текущего этапа: рабочая control-plane панель, а не SEO-публичный сайт.
Viteдаёт быстрый старт, простой билд и минимальные операционные риски.
3) Базовый frontend stack
react+typescriptvitereact-router@tanstack/react-queryдля RESTEventSource(SSE) для realtime- lightweight UI state (например,
zustand) только для локального состояния интерфейса
4) Когда рассматривать переход на Next.js
- Появляется требование SSR/SEO.
- Нужен встроенный BFF/edge middleware в самом фронтенд-проекте.
- Требуется server-side session orchestration, которую нецелесообразно держать в Go gateway.
5) Архитектурный инвариант
- Независимо от UI-фреймворка, источник истины остаётся в Go-ядре.
- UI не дублирует бизнес-логику маршрутизации/transport/policy.
- Контракт для web/iOS/Android остаётся единым:
/api/v1.
6) Статус внедрения
- Создан модуль
selective-vpn-web/(foundation level). - На текущем этапе включены read-only проверки и SSE connectivity; mutating controls будут подключаться по фазам P1/E4.