helios-live/filament-feature-showcase
Showcase and demo Filament features in a clean, interactive way. Add a feature gallery to your admin panel with examples, previews, and helpful descriptions—ideal for docs, onboarding, and quickly exploring what Filament components can do.
A beautiful Filament plugin that displays a version changelog modal with an always-accessible "What's New" button. Keep your users informed about new features with an elegant, accordion-style changelog.
composer require helios-live/filament-feature-showcase
Add the plugin to your AdminPanelProvider:
use HeliosLive\FilamentFeatureShowcase\FeatureShowcasePlugin;
public function panel(Panel $panel): Panel
{
return $panel
// ...
->plugin(FeatureShowcasePlugin::make());
}
php artisan vendor:publish --tag=filament-feature-showcase-config
The plugin's Tailwind classes need to be included in your Filament theme. Add the following @source directive to your theme CSS file (usually resources/css/filament/admin/theme.css):
@source '../../../../vendor/helios-live/filament-feature-showcase/resources/**/*.blade.php';
Then rebuild your theme:
npm run build
Your User model must have a JSON column to store the last seen version (defaults to preferences). The column must be cast to array:
protected $casts = [
'preferences' => 'array',
];
If you don't have one, create a migration:
php artisan make:migration add_preferences_to_users_table
Schema::table('users', function (Blueprint $table) {
$table->json('preferences')->nullable();
});
You can use a different column name by setting user_column in the config.
Edit config/filament-feature-showcase.php to define your versions and features:
return [
'current' => '1.2.0',
'user_column' => 'preferences',
'preference_key' => 'last_seen_version',
'dismiss_route' => '/admin/dismiss-version-showcase',
'changelog' => [
'1.2.0' => [
'title' => 'Dark Mode Support',
'description' => 'Full dark mode support across the platform.',
'features' => [
[
'icon' => 'heroicon-o-moon',
'title' => 'Dark Mode',
'description' => 'Toggle between light and dark themes.',
],
],
],
'1.1.0' => [
'title' => 'Search Improvements',
'description' => 'Find what you need faster.',
'features' => [
[
'icon' => 'heroicon-o-magnifying-glass',
'title' => 'Global Search',
'description' => 'Search across all resources instantly.',
],
],
],
],
];
FeatureShowcasePlugin::make()
->showSidebarVersion(true) // Show version in sidebar footer (default: true)
->showButton(true) // Show the floating "What's New" button (default: true)
->buttonPosition('bottom-left') // Button position: bottom-left, bottom-right, top-left, top-right
The package UI strings are translatable using Laravel's localization system.
You may publish the translation files with:
php artisan vendor:publish --tag=filament-feature-showcase-translations
This will publish the package language files so you can customize labels such as the modal title, version badge, action buttons, and helper text.
For example, after publishing the translations, you may edit the Spanish file:
lang/vendor/filament-feature-showcase/es/messages.php
Depending on your Laravel version, the file may also be published under:
resources/lang/vendor/filament-feature-showcase/es/messages.php
Changelog values are also passed through Laravel's __() helper when rendered.
This means you can keep using plain strings:
'changelog' => [
'1.2.0' => [
'title' => 'Dark Mode Support',
'description' => 'Full dark mode support across the platform.',
'features' => [
[
'icon' => 'heroicon-o-moon',
'title' => 'Dark Mode',
'description' => 'Toggle between light and dark themes.',
],
],
],
],
Or you can use translation keys:
'changelog' => [
'1.2.0' => [
'title' => 'changelog.versions.1_2_0.title',
'description' => 'changelog.versions.1_2_0.description',
'features' => [
[
'icon' => 'heroicon-o-moon',
'title' => 'changelog.versions.1_2_0.features.dark_mode.title',
'description' => 'changelog.versions.1_2_0.features.dark_mode.description',
],
],
],
],
Then define those translations in your application, for example:
// lang/es/changelog.php
return [
'versions' => [
'1_2_0' => [
'title' => 'Compatibilidad con modo oscuro',
'description' => 'Compatibilidad completa con modo oscuro en toda la plataforma.',
'features' => [
'dark_mode' => [
'title' => 'Modo oscuro',
'description' => 'Alterna entre temas claros y oscuros.',
],
],
],
],
];
last_seen_version preference against config('filament-feature-showcase.current')MIT
How can I help you explore Laravel packages today?