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.
Requires
- php: ^8.2
- ext-json: *
- dskripchenko/laravel-api: ^5.11
- dskripchenko/laravel-delayed-process: ^2.2.0
- dskripchenko/php-array-helper: ^1.1
- laravel/framework: ^11.0 || ^12.0 || ^13.0
Requires (Dev)
- dskripchenko/laravel-translatable: ^2.0
- larastan/larastan: ^3.0
- laravel/pint: ^1.18
- laravel/sanctum: ^4
- mpdf/mpdf: ^8
- openspout/openspout: ^4
- orchestra/testbench: ^9.0 || ^10.0 || ^11.0
- pestphp/pest: ^3.0 || ^4.0
- pestphp/pest-plugin-laravel: ^3.0 || ^4.0
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11.0 || ^12.0
Suggests
- dompdf/dompdf: Альтернативный PDF-рендерер (LGPL-2.1)
- dskripchenko/laravel-translatable: Для TranslatableInput с хранением переводов в БД (создаёт таблицы languages, translations, pages, content_blocks, page_content_block)
- laravel/sanctum: Для API-токенов администраторов в ProfileScreen
- mpdf/mpdf: Для PDF-экспорта — рекомендуемый рендерер (GPL-2.0-only, проверьте лицензию)
- openspout/openspout: Для XLSX-экспорта (Action\Export::xlsx())
Provides
None
Conflicts
None
Replaces
None
- dev-main / 1.x-dev
- v1.48.0
- v1.47.0
- v1.46.2
- v1.46.1
- v1.46.0
- v1.45.1
- v1.45.0
- v1.44.1
- v1.44.0
- v1.43.0
- v1.42.1
- v1.42.0
- v1.41.0
- v1.40.0
- v1.39.0
- v1.38.0
- v1.37.0
- v1.36.0
- v1.35.0
- v1.34.0
- v1.33.0
- v1.32.2
- v1.32.1
- v1.32.0
- v1.31.3
- v1.31.2
- v1.31.1
- v1.31.0
- v1.30.0
- v1.29.0
- v1.28.0
- v1.27.1
- v1.27.0
- v1.26.0
- v1.25.2
- v1.25.1
- v1.25.0
- v1.24.2
- v1.24.1
- v1.24.0
- v1.23.2
- v1.23.1
- v1.23.0
- v1.22.1
- v1.22.0
- v1.21.4
- v1.21.3
- v1.21.2
- v1.21.1
- v1.21.0
- v1.20.1
- v1.20.0
- v1.19.5
- v1.19.4
- v1.19.3
- v1.19.2
- v1.19.1
- v1.19.0
- v1.18.3
- v1.18.2
- v1.18.1
- v1.17.1
- v1.17.0
- v1.16.0
- v1.15.2
- v1.15.1
- v1.15.0
- v1.14.0
- v1.13.4
- v1.13.3
- v1.13.2
- v1.13.1
- v1.13.0
- v1.12.6
- v1.12.5
- v1.12.4
- v1.12.3
- v1.12.2
- v1.12.1
- v1.12.0
- v1.11.2
- v1.11.1
- v1.11.0
- v1.10.19
- v1.10.18
- v1.10.17
- v1.10.16
- v1.10.15
- v1.10.14
- v1.10.13
- v1.10.12
- v1.10.11
- v1.10.10
- v1.10.9
- v1.10.8
- v1.10.7
- v1.10.6
- v1.10.5
- v1.10.4
- v1.10.3
- v1.10.2
- v1.10.1
- v1.10.0
- v1.9.3
- v1.9.2
- v1.9.1
- v1.9.0
- v1.8.9
- v1.8.8
- v1.8.7
- v1.8.6
- v1.8.5
- v1.8.4
- v1.8.3
- v1.8.2
- v1.8.1
- v1.8.0
- v1.7.2
- v1.7.1
- v1.7.0
- v1.6.0
- v1.5.5
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.0
- v1.3.0
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.24
- v1.1.23
- v1.1.22
- v1.1.21
- v1.1.20
- v1.1.19
- v1.1.18
- v1.1.17
- v1.1.16
- v1.1.15
- v1.1.14
- v1.1.13
- v1.1.12
- v1.1.11
- v1.1.10
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.0
- dev-release/1.48.0
- dev-feat/topbar-breadcrumbs-kit-1.11
- dev-fix/generators-and-skeleton-findings
- dev-chore/config-flaky-tests
- dev-fix/skeleton-findings-ui
- dev-fix/packaging-dist-and-optional-migrations
This package is auto-updated.
Last update: 2026-10-04 10:45:05 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; 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.
Install
composer require dskripchenko/laravel-admin php artisan admin:install
That'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.
Documentation
- 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
Stack
- 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)
Sister-packs
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 |
Contributing
See CONTRIBUTING.md. PRs welcome.
License
MIT © Denis Skripchenko