The problem
Apple Photos treats every image as a treasured memory, but the iPhone camera is built to spray and pray.
Look over anyone's shoulder at their photo library and you'll see the same thing: little filmstrips of nearly identical shots. We all do it: shoot six or seven times because one will be a keeper; tell ourselves we'll delete the rest later; and then never actually go back and do it.
This is because the Camera app's design makes mashing the shutter button feel weightless, but the Photos app's design makes deleting feel heavy. The mismatched behaviors collide in a chore we didn't ask for, and leave us with a flotsam of unwanted photos.
Soon enough, we've accrued overwhelming backlogs of similar photos that clutter our expensive cloud storage and bury the real joy-sparkers.
I tried every photo app I could find, from pro workstations like Lightroom to Tinderlike triage apps like Slidebox or Picnic, but none of them felt like a solution. They all help, but they don't address the core mismatch between behavior and UX.
The idea
I wanted to build a photo gallery with an interaction model that actually matched the way we shoot. The design would anticipate bursts and handle them gracefully; it wouldn't make us feel like we were wasteful with the camera, like we didn't clean up after ourselves. Rather than molly-guarding delete, it would expect delete to be one of the most-used features. It would make sifting for keepers a lightweight, natural part of idly browsing our photos. It would gently shape our behavior to leave tidiness in its wake instead of clutter.
Getting it right
This project has been my interaction design playground, my first native app, and my first use of Swift. The goal is to learn, explore, and iterate until I'm satisfied with the craft and the design. So naturally, I've scrapped it and rebuilt from scratch half a dozen times.
Each version was a leap in engineering quality, choice of frameworks, performance, and design. I've iterated especially obsessively on the core interaction, searching for an inevitable-feeling mechanic for handling and tidying bursts.
Collaborating with AI
Part of this interaction was identifying the right bursts in the first place. For the first few versions of the app, I wrote my own little folk-art algorithms for finding similar images, but they were slow and didn't form very good groups.
As AI tools matured alongside the project, I began to use them to extend my reach as a designer into the field of clustering algorithms. I had no knowledge of this field, but in collaboration with Claude I could go deep.
Dozens of iterations later, we built a super-fast algorithm that forms great clusters via community detection on a visual & temporal similarity graph.
What I built
Smart clustering on the grid
Similar shots appear visually stacked, so your library shows distinct moments instead of repetitive filmstrips. Users get simple controls: cluster more, less, or turn it off. Photos can be grouped by day, week, month, or year, and clusters form within each section.
The carousel
In detail view, stacks of similar shots fan out in an arc for a "pick a card, any card" interaction that gently encourages narrowing the set.
Lightweight triage
Mark photos for deletion with one tap. The trash tab lets you empty everything with a single system confirmation.
Lightweight comparison
Side-taps navigate between similar shots with zero animation for instant A/B comparison. Zoom state is preserved between images, so you can compare faces or details across shots without a heavy "compare side by side" mode. And keyboard controls speed interaction for ultra-productive lightning rounds.
Cross-platform
Native on iPhone and Mac with cross-device sync. Same interaction model adapted to each platform's idioms: iOS gestures work naturally on a trackpad or magic mouse, and keyboard shortcuts make photo review on the Mac ultra productive.
Handmade app icon
A loving homage to the super-juicy icons of Mac OS X's golden era.
Why I built this
I built this to solve a problem that genuinely annoyed me, to learn Swift and the Apple platform as an engineer, and to ship the kind of high-production-value, high-craft, detail-obsessed software that inspired me to become a designer myself.
I think I'm almost there. After our most recent vacation, my wife and I used Shutterbug to sift through hundreds of trip photos in one sitting. For the first time I can recall, we actually shared our album with family within a day or two of getting home.
