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.
- 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
composer require helios-live/filament-feature-showcaseAdd 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-configThe 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 buildYour 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_tableSchema::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-rightThe 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-translationsThis 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.',
],
],
],
],
];- When a user logs in, the plugin checks their
last_seen_versionpreference againstconfig('filament-feature-showcase.current') - If the versions don't match, the modal auto-opens showing the latest version's features
- Clicking "Got it, let's go!" marks the version as seen
- The floating sparkles button is always available to re-open the changelog
- All versions are shown in a collapsible accordion, newest first
MIT