dskripchenko / laravel-admin
Laravel admin constructor: Resource-first CRUD, Vue 3 SPA, JSON-API transport. Plug into any Laravel project without touching its routes/auth.
v1.4.0
2026-05-08 09:19 UTC
Requires
- php: ^8.5
- ext-json: *
- dskripchenko/laravel-api: ^4.2
- dskripchenko/laravel-delayed-process: ^2.0
- dskripchenko/laravel-translatable: ^2.0
- dskripchenko/php-array-helper: ^1.1
- laravel/framework: ^12.0
Requires (Dev)
- larastan/larastan: ^3.0
- laravel/pint: ^1.18
- laravel/sanctum: ^4
- mpdf/mpdf: ^8
- openspout/openspout: ^4
- orchestra/testbench: ^10.0
- pestphp/pest: ^3.0
- pestphp/pest-plugin-laravel: ^3.0
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0
Suggests
- dompdf/dompdf: Альтернативный PDF-рендерер (LGPL-2.1)
- laravel/sanctum: Для API-токенов администраторов в ProfileScreen
- mpdf/mpdf: Для PDF-экспорта — рекомендуемый рендерер (GPL-2.0-only, проверьте лицензию)
- openspout/openspout: Для XLSX-экспорта (Action\Export::xlsx())
This package is auto-updated.
Last update: 2026-05-08 10:41:33 UTC
README
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'), ]), );
What's inside
- 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, AdminUser, 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 (5-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 —
ResourceTestCase,ScreenTestCase,ActsAsAdmintrait. - OpenAPI 3.0 — generated from docblock
@input/@outputtags.
Install
composer require dskripchenko/laravel-admin php artisan vendor:publish --tag=admin-config php artisan migrate
// resources/js/admin.js import { createAdminApp } from '@dskripchenko/laravel-admin' import '@dskripchenko/ui/styles/all.css' import '@dskripchenko/laravel-admin/style.css' const { app } = createAdminApp(window.__ADMIN_BOOTSTRAP__) app.mount('#admin-app')
npm i @dskripchenko/laravel-admin @dskripchenko/ui npm run build
Visit /admin/login. See getting-started.md
for the first resource.
Documentation
- Getting started
- Architecture
- Concepts: Resources · Screens · Widgets & Dashboards · Menu · Actions · Permissions · i18n · Tenancy
- Fields reference
- Layouts reference
- API reference
- Frontend extension
- Testing
- Migration guide
- Glossary
Stack
- PHP ^8.5
- Laravel ^12
- Vue ^3.4 + TypeScript + Pinia + Vue Router
- Bundle —
@dskripchenko/laravel-admin~62 KB gz (esm + cjs) - No vendor lock-in for editor/charts — bring your own
(sister-pack adapters:
quill,tinymce)
Sister-packs
Optional extensions, install only what you need:
| Package | Purpose |
|---|---|
dskripchenko/laravel-admin-starter |
User/Role/Audit/Settings/Translations/Blocks resources |
dskripchenko/laravel-admin-tinymce |
TinyMCE WYSIWYG adapter |
dskripchenko/laravel-admin-quill |
Quill WYSIWYG adapter |
dskripchenko/laravel-admin-search |
⌘K command palette + Scout suggest |
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 |
Contributing
See CONTRIBUTING.md. PRs welcome.
License
MIT © Denis Skripchenko