optix/media
Optix Media is a Laravel package for managing uploads and media libraries, with image cropping, resizing, filters, and a clean API. It handles storage, validation, and conversions so you can add robust media management to any Laravel app quickly.
Adopt when:
Look elsewhere when:
spatie/laravel-medialibrary — far larger install base, maintained, extensive docs. For greenfield work, evaluate spatie first and treat this as an alternative only if its API genuinely fits better.What changed in v0.5.0: Laravel 8.0 support added; PHP 7.2 dropped (minimum now 7.3). No new features, no API changes called out, no deprecations. Treat it as a compatibility maintenance release that modestly improves the adoption story for Laravel 8 shops and does nothing for anyone on newer Laravel lines. The prior "validate compatibility before committing" caveat now has a concrete answer — it is Laravel ≤8, PHP ≥7.3 — so the spike shrinks to confirming your app actually sits inside that window and that no transitive dependency has already moved past it.
For executives: This is a free (MIT) Laravel package that provides model-attached media handling — uploads, thumbnails/conversions, multi-disk storage — out of the box. It can save roughly several engineering weeks versus building in-house and lets us ship media-dependent features (galleries, avatars, CMS assets) sooner. Since the last review it shipped v0.5.0, which adds Laravel 8 support and drops PHP 7.2 — a small but real sign the package is not fully dormant, and it removes one adoption blocker. The caveat to surface up front: Laravel 8 is the newest framework version it supports, which is several major releases behind current Laravel, and the project still has essentially no downstream dependents. Recommendation: adopt only if we are on Laravel 8 or earlier, and only for a non-critical media feature — then keep the integration behind our own abstraction so we can swap to spatie/laravel-medialibrary or in-house without rewriting product code. If we are on Laravel 9+, this is a no-go and spatie is the default.
For engineering: Familiar Laravel idioms and a spatie-like API keep onboarding cheap. v0.5.0 is a compatibility-only bump: Laravel 8 ceiling, PHP 7.3 floor, no API surface change — so an existing integration is low-risk to upgrade, but a PHP 7.2 runtime or CI image must move first. Treat it as a vendored dependency with abandonment risk: pin versions, wrap usage behind an internal media service or trait, and add tests around storage and conversion paths so a future migration is a swap rather than a rewrite. One release does not establish a maintenance cadence — re-evaluate if a Laravel 9/10+ release appears, and deprioritize if the next review window passes with silence.
How can I help you explore Laravel packages today?