Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Filament Media Library Laravel Package

crumbls/filament-media-library

A Filament media library manager for browsing, uploading, searching, and organizing files with folders. Integrates with Spatie Media Library so you can attach and reuse images and documents from a clean, native Filament interface.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What this release is. 1.3.0 is a compatibility-and-hardening release, not a feature release. The functional surface (media table, panel authentication, events, validation, tenant behavior) is unchanged; the changes widen the supported runtime matrix and formalize the project's quality and security posture. That is the most favorable category of release to absorb, but it also means most of the value accrues to teams already on — or about to move to — Laravel 13 / Filament 5.

Architecture fit. This is a Filament panel plugin: it plugs into Filament's resource/plugin registration and contributes a media table plus the surrounding behaviors (auth-gated panel access, events, validation rules, tenant scoping). For any application already standardized on Filament as its admin surface, the fit is native — no separate UI to build, no bespoke auth model, no divergent navigation. For applications not on Filament, this package has no standalone value; the assessment should stop there and the decision is really "are we a Filament shop," not "is this a good media library."

Integration feasibility. Low-to-moderate. Consumption is via Composer with Laravel package auto-discovery; the work is configuration and policy, not code: publish/verify migrations, register the plugin on the intended panels, decide storage disks and conversions, and confirm tenant scoping semantics against the app's tenancy model. The explicit tenant-behavior coverage in this release is the single most decision-relevant addition — multi-tenant media is where packages in this space most often leak data across tenants or silently ignore the tenant key.

Technical risk.

  • Filament 5 churn (highest). Filament majors have historically moved resource/table/form APIs. The release note "update the Filament 5 test harness" tells us the package is being tested against Filament 5, but not which Filament versions the composer.json constraint actually admits. If the constraint is narrow (^5.x only), this release may be de facto breaking for anyone still on Filament 4 despite the patch-level version bump.
  • Laravel 13 timing. Laravel 13 support is forward-looking. Confirm whether Laravel 13 is GA or pre-release at adoption time; "supports Laravel 13" on a pre-release framework is a signal of maintainer responsiveness, not a production guarantee.
  • PHP 8.3 floor. Adding 8.3 support may raise the minimum. Any service still on 8.2 must be checked before upgrading.
  • Quality signals are positive but incomplete. PHPStan config repair plus modernized PHPUnit config means static analysis and tests are actually running again; the added CI matrix (Laravel 12 & 13), Dependabot, and a SECURITY.md are exactly the governance artifacts you want from a dependency that touches uploaded files and panel authorization. Absence of a stated CVE or security fix in this release is good news.
  • Residual unknown. Release notes describe the test harness, not the shipped code. Coverage of tenant behavior in tests does not by itself prove tenant isolation in production under adversarial input.

Key questions for the maintainer (or to answer from the repo).

  1. What are the exact composer.json constraints for laravel/framework, php, and filament/filament in 1.3.0 versus 1.2.2? Is this a widening or a floor raise?
  2. Does 1.3.0 contain any schema migrations, config key renames, or event signature changes? (Notes suggest no, but confirm via diff.)
  3. Under multi-tenancy, is the tenant key enforced at the query layer, the policy layer, or both? What happens on a cross-tenant ID in a request?
  4. Where do files live by default (local disk vs. S3-compatible), and are conversions queued?
  5. What is the supported-version policy — how long will 1.2.x receive security fixes after 1.3.0?
  6. Is there a documented upgrade guide, or is the changelog the only artifact?

Integration Approach

Stack fit. Target stack: Laravel 12 (or 13 once GA), PHP 8.3+, Filament 5, Composer-based deploy. This package is a leaf dependency — it does not constrain application architecture beyond requiring Filament. Fit is binary and easy to evaluate.

Compatibility matrix to confirm before scheduling work.

Dimension Claimed Confirm
PHP 8.3 Floor vs. ceiling; 8.4 status
Laravel 12, 13 13 GA status; 11 dropped or still supported?
Filament 5 (test harness) Actual constraint; 4.x still installable?
Tenancy Covered by tests Enforcement point; per-tenant disk strategy

