dejwcake/craftable-media
Media library and file management for the Craftable admin panel: upload, browse, organize, and attach images and files to your Eloquent models with a ready-made admin UI, keeping media handling consistent across your Laravel application.
dejwcake/craftable-media is a fork of brackets/media sitting on top of spatie/laravel-medialibrary. So: (1) adopt the commodity base — yes, near-certain; (2) adopt this wrapper — only if we are standardising admin UX on Craftable. If we're not on Craftable, the correct call is the upstream library, and this package drops out of the evaluation entirely.Adopt when:
Look elsewhere when:
spatie/laravel-medialibrary directly — same underlying capability, vastly larger community, and a documented breaking-change surface we can diff against. This is the likely outcome of most evaluations.For executives — one paragraph: Media attachments are solved infrastructure, not differentiated product. We can ship galleries, document attachments, and gated file downloads in a feature sprint by adopting a Laravel package instead of building upload, storage, thumbnailing, and cleanup ourselves — roughly half a day of integration for a first model, plus a queue worker for image processing, versus a multi-sprint in-house build we would then own forever. The specific package in front of us, craftable-media, is a thin wrapper in the Craftable admin ecosystem built on the widely used spatie/laravel-medialibrary. That splits the decision cleanly: take the commodity base, and take this wrapper only if we standardise our admin on Craftable. Two caveats stated up front and honestly: it requires PHP 8.5 / Laravel 13, so it is gated on our platform version; and it is a single-maintainer, zero-star package, so we should assume support is ours and keep a fallback. Ask: approve a one-model pilot behind a flag — not a platform commitment. Defer broad rollout until the pilot validates our storage and queue story.
For engineering — the practical read: Integration is composer install, publish and review migrations, attach a trait to one model, configure one disk, verify upload → retrieve → URL end-to-end, then enable one conversion on the queue. No infrastructure prerequisite beyond a storage target and a worker. The recent 2.0.1 release is maintenance-only and upgrade-safe, and the multi-database CI (PostgreSQL and MariaDB) is a genuine positive signal for teams not on MySQL. The risks to manage are environmental rather than version-related: disk permissions and driver credentials (which fail as broken image URLs, not exceptions), conversion failures that leave records pending with no alert, orphaned files accumulating over time, and container resolution outside a fully bootstrapped app. Mitigate all of them with one thing — an end-to-end smoke check in CI that uploads, converts, and fetches against the real storage driver — plus a periodic reconciliation job budgeted early, and a CDN in front of generated URLs so the app isn't in the delivery path.
How can I help you explore Laravel packages today?