gheith3/filament-file-view-entry
A Filament package that adds a file view entry for displaying uploaded files in infolists, with preview and download support for images, PDFs, and documents in Laravel admin panels.
FileViewEntry) covering image/video/audio/PDF/text preview, grid layout, disk/temporary URL handling, and dark mode. A PM can weigh ~1 sprint of engineering (plus ongoing maintenance) against adopting this package, which lowers build cost for a low-differentiation feature.titleKey/pathKey/dateKey and support for arrays, Collections, and Eloquent relationships means one decision covers many existing data shapes without schema rework—reducing migration cost.Consider adopting when:
url() fallback.Look elsewhere when:
For executives (30 seconds):
We can close a visible gap in our admin experience—file attachments currently show as raw links or nothing—with a small, MIT-licensed Filament component that renders icons by file type, in-modal previews, and downloads. It's a low-cost, reversible win with no licensing spend. The trade-off is maturity: it's a young, single-maintainer package with minimal adoption, so we'd vendor the code and own it rather than depend on upstream support. Recommendation: pilot it in one panel, expect roughly a sprint of integration and hardening, and keep the fallback of building it ourselves if the pilot surfaces gaps.
For engineering:
gheith3/filament-file-view-entryprovides aFileViewEntryinfolist component withgrid(),titleKey(),pathKey(),dateKey(),disk(),showPreview(),downloadable(),showAsLink(), andpreviewHeight(). It handles single paths, arrays, and Collections, usesStorage::disk()->temporaryUrl()(5-min expiry) with aurl()fallback, and ships a publishable Blade view for styling. Constraints: Filament ^4|^5, Laravel ^11|^12, PHP ^8.2–8.4, Alpine.js via Filament. Plan to fork/vendor, add tests around our data shapes, verify disk/URL policy and expiry against our page session lengths, and audit the preview modal for CSP and file-type safety before rollout. Treat the README/AGENTS docs as the contract and pin the version.
How can I help you explore Laravel packages today?