hasanyagout/filament-announcements
Filament Announcements is a Laravel/Filament plugin for adding announcement management to your admin panels. Create, publish, and display announcements or notices to users directly within Filament, keeping teams informed with a lightweight built-in messaging system. Simple to install and configure.
composer require hasanyagout/filament-announcementphp artisan vendor:publish --tag="filament-announcement-migrations" then php artisan migratephp artisan vendor:publish --tag="filament-announcement-config"AdminPanelProvider):
->plugins([
\HasanYagout\FilamentAnnouncement\FilamentAnnouncementPlugin::make(),
])
AnnouncementResource in your Filament admin panel — it provides CRUD for announcements. Create your first announcement there, then visit the panel dashboard to see it rendered (typically as a banner or widget, depending on config).First use case: publish a maintenance notice or feature update to all admin users. Create an announcement with a title and body, set it active, and confirm it appears on the dashboard.
AnnouncementResource to create, edit, and delete announcements. Fields typically include title, body, active flag, and optional start/end dates.Announcement model directly for custom display logic:
Announcement::query()
->where('is_active', true)
->where(fn ($q) => $q->whereNull('starts_at')->orWhere('starts_at', '<=', now()))
->where(fn ($q) => $q->whereNull('ends_at')->orWhere('ends_at', '>=', now()))
->latest()
->get();
starts_at / ends_at (if provided by the package) to schedule announcements. Combine with a scheduled command or the widget's canView() method to avoid showing inactive items.Announcement model's created event to send a notification or broadcast an event. Keep the announcement itself as the source of truth.AnnouncementResource and register your subclass in the plugin to add custom form fields, table columns, or policies.->defaultSort('created_at', 'desc') for ordering).getTableQuery() or table() override that relied on the old ascending order, verify your expected ordering still holds.announcements table. If you see "table not found" errors, publish and run migrations.plugins() array and that you're using the correct panel.php artisan config:clear in development. In production, remember php artisan config:cache.table() or form() methods entirely — call parent::table($table) / parent::form($form) first, then modify.is_active flag and any date constraints. Use ->toSql() on the query to inspect the generated SQL.composer update is safe. Always run your test suite after upgrading.How can I help you explore Laravel packages today?