Download the PHP package marcelodelgado/filament-announcements without Composer
On this page you can find all versions of the php package marcelodelgado/filament-announcements. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download marcelodelgado/filament-announcements
More information about marcelodelgado/filament-announcements
Files in marcelodelgado/filament-announcements
Package filament-announcements
Short Description Filament v5 plugin for institutional announcements on the admin dashboard
License MIT
Informations about the package filament-announcements
Filament Announcements
A Filament v5 plugin to display institutional announcements and alerts on your panel dashboard — with full CRUD, per-user dismiss, and automatic expiration.
Screenshots
Dashboard Widget

Announcements List

Create / Edit Form

Features
- 📢 Dashboard widget — displays active announcements ordered by severity
- ✅ Full CRUD via
AnnouncementResourcewith type badges, bulk actions and inline toggles - ⏱ Automatic expiration — uses
starts_at/expires_atdate windows, no jobs required - 👤 Per-user dismiss — dismissible announcements are remembered per user via a pivot table
- 🔒 Flexible permissions — works out-of-the-box, with optional Gate or Spatie integration
- 🌍 Translatable — all strings go through
__()with publishable language files - 🎨 4 severity levels —
info,warning,danger,successwith Filament semantic colors
Requirements
| Dependency | Version |
|---|---|
| PHP | 8.2+ |
| Laravel | 11+ |
| Filament | 5.x |
| spatie/laravel-package-tools | ^1.16 |
Installation
Install via Composer:
Publish and run the migrations:
Optionally publish config and views to customize them:
Setup
1. Register the plugin in your PanelProvider
2. Add the trait to your User model
That's it — the widget will appear on your dashboard and the Announcements menu item will show up in the sidebar.
Configuration
After publishing, edit config/announcements.php:
| Key | Type | Default | Description |
|---|---|---|---|
permission_check |
null, string or Closure |
null |
Access control for the Resource. null = no extra check. string = Laravel Gate name. Closure = receives the authenticated user, must return bool. |
polling_interval |
string |
'60s' |
Fallback wire:poll interval for the widget when the panel plugin interval cannot be resolved. |
Permissions example
How it works
Widget — only shows announcements where is_active = true and the current time falls within the starts_at / expires_at window. Results are ordered with danger first, then by created_at descending.
Dismiss — when a user closes a dismissible announcement, the action is recorded in the announcement_user pivot table (dismissed_at). That announcement will never show again for that user. Non-dismissible announcements hide the close button entirely.
Expiration — handled purely by the query. No scheduled commands required.
Translations
The plugin ships with English strings. To add your own language, publish the translation files:
This will create lang/vendor/announcements/{locale}/announcements.php where you can override any string.
Roadmap
- [ ] Audience targeting by role / group
- [ ] Custom icon picker per announcement
- [ ] Optional CTA link/button on the widget
- [ ] Multi-panel support
- [ ]
announcements:pruneartisan command
Changelog
Please see CHANGELOG.md for details on recent changes.
Contributing
Pull requests are welcome! Please keep the scope aligned with the package goals.
- Run
vendor/bin/pintbefore submitting PHP changes - Add tests for new behaviour when applicable
- Open an issue first for significant changes
License
MIT — see LICENSE for details.
Made with ❤️ by Marcelo Delgado
All versions of filament-announcements with dependencies
filament/filament Version ^5.0
illuminate/contracts Version ^11.0|^12.0|^13.0
spatie/laravel-package-tools Version ^1.16