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 Bundle Laravel Package

jolicode/media-bundle

JoliCode MediaBundle is a Symfony bundle for handling images, videos, and audio. It offers a provider system, on-the-fly filters like resize and crop, responsive image helpers, and local or cloud storage integration, making media consistent and easy to reuse across your application.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for media handling. The recurring "we need uploads, thumbnails, crops, and a media library" backlog item is a well-trodden problem. This package is a candidate to buy (MIT, zero license cost) rather than build, specifically for Symfony-based surfaces — admin back-offices, CMS-style content tools, e-commerce admin, and internal dashboards. v0.10.0 adds two capabilities that materially strengthen the buy case: S3-backed storage (now covered by integration tests) and temporary/signed URLs.
  • Admin/back-office feature scope. Because it ships EasyAdmin, SonataAdmin, and Sylius integrations, it directly informs scope decisions on "let marketing/ops manage images themselves" and "let merchandisers attach product imagery" — features that otherwise consume a sprint or two of custom form types, storage wiring, and variation logic.
  • Private/entitlement-gated media delivery. The new temporary-URL feature is a product decision enabler, not just plumbing: gated content, paid downloads, and time-limited previews become a config change rather than a bespoke signed-URL implementation.
  • Ecosystem routing decision. The most important PM call here is which stack owns the feature. This is a Symfony bundle, not a Laravel package — it is not a drop-in for a Laravel codebase. It only enters the roadmap if we run (or plan) Symfony services alongside Laravel, e.g. a Symfony admin app fronting a Laravel API, or an acquired/legacy PHP service.
  • Roadmap de-risking. At v0.10.x it is still pre-1.0 and small-community (a few hundred GitHub stars, negligible dependents). Adopting it means close to first-production-user status. That argues for timeboxing it behind a spike rather than committing it to a public roadmap with a delivery date — the 0.9 → 0.10 release replaced the uploader component, which is exactly the kind of change a 1.0 promise would have protected us from.
  • Use cases worth evaluating: editorial image management with derived sizes, private media with expiring URLs, S3/object-storage-backed libraries, multi-admin-panel consistency (EasyAdmin + SonataAdmin + Sylius in the same org), and replacing ad-hoc upload() + manual resize code that accumulates in admin controllers.

When to Consider This Package

Adopt-worthy when all of the following hold:

  • The service in question is Symfony, and we are on a supported Symfony version (verify against the bundle's composer.json before anything else).
  • We need media management as a first-class concern — a media entity, storage abstraction, and image variations — not just a single file-upload field.
  • We are using EasyAdmin, SonataAdmin, or Sylius; the admin integrations are the bundle's main differentiator over assembling the pieces ourselves from Flysystem + a thumbnailer.
  • We need object storage (S3-compatible) or signed/temporary URLs — v0.10.0 now covers both, with S3 exercised by integration tests.
  • The team accepts MIT-licensed, small-community, pre-1.0 code and is willing to read the source, pin exact versions, and own the fork risk. Budget for churn: minor releases can replace bundled UI components.
  • We can absorb a 2–5 day spike: install, wire storage, render a variation, exercise a temporary URL, and confirm the admin UX matches what stakeholders expect.

Look elsewhere when:

  • The target application is Laravel — this is the wrong ecosystem. Evaluate Laravel-native media libraries (e.g. Spatie Media Library) instead; forcing a Symfony bundle across is not a real option.
  • We need a rich, DAM-grade media library (asset search, tagging at scale, rights management, CDN integrations, AI tagging) — this is a developer-facing bundle, not a digital asset management product.
  • Community support or API stability is a hard requirement. Pre-1.0 with no dependency base means no Stack Overflow corpus, no third-party tutorials, no SemVer guarantee, and no vendor SLA. If the team cannot debug PHP/Symfony internals, this is a liability.
  • We are on a tight deadline with no spike budget. First-adopter cost is real and should be priced into the estimate.
  • Licensing or procurement needs a commercial support contract — MIT gives us the code, not a phone number.

Verify before recommending: Symfony version support in the current composer.json, and that the release bumps are acceptable — note that imagine/imagine is now a required dependency and the bundled Dropzone uploader was replaced, so any custom front-end work built on the old uploader must be re-assessed.

How to Pitch It (Stakeholders)

To executives: This is a free, MIT-licensed component that lets our Symfony admin panels manage images — uploads, resizing, thumbnails, expiring links — without us building and maintaining that plumbing. The financial case is simple: it removes roughly a sprint or two of custom work per admin surface. The latest release (v0.10.0) adds S3 storage coverage and time-limited URLs, and includes a dependency security fix, which is a positive maintenance signal. The risk case is unchanged in kind: it is pre-1.0 and small-community, so we should treat it as a timeboxed evaluation, not a platform commitment. Recommended decision: approve a short technical spike, not a roadmap line item.

To engineering: This is a Symfony bundle — not applicable to our Laravel services — and its value is concentrated in the EasyAdmin/SonataAdmin/Sylius integrations plus a media entity and image-variation layer. v0.10.0 is a meaningful release: an internal uploader now replaces Dropzone (so existing custom front-end integrations need review), imagine/imagine is a required dependency rather than optional, an EXIF-orientation bug is fixed, S3 storage now has integration tests, and signed temporary URLs landed. Security hygiene looks reasonable (a transitive fast-uri advisory was bumped). It is still 0.x, so pin exact versions and isolate it behind our own media service interface so we can swap the implementation (Flysystem + a thumbnailer, or a fork) without touching product code. Success criteria for the spike: one admin surface managing real media end-to-end, including an S3-backed upload and an expiring URL, with a clear read on upgrade path and Symfony version support.

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.
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
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource
noith/settings