Перейти к содержимому
Все материалы

Прокачиваем админку Payload CMS: дашборд, канбан, аудит и темы

2 октября 2026 г.•Александр Андреев

Штатная админка Payload CMS хороша тем, что почти не мешает. Описал коллекции, настроил поля и права — и получил рабочий интерфейс для управления данными. Но если в админке каждый день работают редакторы, менеджеры или сотрудники внутреннего сервиса, довольно быстро хочется большего: нормального стартового экрана, карточек вместо таблиц, канбана, календаря, истории действий и хотя бы возможности немного привести интерфейс к фирменному стилю.

Для этого есть сторонний плагин @consilioweb/payload-admin-ui-pro. Я развернул его на отдельном стенде с Payload CMS 3.90.2 и проверил основные возможности не только визуально: изменения из интерфейса дополнительно сверялись через REST API и базу данных.

Сразу оговорюсь: плагин интересный, но пока сырой. Часть функций работает хорошо, часть имеет неприятные ограничения, а несколько возможностей на актуальном Payload 3.90.2 уже сломаны.

Что добавляет плагин

Admin UI Pro подключается как обычный плагин Payload и не требует переделывать существующие коллекции. После установки в админке появляются собственный дашборд, дополнительные представления списков, палитра команд, журнал действий, presence-индикаторы, темы оформления и улучшенные варианты некоторых стандартных полей.

На тестовом стенде использовались:

  • Payload CMS 3.90.2;
  • @consilioweb/payload-admin-ui-pro 0.7.2;
  • Node.js 24.21;
  • Next.js 16.3.3;
  • React 19.2.6;
  • SQLite.

Плагин состоит из отдельных модулей: dashboard, listViews, quickActions, fieldEnhance, branding и activity. Их можно включать и отключать независимо.

Начать можно с экрана входа

Самое заметное изменение видно ещё до авторизации. Плагин позволяет изменить фон страницы входа, приветственный текст и часть оформления.

Брендированная страница входа в админку Payload CMS с плагином Admin UI Pro

Это косметика, но для внутренних систем и клиентских проектов вполне полезная. Не приходится отдельно переопределять компоненты админки только ради того, чтобы интерфейс перестал выглядеть как только что развёрнутый стандартный Payload.

Вместо пустой стартовой страницы — рабочий дашборд

Гораздо интереснее собственный дашборд. Он полностью заменяет стандартную стартовую страницу /admin.

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

Дашборд Admin UI Pro с виджетами, статистикой коллекций и графиком активности

Раскладка настраивается самим пользователем: виджеты можно добавлять, удалять, перетаскивать и менять их ширину. Настройки сохраняются отдельно для каждого пользователя и переживают перезагрузку страницы.

На стенде это действительно работало: после изменения раскладки данные сохранялись в dashboard-preferences, а после повторного входа дашборд оставался в настроенном состоянии.

С заметками, правда, обнаружилась странность. Сразу после сохранения текст переживал перезагрузку, но позднее одна из заметок оказалась пустой. Поэтому на эту функцию в текущей версии я бы пока не рассчитывал.

Таблица, карточки, канбан и календарь

Одна из самых полезных частей плагина — дополнительные способы отображения коллекций.

Для обычной коллекции можно оставить стандартную таблицу или добавить cards, kanban и calendar. Для upload-коллекций доступна галерея.

Карточки умеют показывать изображение, заголовок, подзаголовок и статус. Есть массовый выбор документов, смена статуса, массовое редактирование и удаление. Проверка через API показала, что операции действительно изменяют документы, а не существуют только на уровне интерфейса.

Канбан строится вокруг select-поля, например status. Перетаскивание карточки между колонками отправляет обычный PATCH и меняет значение поля в документе. На тестовой коллекции задач перенос из backlog в done сразу отразился и в интерфейсе, и в базе.

Календарь тоже умеет менять дату перетаскиванием, но здесь уже есть шероховатости. При переносе события время сбрасывается в 00:00, а сам интерфейс не всегда обновляет положение карточки до повторной загрузки данных.

Есть и менее очевидный нюанс: в типах плагина присутствует calendarConfig.dateField, но фактически компонент берёт дату из cardConfig.subtitleField, а при его отсутствии использует createdAt. То есть заявленная настройка calendarConfig в версии 0.7.2 фактически не работает.

Улучшенные поля

В режиме fieldEnhance плагин меняет отображение некоторых стандартных полей Payload.

Checkbox превращается в toggle, числовое поле с диапазоном 0–5 можно показать звёздами, select — цветными бейджами, upload — компактной карточкой с превью. Бейджи статусов работают и в стандартной таблице Payload.

Это небольшие изменения, но именно они делают административный интерфейс заметно удобнее для людей, которые не воспринимают его как интерфейс к базе данных и работают в нём каждый день.

История действий и присутствие пользователей

Плагин добавляет activity log. Через хуки afterChange и afterDelete он записывает пользователя, действие, коллекцию, документ и список изменённых полей.

