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

Gallery Json Media Laravel Package

webplusm/gallery-json-media

A Filament 4 JSON media field for images and documents, with a fluent API and Blade components for Laravel front-ends. Manage galleries, add custom properties, and render photos or document links easily.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for admin media UX. A multi-image gallery with reordering, crop/thumbnails, alt text, per-file captions, and downloadable documents is roughly 1–2 sprints of custom Filament work. This MIT package delivers it as a drop-in form field (JsonMediaGallery), table column (JsonMediaColumn), infolist entry (JsonMediaEntry/JsonDocumentsEntry), and Blade-facing fluent API — a clear "buy" for scoped, single-model galleries.
  • Data-model decision: JSON column vs. relational media table. Adopting this commits the schema to images/documents JSON columns on the owning model. That is the right call for content pages, blog posts, product listings, portfolio items, and downloadable resource blocks where media is owned by one record — and the wrong call if you foresee cross-model reuse, deduplication, or media-level reporting.
  • Content-operations roadmap without engineering. Custom properties (title, alt, caption) are edited inside the admin panel via a schema you define once. Marketing/ops can enrich assets without schema migrations or tickets: a real lever for SEO alt-text coverage and accessibility compliance.
  • Feature scoping for CMS/landing pages. If the requirement is "each page can have a photo gallery plus a PDF/doc list," this covers ~80–90% out of the box. Scope the remaining 10–20% (art direction, CDN, private files) explicitly rather than assuming the package will grow into it.
  • Upgrade-risk planning. The maintainer tracks Filament v3 → v4 → v5 and Laravel 11 → 12 → 13, and v5.5.0 ships a gallery-json-media:regenerate maintenance command for thumbnails and stored image dimensions. That is a roadmap-relevant signal: it makes a future Filament upgrade a maintenance task, not a rewrite — provided you declare models in maintenance.models and budget a regeneration run.
  • UI quick wins at low cost. Grid display, avatar columns, reorderable uploads, size/type limits, and download links are admin polish you can ship in days, which is disproportionately valuable for internal stakeholder satisfaction per point of effort.

When to Consider This Package

Adopt when all of the following are true:

  • You are already on Filament v3/v4/v5 with Laravel 11–13, and the admin panel is the primary media touchpoint.
  • Media is owned by a single model — page galleries, post images, product photos, spec-sheet/PDF attachments — with no requirement to reuse one asset across records.
  • Public storage is sufficient. The README is explicit that visibility is public-only and S3 is not supported; private assets, signed URLs, or multi-bucket setups are out of scope.
  • You want per-asset metadata (alt, title, caption) editable by non-engineers, and reordering by drag-and-drop.
  • Your team accepts a convenience dependency with a small footprint and can pin a version and wrap it behind a domain-level media contract.

Look elsewhere when:

  • You need S3, private files, CDN, or signed URLs — use Spatie Media Library (or Filament's media-library plugin) instead; this package will not get you there.
  • You need a shared media library / DAM: global search across assets, deduplication, usage tracking, or reporting on media volume. JSON columns are not queryable the way a media table is.
  • You need enterprise support, an SLA, or a large contributor base. 19 stars and 0 dependents means effectively a single maintainer — treat bus factor as a real risk, not a footnote.
  • You need image processing beyond crop/fit/thumbnail — focal points, AVIF/WebP pipelines, responsive art direction, per-breakpoint sets. Spatie/image gets you cropping, not a transformation platform.
  • The admin surface is non-Filament, or media is managed primarily through an API/headless flow.
  • Strict relational integrity or heavy media-level querying is a product requirement (e.g., "list all products with more than 5 images"). JSON casts make this awkward.
  • You are pre-committing to a multi-tenant or high-volume asset platform where the storage layer is a strategic decision, not a form-field convenience.

How to Pitch It (Stakeholders)

To executives (one paragraph): This is a free, MIT-licensed add-on for our Filament admin panel that gives editors a proper media experience — multi-image galleries, drag-to-reorder, cropped thumbnails, alt text and captions, and downloadable document lists — in days rather than a sprint or two of custom development. It is a small, reversible commitment: it stores media references in an existing JSON column, requires no new infrastructure, and is already maintained across current Filament and Laravel versions. The trade-off is deliberate and bounded: it handles public, per-record galleries, not enterprise asset management.

To engineering (framing and guardrails): A drop-in Filament field/column/infolist/Blade set backed by spatie/image, with a HasMedia + InteractWithMedia convention on the model, an auto-delete hook for orphaned thumbnails, and a gallery-json-media:regenerate command for dimensions and thumbnails after an upgrade. Constraints to design around: public visibility only, no S3, JSON-column storage, and a single-maintainer upstream. Mitigations: pin the version, avoid leaking Media objects into domain logic, define our own media interface so a swap to Spatie Media Library remains a contained refactor, and keep the regeneration command in the release checklist.

Risk statement to put on the record: Low adoption (19 stars, 0 dependents) and single-maintainer concentration mean we should treat this as a convenience dependency, not a strategic one. The package is well-documented, tested, changelogged, and actively version-tracked, which lowers day-one risk; the exit cost is contained because the data model is plain JSON and the integration surface is a handful of Filament components. If upstream maintenance stalls, a fork or a migration to Spatie Media Library is a scoped, plannable piece of work — not a re-platforming.

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.
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log