Page Bookmarks
A simple bookmark management system for Laravel Filament applications. This package provides an intuitive way for users to save, organize, and access bookmarks directly within your Admin panel.
Author:
Jayson Temporas
Documentation
- Features
- Screenshots
- Requirements
- Installation
- Configuration
- Usage
- Customization
- Contributing
- License
- Support
A simple bookmark management system for Laravel Filament applications. This package provides an intuitive way for users to save, organize, and access bookmarks directly within your Admin panel.
#Features
- 📚 Smart Bookmark Creation: Automatically captures the current page URL and title
- 📁 Folder Organization: Organize bookmarks into custom folders
- 🔍 Real-time Search: Search through your bookmarks with instant filtering
- ⌨️ Keyboard Shortcuts: Quick bookmark creation shortcut
Cmd+Shift+Bon Mac orCtrl+Shift+Bon Windows/Linux - 👤 User-specific: Each user has their own private bookmarks
- 🎯 Customizable: Configurable icons, render hooks, table names
#Screenshots
#Add Bookmark

#View Bookmarks

#Requirements
- PHP 8.3+
- Laravel 11+
- Filament 3 or 4
#Installation
Install the package via Composer:
#For Filament 3
composer require jaysontemporas/page-bookmarks:"^1.0"
#For Filament 4
composer require jaysontemporas/page-bookmarks:"^2.0"
Publish and run the installation command:
php artisan page-bookmarks:install
This command will:
- Publish the configuration file
- Publish and run the database migrations
- Publish the assets
#Configuration
#Basic Configuration
The package configuration file is located at config/page-bookmarks.php. Here are the main configuration options:
return [
// Table names (customizable to avoid conflicts)
'tables' => [
'bookmarks' => 'bookmarks',
'bookmark_folders' => 'bookmark_folders',
],
// User model for bookmark associations
'models' => [
'user' => \App\Models\User::class,
],
// Icons used throughout the interface
'icons' => [
'add_bookmark' => 'heroicon-o-folder-plus',
'view_bookmarks' => 'heroicon-o-bookmark',
'bookmark_item' => 'heroicon-o-bookmark',
'folder' => 'heroicon-o-folder',
'search' => 'heroicon-o-magnifying-glass',
'delete' => 'heroicon-o-trash',
'chevron_down' => 'heroicon-o-chevron-down',
'empty_state' => 'heroicon-o-bookmark',
],
// Render hook positions in Filament
'render_hooks' => [
'add_bookmark' => \Filament\View\PanelsRenderHook::GLOBAL_SEARCH_AFTER,
'view_bookmarks' => \Filament\View\PanelsRenderHook::GLOBAL_SEARCH_AFTER,
],
];
This package utilizes Filament's theming system, so you'll need to set up a custom theme to properly style all components.
[!NOTE] Before proceeding, ensure you have configured a custom theme if you're using Filament Panels. Check the Filament documentation on themes for detailed instructions. This step is required for both the Panels Package and standalone Forms package.
#Filament 3
To properly compile all the package styles, update your Tailwind configuration by adding the package's view paths:
// In your resources/css/filament/admin/tailwind.config.js
// where admin is the name of your panel
module.exports = {
content: [
// Include the package's blade templates
'./vendor/jaysontemporas/page-bookmarks/resources/**/*.blade.php',
// Your existing paths...
],
// The rest of your Tailwind config
};
#Filament 4
Add the plugin's views to your theme css file.
@source '../../../../vendor/jaysontemporas/page-bookmarks/resources/**/*.blade.php';
#Usage
#Adding the HasBookmarks Trait
To enable bookmark functionality for your User model, add the HasBookmarks trait:
<?php
namespace App\Models;
use Illuminate\Foundation\Auth\User as Authenticatable;
use JaysonTemporas\PageBookmarks\Traits\HasBookmarks;
class User extends Authenticatable
{
use HasBookmarks;
// ... rest of your User model
}
#Customization
#Customizing Render Hooks
You can customize where the bookmark components appear in your Filament panel by modifying the render_hooks configuration:
'render_hooks' => [
'add_bookmark' => \Filament\View\PanelsRenderHook::GLOBAL_SEARCH_AFTER,
'view_bookmarks' => \Filament\View\PanelsRenderHook::GLOBAL_SEARCH_AFTER,
],
For a complete list of available render hook options, please refer to the official Filament documentation. The documentation includes all available PanelsRenderHook constants and their specific use cases.
#Custom Icons
You can customize the icons used throughout the interface by modifying the icons configuration:
'icons' => [
'add_bookmark' => 'heroicon-o-bookmark-square',
'view_bookmarks' => 'heroicon-o-bookmark',
// ... other icons
],
#Custom Table Names
If you need to avoid table name conflicts, you can customize the table names:
'tables' => [
'bookmarks' => 'my_custom_bookmarks',
'bookmark_folders' => 'my_custom_bookmark_folders',
],
#Custom User Model
If you have a custom User model, update the configuration:
'models' => [
'user' => \App\Models\CustomUser::class,
],
#Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
#License
This package is open-sourced software licensed under the MIT license.
#Support
If you encounter any issues or have questions, please open an issue on the GitHub repository.
The author
Jayson Temporas is a seasoned full stack web developer with over a decade of experience in the industry. He specializes in Laravel and the TALL stack, crafting modern, scalable applications. Jayson is passionate about web development and continuously explores new technologies to enhance his skills.
From the same author
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Data Lens
Advanced Data Visualization for Laravel Filament - a premium reporting solution enabling custom column creation, sophisticated filtering, and enterprise-grade data insights within admin panels.
Padmission
Custom Fields
Eliminate custom field migrations forever. Let your users create and manage form fields directly in Filament admin panels with 20+ built-in field types, validation, and zero database changes.
Relaticle