Case study · Best Photo Picker
Arkalogy took a common problem, thousands of family photos and no way to find the best of one person, to a free app that solves it on your own computer: product, design, architecture and a signed Mac release. Nothing is uploaded.
Free, MIT-licensed, no account. The first analysis asks, then downloads about 660 MB of on-device models once. Product site: arkalogy.github.io/best-photo-picker.
Photo apps are built to keep everything. This one is built to hand you the few shots that matter.
The problem
The grandparents want the best of the year. So does the photo book, and the holiday card. The photos are all there, buried among blinks, blurry frames and twelve near-identical burst shots of the same moment.
Apple Photos and Google Photos store all of it, tidy up duplicates and pick photos for their Memories, but neither lets you ask for an exact number of the best photos of one person, ranked across the whole library. Lightroom's culling tools are built for photographers working through a shoot, on a subscription. And Google Photos does its face matching in Google's cloud.
Storing the photos is solved. Finding the real best fifty, without handing the library to anyone, is not.
Best Photo Picker is built for exactly that: thousands of photos of the people you love, and a short list of keepers, on your own computer.
The approach
Your photos never leave your computer.
That ruled out the easy path: no cloud GPUs, no server-side face matching, no account. Everything else followed from it, from how the app installs to how it earns trust with a family library. Each decision below came with a cost, and the cost was accepted on purpose.
All scoring, face recognition and search run on the user’s computer, and the few network calls are listed in the README.
Trade-off: a first analysis takes an hour or more per 6,000 photos, and about 660 MB of models download once.
The app ships no restricted model files. Each one downloads after a prompt that names it, its size and source, and is checked against a pinned SHA-256; research-only models need their own agreement.
Trade-off: extra clicks on first run, and some features stay off until the user opts in.
A signed, notarized Mac app wraps the same local interface, so most people never open a terminal. A full command line stays for power users and servers.
Trade-off: the app build is Apple Silicon only for now; other computers install it with Python.
It picks the best photos of the people you choose. It is not a photo manager or a sync service, and it copies photos into its own library so the originals are never touched.
Trade-off: the library needs as much free space as the photos imported into it.
bpp demo opens the full app on generated sample images, so anyone can judge the picks before pointing it at their own photos.
Trade-off: the demo needs a Python install; the Mac app opens straight onto your own photos.
The load-bearing choices live in architecture decision records and a model-license policy. AI-assisted engineering under Arkalogy’s product direction: scope, priorities and every architectural decision were owned and approved deliberately.
Outcome
The product, in three steps
Pick any folder of phone exports, iPhone HEIC or camera RAW. It copies them into its own library, leaves your originals alone, and scores every photo offline.
It recognizes faces and gathers each person’s photos in one place. Name the people you care about, or a group like “Family”, and the picks favor them.
Ask for any number, 10 or 500, from the whole library or any album. You get the best of them, with near-duplicates and burst shots left out.






The product
Beyond the three steps: near-duplicate and burst folding, picks spread across the year, a non-destructive editor, search by describing a photo, smart albums for each person, group and year, export for a photo book, and browsing from any screen at home over Wi-Fi.
The gap
Apple Photos and Google Photos keep everything, group duplicates and pick photos for Memories. Neither lets you ask for an exact number of the best photos of one person, ranked across the whole library, and Google Photos does its face grouping on Google's servers.
Lightroom now culls with AI, but it is built for photographers working through a shoot, needs an Adobe account and a subscription, and can't favor a person. Aftershoot, Narrative Select and Excire are excellent paid tools for culling a shoot, built for working photographers rather than years of family photos. digiKam is free and open source, with duplicate finding and a basic quality scan, but it is an expert's tool and can't favor a person either. Immich is a great self-hosted library with face recognition and search, but it stores and browses rather than ranking a best-N set.
Going from thousands of family photos to a final set, on your own computer, weighted toward the people who matter, free and with no account: that is the gap, and it is why this exists.
| Feature | Best Photo Picker | Apple Photos | Google Photos | Lightroom Classic | digiKam |
|---|---|---|---|---|---|
| Runs locally, fully offline | ✓ | ✓ | ✗ | mostly | ✓ |
| Ranks the whole library into a best-N set | ✓ | limited | limited | AI culling | basic |
| Leans the picks toward a named person | ✓ | limited | limited | ✗ | ✗ |
| Near-duplicate grouping | ✓ | ✓ | ✓ | ✓ | ✓ |
| Free and open source | ✓ MIT | ✗ | ✗ | ✗ | ✓ GPL |
| No account, no subscription | ✓ | ✓ built into macOS | ✗ | ✗ | ✓ |
As of October 2026, for each tool's mainstream desktop or consumer version. Features and terms change; check current details.
Many photo services copy your whole library to their servers to process it. Best Photo Picker does all of the work on your computer, so nothing is sent away to be analyzed, scanned, mined for data or used to train AI.
Get it
The app, signed and notarized by Apple. Open the download, drag it into Applications, and open it. Updates keep your library as it is.
Download for Mac →Opens the full app on a small set of generated sample images, none of your own. Needs Python 3.11.
pipx install --python 3.11 "bppicker[web]" && bpp demo
Install it with Python 3.11 (HEIC and camera RAW support included), then run bpp serve to open it in your browser. Tested on Linux; Windows should work but hasn't been tested end to end.
pipx install --python 3.11 "bppicker[web,heic,raw]"
It is built to be extended, and contributions are welcome. Open an issue for a bug or an idea, or send a pull request. Windows support, a new model or a new smart album all make good first contributions.
On your own computer, with nothing uploaded. Free, and open source under MIT.
Product site · Source on GitHub
Screenshots and demo use stock photos from Pexels and generated test images.
Other product names are trademarks of their respective owners; Best Photo Picker is not affiliated with or endorsed by them.