MediaHub update....
TL;DR:
MediaHub fields can now detect and import images used on the same page.
A per-field import button scans other image fields on the same page and intelligently matches against the MediaHub library.
It includes deduplication, perceptual hashing, and confidence badges.
This saves significant manual effort when transitioning from standard image fields to MediaHub fields — i.e., you can run both in tandem while evaluating, or until you're ready to switch.
I made the jump from building MediaHub to implementing it on a real client site. I ran into issues, and those pain points led to new features. It's a different experience switching from testing with Instagram images to deploying on a 15+-year-old client ProcessWire site — a significant commercial site that can't afford downtime. It features blog posts, staff photos, services, and the usual content you'd expect on a professional services site. Having more on the line meant I approached it with greater scrutiny, taking things slowly — up to a point.
My approach:
Add a MediaHub field on every page beneath the existing images field.
Import each image individually (tedious, but reassuring).
Add a script that outputs the MediaHub image first, falling back to a standard image if the MH API had issues.
Apply data-type=mediahub to the HTML so I could quickly identify which images had yet to be ported.
Step 2 became tedious once I'd confirmed the core functionality was solid.
I already have a global import function that scans a site and imports existing images. But I wanted something different for this workflow. If I were an agency porting an entire site, what would be the most useful feature? How would I migrate one page at a time and confirm it was working, rather than relying on the global import? The answer was a localised import button on the MediaHub field itself.
Pressing the import button scans existing image fields on the same page and opens a modal containing a list of images available to add to both MediaHub and the MediaHub field. It doesn't yet support Matrix pages, though it works correctly within a Matrix field. The modal assesses whether each asset already exists in MediaHub. Avoiding duplicate images is a core principle of MediaHub, so getting this right mattered.
It handles most cases correctly. The one gap: images with different crops are treated as separate images — technically accurate, but better crop detection would be more useful in practice. That's next on the list.