lvntr / laravel-starter-kit
Laravel Starter Kit with DDD architecture, Inertia.js, Vue 3, PrimeVue, and role-based permissions.
Requires
- php: ^8.4
- dedoc/scramble: ^0.13.22
- illuminate/support: ^13.0
- inertiajs/inertia-laravel: ^3.0
- laravel/fortify: ^1.35
- laravel/passport: ^13.5
- laravel/wayfinder: ^0.1
- league/flysystem-aws-s3-v3: ^3.0
- lvntr/api-dock: ~0.0.9
- nikic/php-parser: ^5.0
- spatie/laravel-activitylog: ^5.0
- spatie/laravel-medialibrary: ^11.23
- spatie/laravel-permission: ^7.2
- spatie/laravel-query-builder: ^6.3
- spatie/laravel-translatable: ^6.11
Requires (Dev)
- larastan/larastan: 3.13.0
- laravel/pint: ^1.29
- orchestra/testbench: ^11.0
- pestphp/pest: ^4.4
- phpstan/phpstan: 2.3.1
Suggests
- laravel/horizon: Enables the optional sk:install --modules=horizon recipe (Redis queue dashboard/supervisor).
- laravel/pulse: Enables the optional sk:install --modules=pulse recipe (application performance monitoring).
- laravel/telescope: Enables the optional sk:install --modules=telescope recipe (debug assistant).
- sentry/sentry-laravel: Enables the optional sk:install --modules=sentry recipe (error tracking).
Provides
None
Conflicts
None
Replaces
None
- 13.x-dev
- dev-main / 13.x-dev
- v13.8.7
- v13.8.6
- v13.8.5
- v13.8.4
- v13.8.3
- v13.8.2
- v13.8.1
- v13.8.0
- v13.7.6
- v13.7.5
- v13.7.4
- v13.7.3
- v13.7.2
- v13.7.1
- v13.7.0
- v13.6.16
- v13.6.15
- v13.6.14
- v13.6.13
- v13.6.12
- v13.6.11
- v13.6.10
- v13.6.9
- v13.6.8
- v13.6.7
- v13.6.6
- v13.6.5
- v13.6.4
- v13.6.3
- v13.6.2
- v13.6.1
- v13.6.0
- v13.5.11
- v13.5.10
- v13.5.9
- v13.5.8
- v13.5.7
- v13.5.6
- v13.5.5
- v13.5.4
- v13.5.3
- v13.5.2
- v13.5.1
- v13.5.0
- v13.4.10
- v13.4.9
- v13.4.8
- v13.4.7
- v13.4.6
- v13.4.5
- v13.4.4
- v13.4.3
- v13.4.2
- v13.4.1
- v13.4.0
- v13.3.3
- v13.3.2
- v13.3.1
- v13.3.0
- v13.2.9
- v13.2.8
- v13.2.7
- v13.2.6
- v13.2.5
- v13.2.4
- v13.2.3
- v13.2.2
- v13.2.1
- v13.2.0
- v13.1.10
- v13.1.9
- v13.1.8
- v13.1.7
- v13.1.6
- v13.1.5
- v13.1.4
- v13.1.3
- v13.1.2
- v13.1.1
- v13.1.0
- v13.0.20
- v13.0.19
- v13.0.18
- v13.0.17
- v13.0.16
- v13.0.15
- v13.0.14
- v13.0.13
- v13.0.12
- v13.0.11
- v13.0.10
- v13.0.9
- v13.0.8
- v13.0.7
- v13.0.6
- v13.0.5
- v13.0.4
- v13.0.3
- v13.0.2
- v13.0.1
- v13.0.0
- dev-archive/1.x
This package is auto-updated.
Last update: 2026-10-18 13:46:31 UTC
README
Admin-first Laravel starter kit.
Introduction
Lvntr Starter Kit is a full-featured admin panel for Laravel, built with Laravel 13, Inertia.js v3, Vue 3, PrimeVue 4 and Tailwind CSS 4.
Unlike the official Laravel starter kits, which ship a minimal authentication scaffold, this kit gives you a production-ready admin panel on day one: users, roles, permissions, activity logs, settings, file manager, 2FA, and a DDD-style domain layer you can extend.
It is designed for teams who want to skip re-building the same admin screens on every project and go straight to business features.
Website & Documentation: starter-kit.lvntr.dev Installation guide, component references, architecture notes and examples.
A Quick Tour
Two themes, light & dark — switch instantly, no rebuild
Pick the built-in Aura (inset panel inside a brand-coloured frame) or Main theme, choose from 26 accent colours, and let every user toggle dark mode.
![]() Aura · dark |
![]() Main · light |
![]() Main · dark |
![]() Theme, accent colour, logos and favicon from the Appearance settings |
Users, roles & permissions
Searchable, filterable datatables with server-side pagination, column toggles and bulk actions; dialog forms built with FormBuilder; and a resource × ability permission matrix per role.
![]() User management |
![]() Edit user dialog with avatar upload |
![]() Roles |
![]() Per-role permission matrix |
File manager
Folders, favourites, trash with a retention period, image/video/PDF previews, storage quota — on local disk, Amazon S3, DigitalOcean Spaces or Hetzner Object Storage.
![]() File manager |
![]() Upload size, quota, accepted types and trash |
Activity logs & log viewer
Every model change is recorded with its causer and a field-level old → new diff. Laravel log files are browsable in the panel, filterable by level, time and message.
![]() Activity logs |
![]() Field-level change detail |
![]() Log files |
![]() Log viewer with level filters and context |
Settings panel
Everything a project usually hard-codes in .env is editable from the panel — identity, locale and currency, security policy, SMTP, storage driver, content languages, API clients/tokens — plus a System Health page that runs the sk:doctor checks.
![]() General |
![]() Security — registration, 2FA, password policy, bot protection |
![]() Mail — SMTP and test email |
![]() Storage driver |
![]() Content languages for translatable fields |
![]() System health |
Component showcase
A built-in page documents the kit's PrimeVue + SK components in every variant — tags, buttons, messages, toasts and FormBuilder forms.
What is Inside?
- Authentication
- Login / Register / Password Reset
- Email Verification
- Two-Factor Authentication (Fortify)
- OAuth2 API with Laravel Passport
- User & Access Management
- User CRUD with avatar upload and soft deletes
- Roles & dynamic resource-scoped permissions (Spatie)
- Session management
- Admin Modules
- Dashboard
- Activity Logs (browsable, filterable)
- Settings panel (General / Auth / Mail / Storage / File Manager / Content Languages)
- Multi-language content: active languages managed in Settings drive every Translatable Field form-wide, no rebuild required
- File Manager with pluggable contexts and signed share links
- API Clients & Personal Access Token management
- System Health dashboard
- API Routes explorer
- Definitions (DB-backed enums used across forms and tables)
- Developer Tooling
- DDD-style domain layer (Actions / DTOs / Queries / Events / Listeners)
- FormBuilder, DatatableBuilder, TabBuilder fluent APIs (including Translatable Fields)
@lvntr/componentsVue component library (FormBuilder/DatatableBuilder/TabBuilder, UI primitives, File Manager UI) — not published on npm; resolved via a Vite alias into the package's ownvendor/copy, so no separate install step is needed- Domain scaffolding via
make:sk-domainwith opt-in flag support - Datatable bulk actions with cross-page selection
- Safe upgrade flow via
sk:update(hash-tracked, preserves your edits) - System health check via
sk:doctor - Dedicated data-encryption key for sensitive settings & 2FA secrets, independent of
APP_KEY— generate/rotate/verify withencryption:key,encryption:rekey,encryption:health - Light & Dark themes with instant-switch built-in
mainandaurakit themes (no rebuild)
How to use it?
Start from a clean Laravel install:
composer create-project laravel/laravel my-app
cd my-app
composer require lvntr/laravel-starter-kit:^13.7
php artisan sk:install
Check
php -vfirst — this kit requires PHP 8.4+. Thelaravel/laravelskeleton itself only requires PHP 8.3, socreate-projectsucceeds on 8.3 and the failure surfaces later. Always require the kit with:^13.7(not a looser:^13.0): with a loose constraint Composer silently resolves down to an ancient release that still fits PHP 8.3 instead of reporting the real blocker.
That's it. The installer sets up migrations, seeders, Passport keys, a default admin user, and builds the frontend. It also ejects the User and Role domain runtime classes into app/Domain/ so they are immediately project-owned and ready to customise. Pass --without-eject to keep them vendor-resident instead.
Full step-by-step guide: starter-kit.lvntr.dev/docs/install
Requirements
- PHP 8.4+ (hard floor —
spatie/laravel-activitylog:^5.0requires it too) - Laravel 13
- Node.js 20.19+ (or 22.12+) — Vite 7 engine floor
- MySQL or MariaDB
Compatibility & Versioning
The package version major aligns with the supported Laravel major. Each
Laravel major gets its own maintenance branch and vN.x.y tag stream;
existing consumer constraints stay locked to their major and never
receive breaking changes from a newer Laravel target.
| Laravel | Constraint | Branch | Status |
|---|---|---|---|
| 13.x | composer require lvntr/laravel-starter-kit:^13.7 |
13.x |
active |
main tracks the currently active major (today: 13.x). When a future
Laravel release is targeted, main will move to that next-major dev
stream and the previous major's N.x branch will continue to receive
backports.
The git tag is the single source of version truth — neither
composer.json nor the root package.json carries a version field, so
there is nothing to keep in sync. Releases are cut with release.sh (from
main), which tags the release and pushes only that tag.
Documentation
Everything — installation, update flow, domain scaffolding, FormBuilder / DatatableBuilder / TabBuilder APIs, composables, file manager, roles & permissions, OAuth2 API, AI-oriented API metadata, activity logs, settings — lives on the official site:





















