12 лет в IT, последние 10 лет занимаюсь развитием digital продакшена для ecom.
Пишу в телеграмм | vc | habr. Для связи tg или fb

Laravel + Orchid: Идеальное решение для админок без CMS

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

На нём мы собираем всё: от бэкендов под мобилки до админок для магазинов. А дальше — как фантазия подскажет 😅

Если CMS, с одной стороны, накладывает на нас ограничения, но при этом предлагает мощную встроенную админку, то фреймворки такой роскоши нам не дают. Когда бекенд на Laravel, а админка нужна, у нас есть несколько путей:

  1. Писать с нуля на HTML – можно даже купить готовый шаблон, есть весьма приличные варианты.
  2. Сделать отдельный фронт на Vue или React – пишем API для редактирования, отдельно собираем фронтенд.
  3. Использовать готовое решение – наиболее известные сейчас: 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, а потом не стыдно и в прод выкатить.