--- description: Backend API — при изменениях, затрагивающих UI, строго следовать shadcn Components/Blocks globs: apps/api/**/*,packages/shared/**/* alwaysApply: false --- # Backend API + shadcn/ui Fastify backend: `apps/api/`. Контракты — `@cdnmanager/shared` (Zod). Frontend — TanStack Query. ## Обязательный порядок 1. **Backend** — route, service, Vitest (`app.inject()`) 2. **Схемы** — `@cdnmanager/shared` (не дублировать в `apps/web/src/lib/schemas.ts`) 3. **UI** — shadcn MCP ([`shadcn-mcp.mdc`](shadcn-mcp.mdc)) ## Запрещено на frontend при доработке API - Новые raw `` / `