Ядро
Пакет @minecms/core: defineSchema, defineField и defineConfig описывают модели в TypeScript. Отсюда же берутся Zod-валидаторы и миграции Drizzle — одно место, где задаётся структура контента.
Подробнееnpx @minecms/create-minecms-app@latestОткрытая CMS на вашем сервере: PostgreSQL или MySQL, данные и медиа у вас. Схемы контента — в коде рядом с проектом, без чужих облаков и ежемесячных подписок.
Разработчикам
defineSchema, defineField и defineConfig — схемы в репозитории, миграции Drizzle из того же конфига, InferSchemaType на клиенте. Fastify + tRPC + REST: типы на фронте и в API совпадают, потому что оба читают один minecms.config.ts.
Контент-командам
Динамические списки, формы и медиа с превью в полный экран. Интерфейс на React 19, Tailwind v4 и shadcn/ui — понятный редакторам, без ручной вёрстки под каждый тип документа. Мастер установки за минуты: PostgreSQL 16, администратор, миграции.
Платформа
minecms.config.ts описывает модели один раз. @minecms/core собирает валидаторы и миграции, сервер отдаёт API, Studio рисует админку, SDK типизирует клиент — четыре части читают одни и те же схемы.
Пакет @minecms/core: defineSchema, defineField и defineConfig описывают модели в TypeScript. Отсюда же берутся Zod-валидаторы и миграции Drizzle — одно место, где задаётся структура контента.
ПодробнееСервер на Fastify v5: REST и tRPC v11, сессии через подписанные cookie. PostgreSQL 16 или MySQL 8 через Drizzle ORM. CRUD, медиа в MinIO и права доступа — всё из тех же схем, что в конфиге.
ПодробнееАдминка на Vite 8 и React 19. Списки, формы и поля собираются из minecms.config.ts — изменили схему в коде, интерфейс обновился сам, без ручной вёрстки под каждый тип документа.
ПодробнееТипизированный REST-клиент: InferSchemaType выводит типы документов прямо из схем. Пакеты @minecms/sdk, sdk-next и sdk-nuxt — на фронте те же типы, что на сервере, без ручного дублирования.
ПодробнееСтек
Node 24 LTS, Fastify v5, tRPC v11, Drizzle ORM — PostgreSQL 16 или MySQL 8, React 19 на фронте, шаблоны под Next.js и Nuxt.
Studio
Админка MineCMS — не legacy-панель на jQuery. React 19, Tailwind CSS v4, shadcn/ui и Radix UI: продуманный интерфейс Design Engineer, понятный редакторам и удобный разработчикам.
Дизайн-система
Собственная дизайн-система Studio: токены в oklch, светлая и тёмная тема, единые отступы и радиусы. Компоненты документированы в Storybook — Button, Form, Dialog, Select, Sheet и другие примитивы из одного пакета.
@minecms/ui · oklch · Storybook · Design Engineer
Стили
Utility-first вёрстка на последней major-версии Tailwind: CSS-first конфиг, @theme inline, без legacy tailwind.config. Быстрая сборка через Vite 8, предсказуемые утилиты bg-background, text-foreground и ring-ring из токенов.
Tailwind v4 · Vite 8 · CVA · tailwind-merge
Компоненты
Паттерны shadcn/ui — composable-компоненты, которые вы контролиете в коде, а не тянете из чёрного ящика. Radix UI даёт доступность из коробки: фокус, клавиатура, aria — в Dialog, Dropdown, Select, Popover, Tooltip и Switch.
shadcn/ui · Radix UI · a11y · composable
Формы и данные
TanStack Router — типизированная навигация, TanStack Query — кэш и синхронизация с сервером, TanStack Form — управление полями без боли. tRPC v11 связывает Studio с API в реальном времени: типы на клиенте совпадают с сервером.
TanStack Router · TanStack Query · TanStack Form · tRPC v11
Редактор
Современный rich-text на ProseMirror: заголовки, списки, ссылки, таблицы, выделение, выравнивание — всё в поле контента Studio. Расширяемая архитектура: новые блоки добавляются без переписывания админки.
TipTap · ProseMirror · rich-text · tables
Рантайм
Studio собран на React 19 и Vite 8: мгновенный HMR при разработке, быстрый production-бандл. Списки, формы и медиатека открываются без перезагрузки — TanStack Router переключает экраны, Query подтягивает данные с сервера.
React 19 · Vite 8 · HMR · TanStack Router
Детали
Hugeicons — единый набор иконок через обёртку Icon во всём Studio. clsx и class-variance-authority задают варианты Button, Badge, Alert и других компонентов @minecms/ui — один API, предсказуемый вид во всех экранах админки.
Hugeicons · clsx · CVA · tailwind-merge
MineCMS
От defineSchema в коде до типизированного SDK на клиенте — один конфиг связывает админку, API и фронт.
defineSchema
Что: defineSchema, defineField и defineConfig описывают поля, связи и права в TypeScript. Как: схемы лежат в git, проходят ревью кода; @minecms/core собирает из них Zod-валидаторы и миграции Drizzle. Зачем: структура контента версионируется вместе с проектом — не в отдельной админке и не в чужом облаке.

Studio
Что: панель управления с динамическими списками, формами и медиа. Как: мастер установки создаёт администратора и прогоняет миграции; tRPC связывает интерфейс с сервером в реальном времени. Зачем: контент-команда работает с готовым интерфейсом — разработчикам не нужно вёрстать форму под каждый тип документа.

SDK & API
Что: сервер отдаёт CRUD через REST и tRPC v11, SDK типизирует ответы через InferSchemaType. Как: сервер читает схемы один раз при старте — эндпоинты, валидация и типы на клиенте совпадают. Зачем: фронт и API не расходятся — поменяли поле в схеме, TypeScript сразу покажет, где обновить код.

Философия
MineCMS — открытая CMS без готовой вёрстки, лицензия MIT. Данные на вашем сервере: PostgreSQL 16 или MySQL 8, медиа в MinIO. Схемы лежат в репозитории рядом с приложением — ревью кода вместо правок в чужой админке. Без облачных подписок и привязки к чужой платформе.
Node 24+, pnpm 10+, Docker. Шаблон --next создаёт репозиторий с cms/ и web/: Docker Compose поднимает PostgreSQL и MinIO, мастер установки в Studio — и документ сразу доступен через REST, tRPC и SDK.
pnpm create @minecms/minecms-app@latest my-app -- --next -y
# или
npx @minecms/create-minecms-app@latest my-app -- --next -y
cd my-app
docker compose -f cms/docker-compose.yml up -d
pnpm dev
# Studio → http://localhost:3333/admin
# API → http://localhost:3333/api
# Сайт → http://localhost:3000