Значения самих полей в журнал не складываются. Для чувствительных полей предусмотрено отдельное исключение. На тестовом стенде журнал корректно фиксировал изменения, сделанные в том числе через REST API.

У документа появляется кнопка History, где видно, кто и когда его менял и какие поля были затронуты.

Есть и presence: если один документ одновременно открыли два пользователя, возле документа появляются их аватары. Это тоже удалось проверить двумя отдельными браузерными сессиями.

Но presence хранится в памяти процесса с TTL 60 секунд. После перезапуска данные исчезают, а между несколькими репликами приложения сами по себе не синхронизируются. Для одного экземпляра Payload этого достаточно, для распределённой установки уже нужно учитывать архитектуру.

Темы и тёмный режим

В Admin UI Pro есть несколько готовых цветовых пресетов и собственный переключатель светлой и тёмной темы. Тема применяется ко всей админке и может меняться из настроек.

Это не самая важная возможность плагина, но вместе с брендированием страницы входа позволяет довольно быстро сделать из стандартной админки Payload интерфейс конкретного проекта.

С установкой есть один важный момент

Само подключение простое:

import { adminUiProPlugin } from '@consilioweb/payload-admin-ui-pro'

export default buildConfig({
  // ...
  plugins: [
    adminUiProPlugin({
      fieldEnhance: {
        aggressive: true,
      },
      activity: {
        retentionDays: 90,
        trackFields: true,
      },
      theme: {
        preset: 'indigo-pro',
      },
    }),
  ],
})

Но после установки обязательно нужно перегенерировать import map:

pnpm payload generate:importmap

В нашем случае после этого в import map появилось 46 ссылок на компоненты плагина.

Если шаг пропустить, ситуация неприятная: часть компонентов просто не появляется в интерфейсе без очевидной ошибки. Повторять генерацию нужно и после обновления пакета.

В development со SQLite необходимые таблицы создались автоматически. Для production автор плагина рекомендует обычные миграции Payload.

Что сломалось на Payload 3.90.2

Вот здесь обзор становится интереснее.

Первой проблемой оказалась command palette. По Ctrl+K компонент действительно открывается, DOM на месте, но на Payload 3.90.2 окно оказывается под основным контентом из-за stacking context новой структуры админки. Временный CSS-воркараунд проблему исправляет, но из коробки функция фактически не работает нормально.

Серверный поиск палитры тоже оказался сломан. Плагин пытается искать одновременно по полям title и name. Если в коллекции нет одного из них, Payload возвращает ошибку запроса, а плагин её проглатывает. В результате поиск молча ничего не находит для большинства обычных коллекций.

Ещё одна проблема — собственный VersionDiff. Он обращается к маршруту вида:

/api/posts/{id}/versions

В Payload 3 такого маршрута нет. Нативные версии Payload, сравнение и восстановление при этом работают нормально, поэтому данные не теряются

--- сломана именно дополнительная реализация плагина.

Есть и проблема с разграничением интерфейса по ролям. Серверные проверки у activity log и настроек работают: пользователь без нужных прав получает 403. А вот клиентские ограничения, заявленные для ролей, фактически не применяются. Пользователь с ролью viewer всё равно видит переключатели представлений, command palette, CSV и другие элементы.

Это не означает автоматического обхода серверных прав Payload, но рассчитывать на плагин как на механизм сокрытия функций интерфейса от разных ролей сейчас не стоит.

Насколько сильно плагин вмешивается в проект

Это как раз сделано аккуратно.

Admin UI Pro не меняет схему ваших коллекций и не требует специального адаптера базы данных или отдельной конфигурации Next.js. Для собственных данных он добавляет две скрытые коллекции и один global.

Модули можно отключать отдельно. Если плагин больше не нужен, автор документирует удаление его служебных таблиц для SQLite, PostgreSQL и MongoDB.

Серверная часть тоже выглядит осмысленно: есть rate limiting, чувствительные поля исключаются из аудита, activity log нельзя произвольно редактировать, а для webhook предусмотрена защита от запросов в приватные диапазоны.

Проблема сейчас скорее не в архитектуре, а в совместимости интерфейса с быстро меняющимся Payload.

Стоит ли ставить

Для внутренней админки — попробовать точно можно. Особенно если нужны канбан, карточки, нормальный дашборд и журнал действий, а писать всё это самостоятельно не хочется.

Но я бы пока не ставил Admin UI Pro и забывал о нём на год.

Проект молодой: версия 0.7.2, один основной разработчик, небольшое число пользователей. На Payload 3.90.2 уже видны несколько несовместимостей, причём часть из них ломается тихо.

Если использовать плагин в рабочем проекте, разумно зафиксировать версии Payload и Admin UI Pro и после каждого обновления отдельно проверять дашборд, дополнительные представления, палитру команд, presence и историю версий.

При таком подходе это уже полезный инструмент. До состояния «поставил в любой проект и больше не думаешь» ему пока есть куда расти.

Ссылки

Назад в блог
Прокачиваем админку Payload CMS: дашборд, канбан, аудит и темы | Payload по-русски