van-ons/filament-attachment-library
Filament package for easy attachment uploading and browsing. Install via Composer, run the install command to set up migrations and assets, then extend your custom Filament theme's Tailwind config to render the templates correctly.
attachmentCollection() — cover a meaningful slice of "image quality on the storefront/CMS" work without bespoke implementation. Focal point in particular removes a common backlog item (hero/card cropping looks wrong).HasAttachments trait with named collections (gallery, product_gallery). That is a decision with downstream consequences for content reuse, migrations, and reporting — worth making explicitly rather than letting it default.Consider it when:
make:filament-theme), add an @source line pointing at the vendor path, and register the theme (with a Vite-specific variant). That's real, recurring build coupling: forget the @source line or rebuild the theme after an upgrade and you get unstyled UI.ATTACHMENTS_DISK). The docs explicitly advise a disk with no other files — a clean but non-negotiable operational constraint.Look elsewhere / delay when:
To executives: This is a free, MIT-licensed Filament add-on that gives our admin panel turnkey file and image handling — upload, browse, reuse across records, image resizing, and focal-point cropping — for roughly the cost of an install command instead of a sprint of engineering. It removes a category of "we need a media manager" work from the roadmap and lets us spend that capacity on customer-facing features. The trade-off is concentration risk: it's a small, single-vendor open-source project with a modest user base, so we should treat it as a leveraged dependency rather than a foundation, and budget a modest maintenance allowance.
To engineering: Install via Composer (^2.0), run the install command for migrations/assets, and treat the custom Tailwind theme as a first-class build artifact — @source the vendor Blade path, register the theme (or ->viteTheme(...) under Vite), and add a rebuild step to the upgrade checklist. Point ATTACHMENTS_DISK at a dedicated disk. Choose deliberately between column storage and the HasAttachments relationship plus named collections, and add convenience relation methods (attachmentCollection('gallery')) so collection filtering stays readable. Track the Filament compatibility matrix when planning upgrades, and note that the JS bundle republishes via Filament's filament:upgrade hook — apps without it must run filament:assets manually, which is a silent-breakage vector. Pin the version, read the changelog on each bump, and wrap the field in our own thin form component so a future swap stays contained.
How can I help you explore Laravel packages today?