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

Media Laravel Package

noerd/media

A Laravel media management package for uploading, storing, and associating files with Eloquent models. It offers media collections, image conversions, and a fluent API for attaching, retrieving, and organizing media.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs buy for media management. A Laravel-native media library with a Media model, a media folder table, and folder-tree organization removes a chunk of undifferentiated plumbing (uploads, storage wiring, folder hierarchy, file metadata) from your roadmap. That's time your team spends on differentiating features instead.
  • Deployment reliability decisions. Two consecutive patch releases (v0.7.1, v0.7.3) have been install/upgrade-path fixes rather than feature work. v0.7.1 deferred app-folder creation until the media folder table was migrated; v0.7.3 restores a migration that relocates generated media directories and rewrites stored paths. Read together: this package's risk surface is operational, not functional. Budget for deploy hygiene, not for missing features.
  • Upgrade-path risk is now the headline finding. v0.7.3 exists because installs that jumped from before v0.6.6 straight to v0.7 kept serving thumbnails from .thumbnails — a dot-prefixed directory that stock Forge nginx blocks, producing 403s on images. In PM terms: skipping intermediate versions silently broke a user-visible feature (images not loading) with no error at deploy time. If your release policy allows jumping versions, this package punishes it.
  • Data-migration scope — plan a maintenance step, not a composer update. The restored migration doesn't just create directories; it moves .thumbnails/.variants to _thumbnails/_variants and rewrites stored paths in the database. That means schema/data writes against production content. It is documented as idempotent and a no-op on fresh installs — so the blast radius is contained to estates that predate v0.6.6 — but it still warrants a backup, a staging rehearsal, and a post-deploy check that media URLs resolve.
  • Hidden-directory convention as a product constraint. The root cause was storing generated assets in a dot-directory. If your infrastructure serves media through nginx/Apache defaults, dot-prefixed paths are a latent 403. Useful general lesson for any storage decision on the roadmap: never place user-served assets in hidden paths.
  • Scope clarity on AI features. The removal of aiDocument in v0.7.1 stands: AI/document handling is not part of the core media surface. If AI-driven tagging or document intelligence is on your roadmap, treat it as a separate build decision.
  • Upgrade-cost budgeting. Patch-level and non-breaking in intent — a restored migration, no API changes signalled. Low direct risk, but a third install-path correction in the 0.7.x line confirms the package is still pre-1.0 and iterating. Plan upgrade time into the roadmap rather than assuming zero-touch.
  • Use cases this fits: CMS/admin media libraries, model-attached asset management, marketing asset organization, multi-tenant file storage where folder-level structure matters more than a flat uploads table.

When to Consider This Package

Adopt when:

  • You're on Laravel and need media/file management with folder organization, not just a single upload column.
  • You want to avoid maintaining custom upload + folder-hierarchy code.
  • Your deployment pipeline runs migrations in order against both fresh and existing databases — the exact scenario v0.7.1 and v0.7.3 harden.
  • You pin a version, upgrade incrementally rather than leaping minor versions, and can absorb pre-1.0 install-path churn on a scheduled cadence.
  • Your media sits behind a web server you control and can validate directory conventions against.
  • You're comfortable reading vendor source when behavior is undocumented.

Look elsewhere or proceed carefully when:

  • You need a stable API contract with long-term support guarantees; pre-1.0 means breaking changes remain plausible.
  • Your upgrade policy is "bump to latest and ship" — v0.7.3 is direct evidence that skipping versions can break served media silently.
  • You can't run a data-rewriting migration against production content (no backup window, no staging parity, immutable media records).
  • Your requirements center on image transformation pipelines, CDN/DAM workflows, or AI-driven tagging — the aiDocument removal suggests that's out of scope.
  • You need vendor SLAs or formal commercial support.

Caveat: This assessment is based on the v0.7.1 and v0.7.3 release notes only. Validate against the README, test coverage, issue tracker, and release cadence before committing — the pattern of install-path corrections is a yellow flag worth confirming against the issue tracker.

How to Pitch It (Stakeholders)

To executives: "We can buy a media management layer instead of building one. It's an actively maintained Laravel package, and the last two patches have both been deployment-path fixes — a responsive maintainer, and evidence they're hardening the upgrade story rather than adding scope. The trade-off is maturity: it's pre-1.0, upgrades occasionally require a deliberate migration step rather than a one-line version bump, and the latest patch fixes a case where skipped versions left images returning errors in production. Low cost to trial, easy to contain in one module, and we should budget a small, scheduled maintenance allowance per upgrade rather than expecting zero-touch."

To engineering: "v0.7.3 restores migration 2026_10_01_000001_move_generated_media_directories, which relocates .thumbnails/.variants to _thumbnails/_variants and rewrites stored paths. It matters if you're coming from anything before v0.6.6 — those installs served thumbnails out of a dot-directory that stock Forge nginx 403s. It's idempotent and a no-op on fresh installs. Before merging: back up the media table, rehearse on a staging copy of production data, confirm no code or config references the old .thumbnails/.variants paths, and verify media URLs resolve after the run. Upgrade incrementally rather than leaping minor versions, and keep the version pinned with upgrades on a calendar. Treat it as a candidate dependency for the media/uploads module, pending a short source review of test coverage and release cadence."

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console