Migration path. From 1.2.2 this should be a composer update with no application code changes, gated on the constraint check above. Recommended path:

  1. Constrain and pin. In a branch, set crumbls/filament-media-library to 1.3.0 exactly (not a caret) and run composer update --with-dependencies to surface the resolved Filament/Laravel graph.
  2. Diff the lockfile, not just the changelog. Inspect what else moved. A plugin bump that transitively drags Filament forward is the real change.
  3. Run migrations check. Confirm whether any new migrations ship; if none, upgrade is reversible by pinning back to 1.2.2.
  4. Exercise the tenant path explicitly in staging with two tenants and a cross-tenant ID probe — this is the behavior this release newly claims coverage for and the one with real blast radius.
  5. Promote. Because 1.2.x is a patch-level predecessor and no breaking changes are announced, rollback is a version pin, not a data restore — unless migrations ship.

Sequencing relative to other work. Do not bundle this with a Filament major upgrade or a Laravel version jump. Take 1.3.0 on the current framework first (isolating the plugin variable), then move Laravel 13 separately. If you are already planning a Filament 5 migration, invert the order: land Filament 5 with the plugin pinned to a known-good version, then bump the plugin. Two variables, two deploys.

Adoption recommendation. Adopt for teams already on Filament 5 + PHP 8.3, at low risk. Pilot behind a feature flag or in a non-critical panel for teams on Filament 4 or PHP 8.2 until the constraint question is answered.

Operational Impact

Maintenance. The trajectory is healthy for a small ecosystem package: Dependabot, a CI matrix across two Laravel majors, a security policy, and restored static analysis all reduce the odds of silent rot. The "lean distribution archive" is a small but real operational nicety — faster installs, no test fixtures or docs shipped into production vendor trees. The counterweight is bus factor: this is a single-maintainer-style package whose release cadence tracks framework releases rather than a published roadmap. Budget a modest recurring line item for "verify the plugin on each Filament/Laravel bump" rather than assuming zero-touch.

Support. Upstream support is GitHub issues plus a security policy — adequate for an internal admin tool, insufficient if the media library is customer-facing and revenue-bearing. Internal mitigation: designate one engineer as the owner of this dependency and record the pinned version in your dependency register. Set a policy that security advisories get triaged within your normal SLA; the SECURITY.md gives you a channel that did not previously exist.

Scaling. Scaling pressure in a media library is storage and image processing, not request throughput from the plugin itself. Three things to settle early:

  • Storage backend. Local disk does not survive horizontal scaling or container restarts. Plan for S3-compatible object storage from day one if you run more than one app node.
  • Conversion pipeline. Image conversions and thumbnails belong on a queue, not in the request. Confirm queueability and worker capacity before media volume grows.
  • Tenancy at scale. Per-tenant disk/path prefixes and per-tenant quotas need to be decided before you have thousands of tenants, not after. This release's tenant coverage is the moment to validate your isolation model.

Failure modes to instrument.

  • Orphaned files. Rows deleted without file cleanup, or vice versa. Symptom: storage cost creeping upward against a flat record count. Mitigation: scheduled reconciliation job.
  • Storage credential or bucket policy drift. Symptom: uploads succeed in staging, 403 in production, often only on a subset of nodes. Mitigation: health check that writes and deletes a canary object.
  • Tenant scoping regression on upgrade. The highest-severity failure mode: one tenant's media visible to another. Symptom: cross-tenant 200s. Mitigation: an automated cross-tenant probe in CI, not just a manual staging test.
  • Filament major drift. Symptom: plugin loads but the media table renders empty or actions 500 after an unrelated Filament bump. Mitigation: the package's own test harness is your early warning — mirror a smoke test in your app.
  • Validation/upload limits. Symptom: silent rejections for large files once PHP/nginx limits and the package's own validation disagree. Mitigation: document the effective limit and surface it in UI copy.

Ramp-up. Low for a Laravel developer familiar with Filament: an afternoon to install, register the plugin, publish config, and get a working media table in a local panel. The non-obvious learning is the authorization and tenancy model — budget an additional day for a developer to read the policy and tenant-scoping code paths rather than infer them from behavior. For a developer new to Filament entirely, add a week: the plugin's concepts are Filament's concepts, and debugging without that foundation is slow.

Net TPM position. 1.3.0 is a low-risk, quality-positive release with one unresolved decision input — the dependency constraints. Resolve that single question, run the tenant probe in staging, pin the version, and adopt. The package is appropriate for internal and back-office media management; treat it as a candidate for hardening review, not a blocker, if it ever fronts customer-facing uploads.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle
adachsoft/api-version-bundle
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
cgv/localized-resource