Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Feature Showcase Laravel Package

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.

View on GitHub
Deep Wiki
Context7

Filament Feature Showcase

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.

Features

  • Auto-show modal when a new version is released
  • Accordion-style changelog showing all versions (newest first)
  • Persistent floating "What's New" button with unseen version indicator
  • Version label in the sidebar footer
  • Fully configurable via a publishable config file
  • Dark mode support
  • Respects your Filament theme colors

Installation

composer require helios-live/filament-feature-showcase

Setup

1. Register the plugin

Add the plugin to your AdminPanelProvider:

use HeliosLive\FilamentFeatureShowcase\FeatureShowcasePlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ...
        ->plugin(FeatureShowcasePlugin::make());
}

2. Publish the config

php artisan vendor:publish --tag=filament-feature-showcase-config

3. Add to your theme

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

4. User model requirement

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.

Configuration

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.',
                ],
            ],
        ],
    ],
];

Plugin Options

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

Translations

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

Translating changelog entries

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.',
                ],
            ],
        ],
    ],
];

How It Works

  1. When a user logs in, the plugin checks their last_seen_version preference against config('filament-feature-showcase.current')
  2. If the versions don't match, the modal auto-opens showing the latest version's features
  3. Clicking "Got it, let's go!" marks the version as seen
  4. The floating sparkles button is always available to re-open the changelog
  5. All versions are shown in a collapsible accordion, newest first

License

MIT

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
socialdept/atp-orm
cboxdk/laravel-assistant-client
socialdept/atp-resolver
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin