I Had 80,000 Photos in a Folder Called "Unsorted." So I Built an App.
By The Pluto Photos Team · Published · Updated · 6 min read
The story behind Pluto Photos — why I quit using cloud services, what made me start building my own photo manager, and the mistakes I made along the way.
The folder that broke me
A few years ago I plugged in an old hard drive and found a folder called "Camera Uploads 2019 BACKUP (2)." Inside were 11,000 photos. I had no idea which ones were already in my main library, which were duplicates, and which were photos I'd never seen before.
That was the tipping point. Between my phone, my partner's phone, Google Takeout exports, SD cards from trips, and random USB sticks, I had over 80,000 photos scattered across five drives. Finding anything meant guessing which folder it might be in, then scrolling through thousands of thumbnails.
I'd tried Google Photos, but I wasn't comfortable with everything being scanned and stored on someone else's servers. I'd tried digiKam, but the interface felt like it was designed for a different decade. I tried just being more organized with folders, but that lasted about two weeks.
So I started building something.
What I actually wanted
My requirements were pretty simple:
- Point it at a folder. It indexes everything.
- I can see all my photos in one place, even if the files are spread across drives.
- It finds duplicates — not just files with the same name, but photos that look the same even if they've been resized or re-saved.
- It runs on my computer, not in the cloud.
- It doesn't cost money every month.
That's it. That's what Pluto Photos started as.
Of course, scope creep is real. Once the basic browser worked, I wanted smart albums. Then I wanted face detection. Then a map view. Then I added a photo editor because I was tired of switching apps just to crop something. Then a video editor because... well, I had videos too.
But at its core, Pluto Photos is still the thing I built to fix that "Unsorted" folder.
The parts that were hard
Face detection was the hardest feature to ship. Getting the model to run on-device without a GPU, fast enough to process thousands of photos, and accurate enough to actually group the right faces together — that took months. The breakthrough was finding the right combination of models and running them through ONNX Runtime, which made them CPU-friendly.
Google Takeout import was surprisingly painful. Google strips EXIF dates from your actual image files and buries them in adjacent JSON files with inconsistent naming. I spent a lot of time writing a parser that handles all the weird edge cases — metadata files that don't match their photos, timezone offsets that are just wrong, duplicate folders with "(1)" suffixes.
Performance at scale was a constant battle. The app needs to feel instant when browsing 50,000+ thumbnails. I ended up building a virtual scroll with a priority queue — visible thumbnails generate first, and everything else fills in behind them. It makes scrolling through a huge library feel smooth.
What it is now
Pluto Photos has grown into something bigger than my original "folder fixer." It runs on Windows, Mac, and Linux. There's a Docker version for NAS setups. It does face detection, duplicate finding, smart albums, GPS map view, batch operations, photo editing, video editing, background removal, and a companion browser so you can access your library from your phone.
But it's still the same idea: your photos, on your hardware, organized the way you want.
If that sounds like something you'd use, grab it here. The free tier lets you try everything with up to 500 photos.
Part of the Photo Organization Guides guide.
Download Pluto Photos for Windows, macOS or Linux, or read more from the blog.