MineCMS

MineCMS

Система управления контентом на вашем сервере. Опишите структуру в коде — получите админку и API без чужих облаков.

npx @minecms/create-minecms-app@latest

Открытая CMS на вашем сервере: PostgreSQL или MySQL, данные и медиа у вас. Схемы контента — в коде рядом с проектом, без чужих облаков и ежемесячных подписок.

схемы в коде·на вашем сервере·MIT·открытый исходный код·Fastify·tRPC·Drizzle·InferSchemaType·схемы в коде·на вашем сервере·MIT·открытый исходный код·Fastify·tRPC·Drizzle·InferSchemaType·

Разработчикам

TypeScript, git и типы без расхождений

defineSchema, defineField и defineConfig — схемы в репозитории, миграции Drizzle из того же конфига, InferSchemaType на клиенте. Fastify + tRPC + REST: типы на фронте и в API совпадают, потому что оба читают один minecms.config.ts.

Контент-командам

Studio — готовая админка из ваших схем

Динамические списки, формы и медиа с превью в полный экран. Интерфейс на React 19, Tailwind v4 и shadcn/ui — понятный редакторам, без ручной вёрстки под каждый тип документа. Мастер установки за минуты: PostgreSQL 16, администратор, миграции.

Платформа

Ядро, Сервер, Studio и SDK — один конфиг

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 и права доступа — всё из тех же схем, что в конфиге.

Подробнее

Studio

Админка на Vite 8 и React 19. Списки, формы и поля собираются из minecms.config.ts — изменили схему в коде, интерфейс обновился сам, без ручной вёрстки под каждый тип документа.

Подробнее

SDK

Типизированный 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.

Node 24 LTSFastify v5tRPC v11Drizzle ORMPostgreSQL 16MySQL 8React 19Next.js / Nuxt

Studio

Интерфейс MineCMS Studio

Админка MineCMS — не legacy-панель на jQuery. React 19, Tailwind CSS v4, shadcn/ui и Radix UI: продуманный интерфейс Design Engineer, понятный редакторам и удобный разработчикам.

React 19·Tailwind CSS v4·shadcn/ui·Radix UI·oklch·@minecms/ui·TanStack·TipTap·Hugeicons·Storybook·Vite 8·React 19·Tailwind CSS v4·shadcn/ui·Radix UI·oklch·@minecms/ui·TanStack·TipTap·Hugeicons·Storybook·Vite 8·

Дизайн-система

@minecms/ui

Собственная дизайн-система Studio: токены в oklch, светлая и тёмная тема, единые отступы и радиусы. Компоненты документированы в Storybook — Button, Form, Dialog, Select, Sheet и другие примитивы из одного пакета.

@minecms/ui · oklch · Storybook · Design Engineer

Стили

Tailwind CSS v4

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 + Radix UI

Паттерны shadcn/ui — composable-компоненты, которые вы контролиете в коде, а не тянете из чёрного ящика. Radix UI даёт доступность из коробки: фокус, клавиатура, aria — в Dialog, Dropdown, Select, Popover, Tooltip и Switch.

shadcn/ui · Radix UI · a11y · composable

Формы и данные

TanStack + tRPC

TanStack Router — типизированная навигация, TanStack Query — кэш и синхронизация с сервером, TanStack Form — управление полями без боли. tRPC v11 связывает Studio с API в реальном времени: типы на клиенте совпадают с сервером.

TanStack Router · TanStack Query · TanStack Form · tRPC v11

Редактор

TipTap

Современный rich-text на ProseMirror: заголовки, списки, ссылки, таблицы, выделение, выравнивание — всё в поле контента Studio. Расширяемая архитектура: новые блоки добавляются без переписывания админки.

TipTap · ProseMirror · rich-text · tables

Рантайм

React 19 + Vite 8

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

Как устроена MineCMS

От defineSchema в коде до типизированного SDK на клиенте — один конфиг связывает админку, API и фронт.

defineSchema

Модели контента — в коде, рядом с приложением

Что: defineSchema, defineField и defineConfig описывают поля, связи и права в TypeScript. Как: схемы лежат в git, проходят ревью кода; @minecms/core собирает из них Zod-валидаторы и миграции Drizzle. Зачем: структура контента версионируется вместе с проектом — не в отдельной админке и не в чужом облаке.

Список документов в MineCMS Studio

Studio

Админка собирается из схем автоматически

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

Редактор документа в MineCMS Studio

SDK & API

REST, tRPC и типы — из одного minecms.config.ts

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

Медиатека MineCMS Studio

Философия

Контент под вашим контролем

MineCMS — открытая CMS без готовой вёрстки, лицензия MIT. Данные на вашем сервере: PostgreSQL 16 или MySQL 8, медиа в MinIO. Схемы лежат в репозитории рядом с приложением — ревью кода вместо правок в чужой админке. Без облачных подписок и привязки к чужой платформе.

  • Лицензия MIT
  • На вашем сервере
  • Открытый исходный код
  • Схемы в коде
  • PostgreSQL и MySQL

Запуск за одну команду

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