innopanda/laravel-asset-manager
A Livewire and Spatie Media Library asset manager for Laravel with a virtual folder tree, reusable picker modal, thumbnails, multi-select, file replacement, version history, and optional Filament form integration.
Package: innopanda/laravel-asset-manager — v1.0.9 (patch release)
Architecture fit: The package is a self-contained Laravel media/asset layer with two integration surfaces: a Filament form component (AssetPicker) and a Livewire component (MediaBrowser). v1.0.9 deepens the coupling between these two surfaces by making selection state a shared, persisted concern rather than a one-shot hand-off. Architecturally this is a reasonable pattern for Filament/Livewire apps (server-driven state, no bespoke JS store), but it means the asset manager now owns transient UI state across component boundaries — a responsibility that historically caused defect classes in this package (the bug being fixed is exactly a state-maintenance failure).
Integration feasibility: Low-to-moderate. Upgrade is a composer update with no documented schema, config, or migration changes, and single-asset behavior is explicitly preserved. The feature is additive from the consumer's perspective.
Technical risk:
^1.0 will absorb behavior changes without a deliberate decision. This is a governance red flag worth raising with the maintainer.AssetPicker view overrides or bespoke media browser extensions in our codebase are at risk of silently breaking.innopanda/* is a small vendor; bus factor and release cadence are unknowns.Key questions:
Stack fit: Assumes Laravel with Livewire and Filament already present, plus a configured filesystem disk for media storage. It is a UI-layer package — no queue, scheduler, or database migration footprint disclosed in this release, which keeps the blast radius small.
Migration path:
1.0.9) rather than floating ^1.0 until the multi-select flow is validated.composer update innopanda/laravel-asset-manager, then php artisan view:clear and php artisan config:clear — required because the fix spans Livewire component views and dispatch wiring, and stale compiled views are a plausible failure mode.vendor/innopanda/laravel-asset-manager/config against our published copy.Compatibility: Verify Filament and Livewire versions against the package's composer.json constraints before upgrading, not after. Confirm single-select forms still behave identically — this is the explicit backward-compatibility claim and the cheapest thing to regression-test.
Sequencing:
AssetPicker usage in the app: single-select forms (regression), then any multi-select forms.Rollback: Composer-lock revert is sufficient if no database or storage state is written by the multi-select flow. Confirm persistence is confined to Livewire/session state; if asset metadata is mutated, rollback is no longer a one-line operation.
Maintenance: Low ongoing effort — the package is consumed, not forked. The real maintenance cost is the upgrade review burden created by loose SemVer. Recommend a standing policy: read release notes for every innopanda bump and pin versions explicitly, rather than allowing automated dependency updates to pull patch releases unattended.
Support: No stated LTS, support window, or security disclosure process. Escalation path is upstream GitHub issues with unknown response times. For a UI component this is tolerable; it becomes material if the asset manager is on a critical authoring path for content teams.
Scaling:
Failure modes to monitor:
Ramp-up: A developer familiar with Filament and Livewire can integrate this in under a day; the concepts (form component + modal browser + dispatched events) are idiomatic. The friction is documentation, not complexity — the event contract and payload shape are undocumented, so expect new team members to learn the integration by reading vendor source. Budget half a day of source-reading for the first engineer, and capture findings in an internal note so the second engineer doesn't repeat it.
Recommendation: Adopt v1.0.9 with an exact version pin, gated on the staging validation above, and specifically verify (a) single-select regression, (b) payload shape for downstream consumers, and (c) production log behavior. Flag the SemVer practice to the maintainer; it is the item most likely to cause an unplanned incident during a routine dependency refresh.
How can I help you explore Laravel packages today?