Building unclutr
What 20,000 real photos taught me about cleanup apps
Last updated: February 3rd, 2026
What this post covers
- Why “duplicates” are only a small part of the real cleanup problem
- What breaks first on large libraries (memory, crashes, OS limits)
- Why “AI picks the best” always has tradeoffs
- Why safety and review flow matter more than one-tap speed
Important: This is a product-building post, not a polished success story. It is intentionally about tradeoffs, failure modes, and what real libraries do to cleanup apps.
I want to share something concrete, not marketing.
The biggest photo library I’ve tested so far is ~20,000 photos, on my wife’s iPhone. iCloud Photos enabled, years of bursts, WhatsApp junk, screenshots, edits — the full chaos.
Here’s what actually happens when you try to clean a library like that, and why photo cleanup apps are harder than they look.
1. The problem isn’t “duplicates”
Everyone talks about duplicates. Real libraries are messier than that.
What you actually get:
- Bursts where every photo is slightly different
- Edited versions next to originals
- Screenshots mixed with real photos
- Messaging app spam (WhatsApp, Signal, etc.)
- Near-duplicates taken seconds apart but not pixel-identical
“Just delete duplicates” solves maybe 10–20% of the mess.
2. Memory is the silent killer
This is the big one people don’t see.
On iOS, you can’t just load thousands of images into memory and compare them freely. You will crash. I did. Multiple times.
Things that sound harmless but aren’t:
- Generating thumbnails too aggressively
- Comparing too many photos in parallel
- Keeping image data around longer than needed
With ~20k photos, even small inefficiencies compound fast.
If an app feels slow or crashes on large libraries, it’s often not incompetence — it’s physics + OS limits.
3. “AI picks the best photo” is not magic
Users expect this to be easy. It’s not.
What does “best” even mean?
- Sharpest?
- Eyes open?
- Best framing?
- Best face?
- Emotional moment?
Two people will pick different “best” photos from the same burst. Any app pretending otherwise is overselling.
You can assist the choice. You can’t replace it without tradeoffs.
4. Speed vs safety is a real tradeoff
Fast cleanup feels great — until you delete something important.
Early on, I tried immediate deletion. It felt efficient… and stressful. One wrong tap + it’s gone.
That’s why I’m moving toward deferred deletion:
- Mark photos for deletion
- Review later
- Delete in one final step
It’s slower. It’s also safer. And on real libraries, safety wins.
5. Crashes don’t mean “bad app”
This one’s uncomfortable but important.
When you push an app against:
- Huge libraries
- iCloud syncing
- Background OS limits
…things break.
Crashes don’t always mean the idea is bad — sometimes they mean the app is finally dealing with real-world data.
The hard part is fixing them without dumbing the product down.
What users can do today
If you’re cleaning a large library:
- Don’t try to do everything in one sitting
- Start with obvious junk (screenshots, messaging apps)
- Be suspicious of apps that promise “one-tap perfection”
Photo cleanup is closer to decluttering a house than running a script.
Building unclutr in public
I’m building unclutr in public, so if you:
- Have a huge library
- Have had apps crash on you
- Disagree with any of this
I genuinely want to hear it. Real feedback beats nice words.
We also just launched a small community on Reddit: r/unclutr. If you want to share screenshots, edge cases, or horror stories from your own library, that’s the best place to start.