Modules
Seven optional pieces, each a folder of stubs copied into your app plus the routes, navigation entries, migrations and Composer packages it needs. Pick them during ui-kit:install or add them later.
The seven
| Module | Adds | Composer |
|---|---|---|
| admin-middleware | Spatie Permission wiring and an admin role check on every admin route. Without it the kit falls back to an is_admin column. | spatie/laravel-permission ^6.10 |
| support-tickets | Admin ticket queue with replies, status and priority filters, and an open-count badge | none |
| changelog | Admin-authored changelog entries with a published() scope for a public feed | mews/purifier ^3.4 |
| contacts | Inbox for contact-form submissions, with bulk actions and reply drafts | none |
| profile | Self-service name, email, password and avatar, plus full two-factor management | none; intervention/image optional |
| impersonation | Login as any user from the admin, with an exit ribbon | lab404/laravel-impersonate ^1.7.5 |
| activity-log | Spatie activity log with a filterable admin viewer | spatie/laravel-activitylog ^4.10 |
Modules that ship models also ship factories, so SupportTicket::factory() works in your tests from the start.
Installing later
php artisan ui-kit:install-module support-tickets
php artisan ui-kit:install-module changelog contacts profile
php artisan ui-kit:install-module changelog,contacts,profile
php artisan ui-kit:list-modules
A batch is validated before anything is copied: one unknown slug aborts the run. composer require runs for the module's packages, then the stubs are copied, routes and navigation are patched between their markers, vendor:publish and migrations run once at the end of the batch rather than once per module, and the UiKitUser trait is regenerated and re-applied when the batch includes admin-middleware, impersonation or profile.
Installed modules are recorded in config/ui-kit.php between the ui-kit:modules markers. ui-kit:doctor reads that list to decide which module checks apply.
What every module page covers
Each module page has the same sections, so you can compare them: what it adds, the install command and Composer dependencies, what the installer changes in your app, the routes it registers, a screenshot, the steps the installer leaves to you, and how to remove it.
Removing a module
There is no uninstall command. A module is a set of files and marker lines in your app, so removing one is a short manual job that every module page spells out: delete its stubs, remove its lines between the ui-kit:* markers in config/admin.php, routes/admin.php or routes/ui-kit-user.php, remove its slug from installed_modules, roll back or drop its tables, and composer remove its packages.