PHPackages                             marcelodelgado/filament-announcements - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Admin Panels](/categories/admin)
4. /
5. marcelodelgado/filament-announcements

ActiveLibrary[Admin Panels](/categories/admin)

marcelodelgado/filament-announcements
=====================================

Filament v5 plugin for institutional announcements on the admin dashboard

v1.0.0(3w ago)5160↑106.3%2[1 PRs](https://github.com/MarceloDelgadoDev/filament-announcements/pulls)MITPHPPHP ^8.2

Since May 11Pushed 3w agoCompare

[ Source](https://github.com/MarceloDelgadoDev/filament-announcements)[ Packagist](https://packagist.org/packages/marcelodelgado/filament-announcements)[ RSS](/packages/marcelodelgado-filament-announcements/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (6)Versions (3)Used By (0)

 [![Filament Announcements Banner](https://raw.githubusercontent.com/MarceloDelgadoDev/filament-announcements/main/art/banner.png)](https://raw.githubusercontent.com/MarceloDelgadoDev/filament-announcements/main/art/banner.png)

 [ ![Latest Version](https://camo.githubusercontent.com/d84d191b2c3062cd1754468e23684bd7308eba70f677d31d62b099a72457205a/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d617263656c6f64656c6761646f2f66696c616d656e742d616e6e6f756e63656d656e74733f7374796c653d666c61742d737175617265) ](https://packagist.org/packages/marcelodelgado/filament-announcements) [ ![Total Downloads](https://camo.githubusercontent.com/e7b75dac5a157ddbddfd7124ccfa9f8be0df77e9ded4e2ec932518b4a95866ed/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d617263656c6f64656c6761646f2f66696c616d656e742d616e6e6f756e63656d656e74733f7374796c653d666c61742d737175617265) ](https://packagist.org/packages/marcelodelgado/filament-announcements) [ ![PHP Version](https://camo.githubusercontent.com/dd9056088f614ff7e689d5de6a7df88049809ed6cc39180ff8afc77e5fcb2755/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f6d617263656c6f64656c6761646f2f66696c616d656e742d616e6e6f756e63656d656e74733f7374796c653d666c61742d737175617265) ](https://packagist.org/packages/marcelodelgado/filament-announcements) [ ![License](https://camo.githubusercontent.com/3a0d891556c7f87702a9c684badea68b7fc4c2168a56374077469f0a884ccef1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f4d617263656c6f44656c6761646f4465762f66696c616d656e742d616e6e6f756e63656d656e74733f7374796c653d666c61742d737175617265) ](https://github.com/MarceloDelgadoDev/filament-announcements/blob/main/LICENSE)

---

Filament Announcements
======================

[](#filament-announcements)

A [Filament v5](https://filamentphp.com/) plugin to display institutional announcements and alerts on your panel dashboard — with full CRUD, per-user dismiss, and automatic expiration.

---

Screenshots
-----------

[](#screenshots)

### Dashboard Widget

[](#dashboard-widget)

[![Widget](https://raw.githubusercontent.com/MarceloDelgadoDev/filament-announcements/main/art/widget.png)](https://raw.githubusercontent.com/MarceloDelgadoDev/filament-announcements/main/art/widget.png)

### Announcements List

[](#announcements-list)

[![List](https://raw.githubusercontent.com/MarceloDelgadoDev/filament-announcements/main/art/resource-list.png)](https://raw.githubusercontent.com/MarceloDelgadoDev/filament-announcements/main/art/resource-list.png)

### Create / Edit Form

[](#create--edit-form)

[![Form](https://raw.githubusercontent.com/MarceloDelgadoDev/filament-announcements/main/art/resource-form.png)](https://raw.githubusercontent.com/MarceloDelgadoDev/filament-announcements/main/art/resource-form.png)

---

Features
--------

[](#features)

- 📢 **Dashboard widget** — displays active announcements ordered by severity
- ✅ **Full CRUD** via `AnnouncementResource` with type badges, bulk actions and inline toggles
- ⏱ **Automatic expiration** — uses `starts_at` / `expires_at` date 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`, `success` with Filament semantic colors

---

Requirements
------------

[](#requirements)

DependencyVersionPHP**8.2+**Laravel**11+**Filament**5.x**spatie/laravel-package-tools**^1.16**---

Installation
------------

[](#installation)

Install via Composer:

```
composer require marcelodelgado/filament-announcements
```

Publish and run the migrations:

```
php artisan vendor:publish --tag="announcements-migrations"
php artisan migrate
```

Optionally publish config and views to customize them:

```
php artisan vendor:publish --tag="announcements-config"
php artisan vendor:publish --tag="announcements-views"
php artisan vendor:publish --tag="announcements-translations"
```

---

Setup
-----

[](#setup)

### 1. Register the plugin in your PanelProvider

[](#1-register-the-plugin-in-your-panelprovider)

```
use Marcelodelgado\Announcements\AnnouncementsPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        ->plugin(
            AnnouncementsPlugin::make()
                ->pollingInterval('120s') // optional, default: '60s'
        );
}
```

### 2. Add the trait to your User model

[](#2-add-the-trait-to-your-user-model)

```
use Marcelodelgado\Announcements\Traits\HasAnnouncements;

class User extends Authenticatable
{
    use HasAnnouncements;
}
```

That's it — the widget will appear on your dashboard and the **Announcements** menu item will show up in the sidebar.

---

Configuration
-------------

[](#configuration)

After publishing, edit `config/announcements.php`:

KeyTypeDefaultDescription`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

[](#permissions-example)

```
// config/announcements.php

// Using a Laravel Gate:
'permission_check' => 'manage-announcements',

// Using a closure:
'permission_check' => fn ($user) => $user->hasRole('admin'),

// Using Spatie Permission:
'permission_check' => fn ($user) => $user->can('manage-announcements'),
```

---

How it works
------------

[](#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
------------

[](#translations)

The plugin ships with English strings. To add your own language, publish the translation files:

```
php artisan vendor:publish --tag="announcements-translations"
```

This will create `lang/vendor/announcements/{locale}/announcements.php` where you can override any string.

---

Roadmap
-------

[](#roadmap)

- Audience targeting by role / group
- Custom icon picker per announcement
- Optional CTA link/button on the widget
- Multi-panel support
- `announcements:prune` artisan command

---

Changelog
---------

[](#changelog)

Please see [CHANGELOG.md](CHANGELOG.md) for details on recent changes.

---

Contributing
------------

[](#contributing)

Pull requests are welcome! Please keep the scope aligned with the package goals.

- Run `vendor/bin/pint` before submitting PHP changes
- Add tests for new behaviour when applicable
- Open an issue first for significant changes

---

License
-------

[](#license)

MIT — see [LICENSE](LICENSE) for details.

---

 Made with ❤️ by [Marcelo Delgado](https://github.com/MarceloDelgadoDev)

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance94

Actively maintained with recent releases

Popularity21

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity47

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

26d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/9a9f8e48c04f5059e052f80ea73f572bd0b73a803d2520c636d12060f399510b?d=identicon)[marcelodelgado](/maintainers/marcelodelgado)

---

Top Contributors

[![MarceloDelgadoDev](https://avatars.githubusercontent.com/u/117915943?v=4)](https://github.com/MarceloDelgadoDev "MarceloDelgadoDev (3 commits)")

---

Tags

laravelalertsdashboardfilamentfilament-pluginfilament-v5announcements

###  Code Quality

TestsPHPUnit

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/marcelodelgado-filament-announcements/health.svg)

```
[![Health](https://phpackages.com/badges/marcelodelgado-filament-announcements/health.svg)](https://phpackages.com/packages/marcelodelgado-filament-announcements)
```

###  Alternatives

[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3913.7k](/packages/rawilk-profile-filament-plugin)[mradder/filament-logger

Audit logging, activity tracking, exports, alerts, and dashboards for Filament admin panels.

2210.5k](/packages/mradder-filament-logger)[croustibat/filament-jobs-monitor

Background Jobs monitoring like Horizon for all drivers for FilamentPHP

264298.4k8](/packages/croustibat-filament-jobs-monitor)[stephenjude/filament-jetstream

A Laravel starter kit built with Filament inspired by Jetstream.

17758.9k2](/packages/stephenjude-filament-jetstream)[dotswan/filament-map-picker

Easily pick and retrieve geo-coordinates using a map-based interface in your Filament applications.

127173.7k3](/packages/dotswan-filament-map-picker)[caresome/filament-neobrutalism-theme

A neobrutalism theme for FilamentPHP admin panels

324.9k1](/packages/caresome-filament-neobrutalism-theme)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
