stafe-group-ab/filament-bookmarks-menu
Add a bookmarks menu to Filament admin panels so users can save frequently used pages and records, then reopen them from a convenient dropdown. Easy to install and configure, it gives each user personalized shortcuts and faster navigation across existing interfaces.
composer require stafe-group-ab/filament-bookmarks-menu in a branch and check what composer show stafe-group-ab/filament-bookmarks-menu resolves against your filament/filament constraint. If it conflicts, that is your answer on whether to proceed.composer require stafe-group-ab/filament-bookmarks-menu
php artisan vendor:publish --tag="filament-bookmarks-menu-config"
php artisan vendor:publish --tag="filament-bookmarks-menu-migrations"
php artisan migrate
Publish tags are the usual convention — confirm the exact tag names in the README before assuming.public function panel(Panel $panel): Panel
{
return $panel
// ...
->plugin(FilamentBookmarksMenuPlugin::make());
}
On Filament v2 the registration step differs (service provider / package config entry) — follow the README for your major version.App\Models\User almost certainly needs the package trait (e.g. HasBookmarks) to expose the relation. Check the migration stub for the foreign key type before migrating.src/*Plugin.php and the migration stub. The package is small — reading it end-to-end takes ten minutes and saves an hour of guessing.config/filament-bookmarks-menu.php pointing at your busiest resource index, load the panel, and confirm it renders. Then click the "bookmark this page" affordance on a record edit page and confirm it persists per user across sessions. That two-step proves both halves of the feature./admin/orders breaks the moment you change the panel path, add a domain, or introduce tenancy. Use route('filament.admin.resources.orders.index') or the resource's getUrl() so panel prefixes are resolved at runtime.panel_id column, or use separate tables per guard.Gate::allows) rather than trusting the config.Bookmark model + user->bookmarks relation is queryable. A dashboard widget ("Your shortcuts") built from the same relation is a few lines and gives the feature a second surface without new storage.firstOrCreate(['user_id' => ..., 'url' => ...]) or add a unique index, and you avoid a menu full of duplicates.user_id column type against your users table — UUID/ULID primary keys need the stub edited before migrate.filament/filament in composer.json, upgrade deliberately, and read the plugin's composer.json constraints rather than the README badge.route_name + JSON params and resolve at render time.php artisan config:cache. Either keep the menu purely config-driven and clear cache on deploy, or compute bookmarks in a Menu/render hook instead of the config file.heroicons set.User and Admin models, Admin needs the trait too or the menu silently omits the user section.vendor:publish --tag="filament-bookmarks-menu-views" is the cheapest way to change markup, ordering, or add a "manage bookmarks" link without forking PHP.packages/ (path repository) rather than waiting on upstream. The codebase is small enough that this is a half-day job, not a rewrite.How can I help you explore Laravel packages today?