novactive/ezenhancedimageassetbundle
An eZPlatform/Ibexa bundle adding an enhanced image field type with focus point selection, default image configuration for file size optimization, lazy and progressive loading, retina and WebP variations, and Twig render field parameters.
enhancedimage field extends ezimage and lets editors set a focus point per image; variations are then cropped around the subject. This is a product decision about who owns cropping — editors instead of template hard-coding — and it directly reduces "the hero image is cutting off her head" tickets across breakpoints and content types.image_default_post_processors (pngquant, jpegoptim, progressive JPEG) and image_default_config let you set quality/compression policy at platform level rather than per template. Lazy loading is a global default (enable_lazy_load) overridable per field. This turns "we should improve LCP" into a config change with a measurable before/after, not a frontend refactor.alternativeAlias with media queries lets you declare mobile vs desktop assets in Twig parameters instead of bespoke conditional templates. That's a decision about how much art direction you support, made declaratively.enable_retina and automatic _retina suffix resolution plus auto-generated WebP alternates are single toggles — you can ship WebP/retina as a phased rollout and A/B the impact on bytes and LCP, rather than committing to it wholesale.enhancedimage subclasses ezimage, migration is a data_type_string column update, with a bundled ezenhancedimageasset:convert:field_to_imageasset command for image/relation → image asset conversion. This supports a per-content-type, incremental adoption decision instead of a re-platform or a DAM integration project — a big de-risking point for roadmap planning.Consider it when:
Look elsewhere when:
Novactive/Nova-eZPlatform-Bundles. Bus factor is effectively one organization.data_type_string DB mutation in a maintenance window. The documented migration is raw SQL against ezcontentclass_attribute and ezcontentobject_attribute — effective and irreversible-ish. If that's not operationally acceptable, don't start.convert:field_to_imageasset command against your data model before committing.Adoption posture I'd recommend: treat this as "adopt with a fork" — pin a version, fork into your VCS, run your own regression on alias generation, and assign a named owner for upgrades. Do a spike on one content type first.
Executive summary (30 seconds). We have a well-understood gap in how our CMS handles images: editors can't control what gets cropped, and we serve oversized, uncompressed, non-WebP files. This is a free, MIT-licensed bundle from an established Ibexa agency that closes that gap — focus-point cropping, WebP and retina variants, lazy loading, and compression defaults — without a re-platform and without a paid CDN or DAM contract. The cost is one integration sprint plus validation, against roughly 4–8 engineer-weeks to build it ourselves.
To engineering. It's a field-type extension: enhancedimage extends ezimage, so the data-model change is one column value per field, with documented SQL for both the class attribute and existing content. Rendering is via ibexa_render_field with alias / alternativeAlias / lazyLoad / retina parameters; configuration is siteaccess-aware YAML; integration is a bundle registration plus two Encore entries (enhancedimage-css, enhancedimage-js). What we own: the fork, the alias-generation regression suite, the migration rehearsal on a production-shaped dump, and the upgrade path across Ibexa majors.
To finance/procurement. No license fee, no per-transformation or per-GB metering that a CDN contract would introduce. Budget instead for internal ownership — roughly a few days per quarter for upgrades and triage — and note the concentration risk: one maintainer organization, minimal community adoption. That risk is mitigated by the MIT license and the fork strategy, not by a contract.
Success metrics to commit to up front. Editorial "wrong crop" tickets trending down; average image bytes and LCP on top landing pages improving after the WebP/lazy rollout; reduction in ad-hoc Twig image helpers and one-off alias definitions; and a clean, rehearsed migration with zero content-type rollbacks.
How can I help you explore Laravel packages today?