A Laravel admin-panel constructor inspired by Orchid, with a Vue 3 SPA frontend.
Admin::resources([UserResource::class, ArticleResource::class]);
Admin::screen([ContactScreen::class, SystemStatusScreen::class]);
Admin::menu()->add(
MenuNode::make('content', 'Content')->icon('book')->children([
MenuNode::resource('articles'),
MenuNode::dashboard('analytics'),
]),
);- CRUD pipeline — declare an Eloquent model as a
Resource, get list/create/edit/view screens for free. - Custom Screens — non-CRUD pages (forms, dashboards, reports) with
Admin::screen(). Handles state, layout, command-bar, validation, permissions. - Hierarchical menu — fluent
Admin::menu()->add(MenuNode::...), any depth, auto-resolveresource()/screen()/dashboard(). - 30+ field types — Input/Number/Select/Combobox/DatePicker/ ColorPicker/FileUpload/Wysiwyg/Markdown/TranslatableInput/Repeater/ RelationSelect/Cascader/TreeSelect/Slug/KeyValue/TagsInput/...
- 15+ layouts — Rows/Columns/Tabs/Wizard+Step/Block/Modal/Drawer/ Wrapper/Infolist/Dashboard/Accordion/View/...
- Tables — sortable columns, presets, filters (input/date/switcher/ options/select-from-model), inline-edit, summary, saved views, group-by, polling, exports (CSV/XLSX/PDF).
- Dashboard — 8 widget types (Stats/Chart/RecentList/Markdown/ Iframe/Table/Heatmap/Gauge), per-user layout overrides, drag/resize, polling.
- Auth & RBAC — multi-guard; a separate
admin_userstable or your existing users (shared strategy), roles, 2FA TOTP, profile, impersonation, password reset, email verification. - Audit — append-only log of admin actions (
AuditLog+Loggabletrait). - Settings — singleton-style configuration screens.
- Notifications — bell badge + drawer (Database notifications).
- API tokens — Sanctum integration in Profile (conditional).
- Theming — light/dark + per-user preference,
@dskripchenko/uidesign tokens. - i18n — locale resolver (6-step priority),
TranslatableFieldbridge fordskripchenko/laravel-translatable. - Tenancy —
TenantResolver/TenantContext/TenantScopedtrait. Strategy is host-side; we provide the contract. - Plugins —
AdminPlugininterface; sister-packs use the same hook. - Testing —
AdminTestCase,ActsAsAdminandInteractsWithAdminResourcestraits. - OpenAPI 3.0 — generated from docblock
@input/@outputtags.
composer require dskripchenko/laravel-admin
php artisan admin:installThat's it — the admin SPA ships prebuilt, no Node needed. Visit
/admin/login. Getting started walks through
the first resource and the custom-build mode for your own Vue components.
Adding it to an application that already has users, its own API or a proxy?
Read Adding the admin to an existing application —
including admin:install --shared, which lets your existing users sign in.
- Getting started
- Adding the admin to an existing application
- Architecture
- Concepts: Resources · Screens · Widgets & Dashboards · Menu · Actions · Permissions · i18n · Tenancy
- Fields reference
- Layouts reference
- API reference
- Frontend extension
- Testing
- Migration guide
- Glossary
- PHP ^8.2
- Laravel 11 / 12 / 13
- Vue ^3.4 + TypeScript + Pinia + Vue Router
- Frontend — prebuilt SPA ~350 KB gz JS + ~35 KB gz CSS; the npm library entry for custom builds ~260 KB gz (Vue, Pinia and the UI kit external)
- WYSIWYG —
@dskripchenko/wysiwygby default; Quill and TinyMCE adapters ship in the npm package (/quill,/tinymce)
Optional extensions, install only what you need:
| Package | Purpose |
|---|---|
dskripchenko/laravel-admin-starter |
User, Role and Audit Log resources |
dskripchenko/laravel-admin-media |
Media library (no Spatie/medialibrary dependency) |
dskripchenko/laravel-admin-health |
Health checks (no Spatie/laravel-health dependency) |
dskripchenko/laravel-admin-pulse |
Telemetry sampler (no laravel/pulse dependency) |
dskripchenko/laravel-admin-jobs |
Failed jobs / batches viewer |
See CONTRIBUTING.md. PRs welcome.
MIT © Denis Skripchenko