// технологический стек

Технологический стек OKK.PRO

Платформа контроля качества коммуникаций. Мультиплатформенный продукт с единым дизайн-кодом: веб и мобильные приложения, кастомные сервисы на .NET, Node.js и Python, облачная инфраструктура.

Витрина

Главное в стеке

Ключевые технологии каждого слоя — от мультиплатформенной витрины до кастомных сервисов и облачной инфраструктуры.

Web

React + Next.js

Современный веб-интерфейс на App Router и React Server Components.

Mobile

Expo + React Native

Кросс-платформенное приложение для iOS и Android.

UI Kit

HeroUI + Tailwind CSS

Единый дизайн-кит для web и mobile, accessibility поверх React Aria.

Backend

.NET + ASP.NET Core

DDD-микросервисы на C# с GraphQL-федерацией через HotChocolate Fusion.

Backend

NestJS + tRPC + Fastify

Типобезопасные Node-сервисы с end-to-end контрактами.

Data

PostgreSQL + pgvector

Основная БД с векторным поиском и хранением эмбеддингов.

Infra

Kubernetes (k3s) + Argo CD

GitOps-деплой на Yandex Cloud.

Foundation

TypeScript + Bun

Строгая типизация и единый toolchain разработки.

Архитектура

Как всё устроено

Пять слоёв — от витрины до инфраструктуры — связаны общими контрактами, GraphQL-федерацией и облачным деплоем в Kubernetes.

01Витрина
Next.js · ReactExpo · React NativeHeroUI · Tailwind CSS
02API & Backend
.NET · HotChocolate FusionNestJS · tRPC · FastifyYARP · GraphQL
03Кастомная разработка
Python · FastAPIML-инференсОбработка данных
04Данные & события
PostgreSQL · pgvectorRabbitMQ · MassTransitS3 Object Storage
05Инфраструктура
k3s · Argo CDYandex Cloud · TerraformGrafana · Prometheus
Архитектура одним абзацем

OKK.PRO — мультиплатформенный продукт, объединяющий веб, мобильные приложения и серверные сервисы. Бизнес-логика разбита по DDD-микросервисам на двух платформах: ядро на .NET с GraphQL-федерацией через HotChocolate Fusion за единым шлюзом и Node.js-сервисы на NestJS с tRPC, плюс отдельные Python-сервисы под нестандартные задачи обработки данных. Всё разворачивается по модели GitOps: автоматический деплой в мульти-кластерный Kubernetes на Yandex Cloud. Данные живут в PostgreSQL с расширением pgvector для векторного поиска, события идут через очередь сообщений, а мониторинг и логи обеспечивает стек Grafana.

01 · 8 технологий

Frontend · Web

Веб-приложение на Next.js и React: UI на HeroUI поверх Tailwind, данные через Apollo/GraphQL и TanStack Query, сборка Bun'ом.

TypeScriptОсновной язык, strict + ts-reset, codegen-типы GraphQL
Next.jsApp Router, RSC, Turbopack, standalone output
ReactUI-библиотека (новый JSX transform)
HeroUIОсновной UI-kit (compound-компоненты на React Aria)
Tailwind CSSUtility-CSS, design tokens HeroUI, layout
Apollo ClientGraphQL-клиент основного API
GraphQLЯзык запросов основного API, источник codegen
TanStack QueryServer-state для REST-сервисов
02 · 8 технологий

Mobile

Кросс-платформенное приложение на Expo и React Native с навигацией Expo Router, UI на HeroUI Native поверх Uniwind.

Expo SDKБазовый runtime и toolchain (managed workflow, EAS)
React NativeКросс-платформенный нативный UI-фреймворк (iOS/Android)
Expo RouterFile-based навигация с typed routes
HeroUI NativeОсновной UI-кит компонентов (web parity)
UniwindTailwind CSS v4 runtime для React Native
TanStack QueryКэш и фетчинг REST-данных поверх native fetch
Apollo ClientGraphQL-клиент для основных доменов (Gateway Fusion)
EASСборка и сабмит приложения
03 · 8 технологий

Backend · .NET

DDD-микросервисы CuratorPro на C# и .NET: GraphQL-федерация через HotChocolate Fusion за YARP-шлюзом, события через MassTransit и RabbitMQ.

C#Основной язык всех backend-сервисов CuratorPro
.NETЦелевой фреймворк для всех проектов
ASP.NET CoreHTTP-стек, hosting, DI, middleware
HotChocolate FusionФедеративный GraphQL-gateway (публичный POST /graphql)
Entity Framework CoreORM, миграции per-DbContext per-schema
PostgreSQLЕдиная БД, schema-per-BC изоляция
MassTransitШина доменных событий + EF Core outbox/inbox
RabbitMQБрокер сообщений-транспорт под MassTransit
04 · 7 технологий

Backend · Node.js

Сервисы на NestJS и Fastify с tRPC как единым API-протоколом и Prisma поверх PostgreSQL; прод-рантайм — Bun.

TypeScriptОсновной язык всех сервисов, strict + NodeNext
BunPackage manager, dev-сервер и прод-рантайм
NestJSApplication framework для всех сервисов
FastifyHTTP-сервер под NestJS adapter
tRPCЕдиный API-протокол для всех Node-сервисов
PrismaORM (TS-native engine), output в src/generated/prisma
PostgreSQLPer-service логическая БД
05 · 6 технологий

Кастомная разработка

Отдельные Python-сервисы под нестандартные задачи: обработка и анализ данных, ML-инференс и интеграции; FastAPI, хранилище в PostgreSQL и S3.

PythonОсновной язык сервисов обработки и анализа данных
FastAPIHTTP-API для приёма и обработки данных
PyTorchРантайм инференса ML-моделей (CUDA + CPU)
ONNX RuntimeИнференс предобученных ML-моделей
PostgreSQLХранилище данных сервисов
S3 (Yandex Object Storage)Объектное хранилище файлов и артефактов
06 · 10 технологий

Инфраструктура & DevOps

GitOps-платформа на Yandex Cloud: мульти-кластерный k3s под управлением Argo CD, Terraform-провижининг и мониторинг на стеке Grafana.

k3sЛёгкий Kubernetes; три кластера (mgmt + prod + dev) на VM
Argo CDGitOps-движок: ApplicationSet, sync-waves, ServerSideApply
TerraformIaC для prod-окружения (k3s VM, сеть, IAM)
Yandex CloudОблачный провайдер (compute, VPC, IAM, Registry, Lockbox)
CloudNativePG (CNPG)Kubernetes-оператор PostgreSQL
TraefikIngress-контроллер / reverse proxy
PrometheusСбор метрик и алертинг, федеративный remote_write
GrafanaДашборды и визуализация метрик/логов/трейсов
DockerКонтейнеризация всех сервисов + Compose-стек dev/stage
GitHub ActionsCI/CD пайплайны (20 workflows: build, promote, release)
07 · 9 технологий

Инструменты разработки

Централизованный тулинг разработки: единый пакетный менеджер Bun, Husky git-хуки, commitlint и общие конфиги Prettier и ESLint.

BunЕдиный пакетный менеджер и runtime проекта
HuskyGit-хуки на корне репо (pre-commit, commit-msg)
commitlintЭнфорс Conventional Commits в commit-msg хуке
PrettierФорматтер с сортировкой импортов + Tailwind class sort
ESLintЕдиные правила линтинга и границы DDD-модулей
TypeScriptСтрогая типизация во всех пакетах проекта
Conventional CommitsЕдиная конвенция оформления коммитов
RenovateАвтообновление зависимостей с группировкой
Node.jsЦелевой рантайм production-сборок