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

ModuleAddsComposer
admin-middlewareSpatie 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-ticketsAdmin ticket queue with replies, status and priority filters, and an open-count badgenone
changelogAdmin-authored changelog entries with a published() scope for a public feedmews/purifier ^3.4
contactsInbox for contact-form submissions, with bulk actions and reply draftsnone
profileSelf-service name, email, password and avatar, plus full two-factor managementnone; intervention/image optional
impersonationLogin as any user from the admin, with an exit ribbonlab404/laravel-impersonate ^1.7.5
activity-logSpatie activity log with a filterable admin viewerspatie/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.

Was this page helpful?