In between family trips and summer camps, I’ve been continuing to make rapid progress on Gumnut. In July, I launched several big improvements, as well as a slew of minor ones:
Map view
The Gumnut app now has a map view with a heatmap overlay for visualizing where you take photos.

Map view in Gummut
You can visualize your entire library, a single album, photos with a specific set of people, photos within a date range, or all of the above at the same time.
The entire visualization is backed by Gumnut’s new geo-clustering APIs as well as new bounding box and radius-based search filters, so users can build their own visualizations on their Gumnut photo library.
Individual photos also gain an interactive map view in their info panel:

Stacks and bursts
Photos taken by the same device, within seconds of each other, now get stacked in Gumnut:

Stacks displayed in Gumnut’s timeline view
Gumnut stacks bursts of photos automatically, but users can create their own stacks, add and remove photos from stacks, and set their preferred stack cover. As with all Gumnut functionality, endpoints to access and manage stacks are available via the API and MCP.
Search
Search got an overhaul in July. It now fuses dense and sparse retrieval and reranks the top candidates with a cross-encoder, backed by new full-text indexes over photo metadata. Basically what this means is that you can now more accurately search for photos by content (e.g. “sunset” or “beach”), people, date, album names, and photo metadata like camera and location.
Naturally, this capability extends to AI agents as well:

Lots more
To see what else I’ve added recently, take a look at Gumnut’s documentation, where I’ve started publishing a monthly change log.
And of course, I’d love your feedback. Sign up for Gumnut here and let me know what you think!

