mezcalito/imgproxy-bundle
A Symfony bundle for integrating imgproxy into your application. Configure endpoints and URL signing, then generate optimized, resizable image URLs for templates and services without embedding image-processing logic in your app.
srcset, AVIF/WebP negotiation, focal-point cropping, social/OG image variants, and thumbnail grids for UGC are all cheap to ship once signed-URL generation exists. 0.5.3 adds a watermark option, which pulls a further item into the "cheap" bucket: brand-marking or protecting user-uploaded and marketing imagery no longer requires a separate compositing step in PHP or a design-team export process. Conversely, if this package is not in place, those features tend to get scoped as "image pipeline project" and slip.Caveat to raise before anything else: this is a Symfony bundle, not a Laravel package. If the roadmap sits on Laravel, the equivalent decision is "write ~50 lines of HMAC signing + a Blade helper, or use a generic imgproxy PHP SDK" — do not plan around this repo.
Adopt when:
Look elsewhere when:
Due diligence checklist (one afternoon): pinned Symfony/PHP version constraints; whether the signing algorithm matches your imgproxy version's key/salt scheme; test coverage; open-issue responsiveness; whether processing options are typed or string-passthrough (the new watermark option is the current test case — check whether it was added as a typed builder method or raw passthrough); and whether the README documents the security model (keep the salt server-side, never expose unsigned URLs). Additionally for 0.5.3: confirm the watermark feature assumes imgproxy's own watermark support (font file present in the imgproxy container, minimum imgproxy version), that it composes correctly with resize/fit options, and that it isn't limited to a single hardcoded position/opacity. If any of that is missing, the watermark gap is yours to close.
To executives: "We're deciding how the product serves images — avatars, product photos, thumbnails, social previews. Two paths: pay a SaaS per transformation, or run an open-source image server on our own infrastructure. This library is the small, MIT-licensed connector that makes the self-hosted path cheap to try. It is roughly a hundred lines of URL signing and templating — it does not add a vendor, a contract, or a migration. The latest release also covers watermarking, so branding and UGC-protection requirements can ride the same pipeline instead of becoming a separate project. Recommendation: spend a day validating it in a spike; it materially reduces the cost of the self-host option and unblocks responsive images, modern formats, and asset branding on the roadmap."
To engineering: "Thin Symfony bundle around imgproxy: config for endpoint/key/salt, a service that builds signed transformation URLs, and Twig/controller helpers. 0.5.3 adds watermark support as a processing option. It replaces bespoke signing code we'd otherwise own, and it keeps image processing out of PHP-FPM. It is not a media library and not a filter engine — LiipImagineBundle is the alternative if we want transformations in-process. Risks: low community adoption, so budget a code review and assume we may fork; and it is Symfony-only, so it's a non-starter if any service in scope is Laravel. Success criteria for the spike: signed URL generated from a Twig template, served through the CDN, AVIF/WebP negotiation verified, a watermarked variant rendered end-to-end (including confirming the font is baked into the imgproxy image), and a documented local-dev fallback."
How can I help you explore Laravel packages today?