Laravel + Orchid: Идеальное решение для админок без CMS
Не только Битриксом едины. Иногда мы меняем модули и компоненты на роуты и контроллеры — Laravel в нашем арсенале давно.

На нём мы собираем всё: от бэкендов под мобилки до админок для магазинов. А дальше — как фантазия подскажет 😅
Если CMS, с одной стороны, накладывает на нас ограничения, но при этом предлагает мощную встроенную админку, то фреймворки такой роскоши нам не дают. Когда бекенд на Laravel, а админка нужна, у нас есть несколько путей:
- Писать с нуля на HTML – можно даже купить готовый шаблон, есть весьма приличные варианты.
- Сделать отдельный фронт на Vue или React – пишем API для редактирования, отдельно собираем фронтенд.
- Использовать готовое решение – наиболее известные сейчас: SleepingOwl, Laravel Nova и Orchid.
Когда-то давно мы использовали SleepingOwl, но по ряду причин отказались от него. Laravel Nova хороша, но платная. В итоге мы обратили внимание на Orchid – визуально приятное, опенсорсное, кастомизируемое и регулярно обновляемое решение.
Это база
⚡️ Быстрое создание админок – Orchid позволяет быстро разрабатывать сложные админ-панели без необходимости писать много кода. Используется декларативный стиль, что делает код более читаемым.
📊 Гибкие таблицы и формы – Встроенные механизмы для работы с таблицами (TD, Layouts, Screens) позволяют легко создавать CRUD-интерфейсы, настраивать фильтрацию и сортировку данных.
🔐 Система разрешений (ACL) – Гибкая ролевая модель, которая позволяет управлять доступом на уровне пользователей, ролей и отдельных действий.
🎨 TailwindCSS + Turbo – В Orchid используется современный стек технологий, что делает интерфейс легковесным и быстрым без необходимости вручную писать HTML и CSS.
🧩 Гибкость и расширяемость – Можно подключать свои классы, middleware, события и сервисы, создавая кастомные модули и плагины.
Неочевидно
🧠 «Глобальные состояния» в Screens – Можно использовать $this->state() для хранения и передачи данных между методами внутри одного экрана (аналог Livewire). Это позволяет сделать более сложные и динамичные страницы без обновления.
🚀 Интерактивные элементы через AsyncAction – Orchid поддерживает асинхронные операции без перезагрузки страницы. Можно использовать AsyncAction для выполнения сложных запросов, отправки писем или обновления данных в фоновом режиме.
🔔 Поддержка WebSockets – Orchid позволяет легко интегрировать Laravel Echo и Pusher для создания real-time интерфейсов, но эта возможность редко используется. Можно делать обновления данных без перезагрузки.
🧵 Кастомные фильтры в таблицах – Помимо стандартных фильтров можно создавать сложные предустановленные фильтры, которые работают через QueryFilter. Это полезно для сложных отчетов и аналитики.
🛠 Использование Modifiers для форматирования данных – Можно создавать собственные классы модификаторов, которые изменяют отображение данных в таблицах без необходимости писать логику форматирования в экранах. Например, для автоматического преобразования дат, валют или статусов.
В итоге — Orchid оказался именно тем, что искали для Laravel-проектов. Прост в освоении, гибок в кастомизации и визуально приятен. Можно быстро собрать MVP, а потом не стыдно и в прод выкатить.