PHPackages                             mominalzaraa/filament-composer-release-notifier - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. mominalzaraa/filament-composer-release-notifier

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

mominalzaraa/filament-composer-release-notifier
===============================================

Filament plugin: Packagist or GitHub version comparison for composer.json / composer.lock, dashboard widget + resource, optional mail — informational only (no composer update).

1.0.0(2mo ago)149↓25%MITPHPPHP ^8.3CI passing

Since May 20Pushed 1mo agoCompare

[ Source](https://github.com/MominAlZaraa/filament-composer-release-notifier)[ Packagist](https://packagist.org/packages/mominalzaraa/filament-composer-release-notifier)[ Docs](https://github.com/MominAlZaraa/filament-composer-release-notifier)[ GitHub Sponsors](https://github.com/MominAlZaraa)[ RSS](/packages/mominalzaraa-filament-composer-release-notifier/feed)WikiDiscussions main Synced 3w ago

READMEChangelog (1)Dependencies (9)Versions (3)Used By (0)

Filament Composer Release Notifier
==================================

[](#filament-composer-release-notifier)

[![Latest Version on Packagist](https://camo.githubusercontent.com/c20e1996e9c21b7a98e67e0465a2d9d34dd73bf00de229885c3174285d345fc9/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6d6f6d696e616c7a617261612f66696c616d656e742d636f6d706f7365722d72656c656173652d6e6f7469666965723f7374796c653d666c61742d737175617265266c6f676f3d7061636b6167697374)](https://packagist.org/packages/mominalzaraa/filament-composer-release-notifier)[![Total Downloads](https://camo.githubusercontent.com/f13b979060334a156c258ace6a6a9782425d49fa66161024adec0755a15c993e/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6d6f6d696e616c7a617261612f66696c616d656e742d636f6d706f7365722d72656c656173652d6e6f7469666965723f7374796c653d666c61742d737175617265266c6f676f3d7061636b6167697374)](https://packagist.org/packages/mominalzaraa/filament-composer-release-notifier)[![Monthly Downloads](https://camo.githubusercontent.com/759d6f1ebbf9deab72c149568df1dea0f8d209652804b09276f6db594a4c1cea/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646d2f6d6f6d696e616c7a617261612f66696c616d656e742d636f6d706f7365722d72656c656173652d6e6f7469666965723f7374796c653d666c61742d737175617265266c6f676f3d7061636b6167697374)](https://packagist.org/packages/mominalzaraa/filament-composer-release-notifier)[![GitHub Tests](https://camo.githubusercontent.com/ba7d722a55aaf925d21ef7880306b22f359d5d79fffce99800de172720b2c581/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f4d6f6d696e416c5a617261612f66696c616d656e742d636f6d706f7365722d72656c656173652d6e6f7469666965722f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265266c6f676f3d676974687562)](https://github.com/MominAlZaraa/filament-composer-release-notifier/actions/workflows/run-tests.yml)[![License](https://camo.githubusercontent.com/aa107af3d79195d08573e25b0d27fdecf0eac23459aa3e453fc5b88e9b0338d2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6d6f6d696e616c7a617261612f66696c616d656e742d636f6d706f7365722d72656c656173652d6e6f7469666965723f7374796c653d666c61742d737175617265)](https://github.com/MominAlZaraa/filament-composer-release-notifier/blob/main/LICENSE)[![PHP Version](https://camo.githubusercontent.com/ff9d3d1ba1f7dcee1c4df63ed88e90db5e5a53c76949d6c2f286ba05251dc703/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f646570656e64656e63792d762f6d6f6d696e616c7a617261612f66696c616d656e742d636f6d706f7365722d72656c656173652d6e6f7469666965722f7068703f7374796c653d666c61742d737175617265266c6f676f3d706870)](https://packagist.org/packages/mominalzaraa/filament-composer-release-notifier)[![Filament](https://camo.githubusercontent.com/c5f479a00b542af576cd7dc10ae8f3b115f09b5ef3868063dab11c383211c28a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f46696c616d656e742d352e782d4635394530423f7374796c653d666c61742d737175617265)](https://filamentphp.com)[![GitHub Stars](https://camo.githubusercontent.com/5483f4c3fe16b5e84cdaecbd88cfe7581f5d924d73134f2d39d309ebcadb91be/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f4d6f6d696e416c5a617261612f66696c616d656e742d636f6d706f7365722d72656c656173652d6e6f7469666965723f7374796c653d666c61742d737175617265266c6f676f3d676974687562)](https://github.com/MominAlZaraa/filament-composer-release-notifier)[![Sponsor](https://camo.githubusercontent.com/e8bb5efd6e5f50ac420c1cd6019311ab720796105bf407eab936b58ad6087313/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73706f6e736f72732f4d6f6d696e416c5a617261613f7374796c653d666c61742d737175617265266c6f676f3d676974687562)](https://github.com/sponsors/MominAlZaraa)

 [![Filament Composer Release Notifier](.github/plugin-banner.png)](.github/plugin-banner.png)

**Filament-native Composer visibility** — keep your team informed about **newer versions** of the packages declared in `composer.json` and pinned in `composer.lock`, without ever running `composer update` from the panel.

**Default source**[Packagist](https://packagist.org) `p2` metadata — **no GitHub token** required for version checks**Optional**GitHub Releases + compare API, commit summaries, HTML mail**Surface**Filament **resource**, **dashboard widget**, optional **email** digest**Stance****Informational only** — bumps belong in **development** (CI, review), then deploy**Requirements**: PHP ^8.3 · Laravel ^12.0 | ^13.0 · Filament ^5.0

> **Heads-up:** This plugin **observes** drift; it does **not** install updates, rewrite `composer.lock`, or execute Composer against production.

---

Table of contents
-----------------

[](#table-of-contents)

- [Why this exists](#why-this-exists)
- [Features](#features)
- [Screenshots](#screenshots)
- [How it works](#how-it-works)
- [Installation](#installation)
- [Configuration highlights](#configuration-highlights)
- [Version source: Packagist vs GitHub](#version-source-packagist-vs-github)
- [Queue and sync](#queue-and-sync)
- [Filament and Tailwind v4](#filament-and-tailwind-v4)
- [Testing](#testing)
- [Local development](#local-development)
- [Privacy](#privacy)
- [Contributing](#contributing)
- [Support &amp; funding](#support--funding)
- [License](#license)

---

Why this exists
---------------

[](#why-this-exists)

One of the **first Filament-focused** tools aimed at **continuously checking** whether your Composer dependencies are **behind** published releases — **inside the panel** your team already uses.

- **Active comparison** after login (queued) plus **manual “Check again”** on the resource.
- **Informational only** — no `composer update`, no lockfile writes, no package installs from Filament.
- **Production stays read-only** for dependency changes; run updates in **dev**, test, merge, deploy.

---

Features
--------

[](#features)

- **Packagist-first** — latest stable versions from public `repo.packagist.org` (`/p2/{vendor}/{package}.json`).
- **GitHub mode** — optional switch to GitHub Releases + compare API when you care about release notes/tags.
- **Filament resource** — sortable table: package, installed, latest, sync time, **Details** modal (notes, compare link, optional commit list).
- **Dashboard widget** — at-a-glance **tracked** vs **behind latest** with an informational footer.
- **Session-aware sync** — one queued refresh per login session; logout resets so the next login can sync again.
- **“Check again”** — runs the sync job **synchronously** for instant feedback (works even without a queue worker).
- **Optional email** — HTML summary when mail is configured (throttle + recipient modes).
- **Browser compare URLs** — public GitHub compare links without the API when using Packagist mode (no token for the website).

---

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

[](#screenshots)

[![Filament dashboard widget: tracked Composer packages and count behind latest release](https://raw.githubusercontent.com/MominAlZaraa/filament-composer-release-notifier/main/.github/screenshots/widget-dashboard.png)](https://raw.githubusercontent.com/MominAlZaraa/filament-composer-release-notifier/main/.github/screenshots/widget-dashboard.png)
**Dashboard widget** — tracked packages vs behind latest; footer reminds you it is informational (no auto-updates).

[![Filament Composer Packages resource with Check again and version badges](https://raw.githubusercontent.com/MominAlZaraa/filament-composer-release-notifier/main/.github/screenshots/composer-packages-list.png)](https://raw.githubusercontent.com/MominAlZaraa/filament-composer-release-notifier/main/.github/screenshots/composer-packages-list.png)
**Composer Packages** — resource table, status badges, search, pagination, and **Check again**.

---

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

[](#how-it-works)

 ```
flowchart LR
  subgraph inputs [Your app]
    CJ[composer.json]
    CL[composer.lock]
  end
  subgraph sources [Remote metadata]
    P[Packagist p2]
    GH[GitHub API optional]
  end
  subgraph app [Laravel / Filament]
    S[Sync service]
    DB[(Snapshots)]
    R[Resource + widget]
  end
  CJ --> S
  CL --> S
  S --> P
  S -.-> GH
  S --> DB
  DB --> R
```

      Loading 1. Read **root** `composer.json` + `composer.lock` (paths configurable).
2. For each tracked package, resolve **latest** version (**Packagist** by default, or **GitHub** if configured).
3. Compare with **installed** lock version → outdated flag, optional **compare** / **release notes** / **commits**.
4. **Upsert** rows in `composer_release_package_snapshots` and prune removed packages.
5. **Filament** reads the table — widget + resource; **mail** optionally sends a digest.

---

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

[](#installation)

```
composer require mominalzaraa/filament-composer-release-notifier
```

Publish and migrate:

```
php artisan vendor:publish --tag="filament-composer-release-notifier-migrations"
php artisan migrate
```

Publish config (optional):

```
php artisan vendor:publish --tag="filament-composer-release-notifier-config"
```

Register the plugin on your panel:

```
use MominAlZaraa\FilamentComposerReleaseNotifier\FilamentComposerReleaseNotifierPlugin;

$panel->plugins([
    FilamentComposerReleaseNotifierPlugin::make()
        ->resource(enabled: true)
        ->widget(enabled: true)
        ->mailReports(enabled: true),
]);
```

---

Configuration highlights
------------------------

[](#configuration-highlights)

File: `config/filament-composer-release-notifier.php`

```
return [
    'enabled' => env('FILAMENT_COMPOSER_RELEASE_NOTIFIER_ENABLED', true),

    'composer_json_path' => env('FILAMENT_COMPOSER_RELEASE_NOTIFIER_COMPOSER_JSON', base_path('composer.json')),
    'composer_lock_path' => env('FILAMENT_COMPOSER_RELEASE_NOTIFIER_COMPOSER_LOCK', base_path('composer.lock')),

    // packagist (default) | github
    'version_source' => env('FILAMENT_COMPOSER_RELEASE_NOTIFIER_VERSION_SOURCE', 'packagist'),

    'packagist' => [
        'base_url' => env('FILAMENT_COMPOSER_RELEASE_NOTIFIER_PACKAGIST_URL', 'https://repo.packagist.org'),
        'http_timeout' => (int) env('FILAMENT_COMPOSER_RELEASE_NOTIFIER_PACKAGIST_TIMEOUT', 15),
        'user_agent' => env('FILAMENT_COMPOSER_RELEASE_NOTIFIER_PACKAGIST_USER_AGENT', 'filament-composer-release-notifier'),
    ],

    'github' => [
        'token' => env('GITHUB_TOKEN'),
        'http_timeout' => (int) env('FILAMENT_COMPOSER_RELEASE_NOTIFIER_HTTP_TIMEOUT', 15),
    ],

    'compare' => [
        'max_commits_stored' => 50,
        'fetch_github_commits_with_packagist' => env(
            'FILAMENT_COMPOSER_RELEASE_NOTIFIER_PACKAGIST_FETCH_GITHUB_COMMITS',
            false
        ),
    ],

    'excluded_packages' => [
        // 'some-vendor/internal-metapackage',
    ],

    // mail: recipient_mode, specific_emails, send_when, throttle_hours, ...
];
```

---

Version source: Packagist vs GitHub
-----------------------------------

[](#version-source-packagist-vs-github)

ModeBest forToken**`packagist` (default)**Semver tags on Packagist, fast public JSONNot required for versions**`github`**Teams that standardize on **GitHub Releases** + compare APIRecommended for rate limits / private repos**Packagist mode details**

- Reads `https://repo.packagist.org/p2/{vendor}/{package}.json`.
- If `source.url` in the lock is `github.com`, a **browser** compare URL is built (no GitHub API for the link itself).
- Set `FILAMENT_COMPOSER_RELEASE_NOTIFIER_PACKAGIST_FETCH_GITHUB_COMMITS=true` if you also want **commit summaries** via GitHub’s compare API (still optional; anonymous limits without a token).

**GitHub mode**

- Uses `/releases/latest` + compare API — align with your release process if tags mirror Packagist.

---

Queue and sync
--------------

[](#queue-and-sync)

TriggerBehavior**Login** (Filament user)Dispatches **one** `SyncComposerReleaseSnapshotsJob` per session (queue).**Logout**Clears session flag so the **next** login can enqueue again.**Check again** (header action)Runs sync **synchronously** — instant table refresh; works without a worker.For GitHub API-heavy setups, set `GITHUB_TOKEN` in `.env` and `github.token` in config.

---

Filament and Tailwind v4
------------------------

[](#filament-and-tailwind-v4)

If views live under `vendor/mominalzaraa/filament-composer-release-notifier`, add Tailwind **@source** so modal utilities survive `npm run build`:

```
@source '../../vendor/mominalzaraa/filament-composer-release-notifier/resources/views/**/*.blade.php';
```

---

Testing
-------

[](#testing)

```
composer test
```

Host app with Pest already installed:

```
./vendor/bin/pest /path/to/filament-composer-release-notifier/tests/Unit
```

Feature tests should run from the **package root** so `tests/Pest.php` applies.

---

Local development
-----------------

[](#local-development)

`composer install` may hit GitHub rate limits on dist downloads. Configure OAuth once:

```
composer config --global github-oauth.github.com YOUR_GITHUB_TOKEN
```

CI uses `secrets.GITHUB_TOKEN` via `COMPOSER_AUTH` — see [.github/workflows/run-tests.yml](.github/workflows/run-tests.yml).

---

Privacy
-------

[](#privacy)

Sync uses **package names** and **public** metadata (Packagist and optionally GitHub). It does **not** upload your application source code.

---

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

[](#contributing)

Contributions are welcome — **issues** and **pull requests** on [GitHub](https://github.com/MominAlZaraa/filament-composer-release-notifier).

---

Support &amp; funding
---------------------

[](#support--funding)

If this package saves you time:

- **Star** the [repository](https://github.com/MominAlZaraa/filament-composer-release-notifier)
- **Report bugs** / request features via [Issues](https://github.com/MominAlZaraa/filament-composer-release-notifier/issues)
- **Sponsor** on [GitHub Sponsors](https://github.com/sponsors/MominAlZaraa)
- **Email**:
- **Website**: [mominpert.com](https://mominpert.com)

---

License
-------

[](#license)

MIT. See [LICENSE](LICENSE).

###  Health Score

42

—

FairBetter than 88% of packages

Maintenance88

Actively maintained with recent releases

Popularity13

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity50

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

65d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/64691179?v=4)[Momin Al Zaraa](/maintainers/MominAlZaraa)[@MominAlZaraa](https://github.com/MominAlZaraa)

---

Top Contributors

[![MominAlZaraa](https://avatars.githubusercontent.com/u/64691179?v=4)](https://github.com/MominAlZaraa "MominAlZaraa (6 commits)")

---

Tags

composerlaravelpackagenotificationsgithubfilamentpackagistreleasesdeveloper toolmominalzaraa

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/mominalzaraa-filament-composer-release-notifier/health.svg)

```
[![Health](https://phpackages.com/badges/mominalzaraa-filament-composer-release-notifier/health.svg)](https://phpackages.com/packages/mominalzaraa-filament-composer-release-notifier)
```

###  Alternatives

[ysfkaya/filament-phone-input

A phone input component for Laravel Filament

3161.3M26](/packages/ysfkaya-filament-phone-input)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3914.8k](/packages/rawilk-profile-filament-plugin)[backstage/mails

View logged mails and events in a beautiful Filament UI.

16121.5k](/packages/backstage-mails)[stephenjude/filament-feature-flags

Filament implementation of feature flags and segmentation with Laravel Pennant.

123177.8k1](/packages/stephenjude-filament-feature-flags)[mominalzaraa/filament-localization

The first and only automatic Filament localization package with intelligent resource scanning, structured translation files, and comprehensive testing

102.8k](/packages/mominalzaraa-filament-localization)[crumbls/layup

A visual page builder plugin for Filament 5 — Divi-style grid layouts with extensible widgets.

592.8k2](/packages/crumbls-layup)

PHPackages © 2026

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