Inspiration

Camera rolls fill up fast: screenshots of things we no longer remember, 11 near-identical shots of the same sunset, and blurry pictures of the inside of a pocket.

Cleaning that up is a chore, and chore apps feel like chores: grids, checkboxes, a delete button. I wanted camera roll cleanup to feel like messing with a real pile of prints on a desk. You pick one up, toss it left or right, and when you’re done you get to set the rejects on fire.

What it does

Pile turns your camera roll into a physical stack of photos.

  • Sort by tossing. Photos show up as a pile. Drag one to the keep pile or the delete pile. If you change your mind, drag it back. Shuffle mode deals you random photos so every session surfaces something you forgot existed.
  • It finds the junk for you. Pile builds smart albums of duplicates, bad photos, screenshots, long videos (you'd be surprised how many useless long videos have been eating up space all this time), and things saved from other apps, all on-device. It suggests and you decide. Nothing gets marked for deletion automatically.
  • Compress instead of delete. For photos and videos you want to keep but slimmer, pick light, balanced, or strong, preview the result, and get the space back.
  • Reasons to come back. There are cleanup streaks, a calendar of your library, gentle reminders, and a collection of 25 landmark stamps that you discover at the bottom of random piles.

How we built it

Pile is a fully native iPhone and iPad app I built with SwiftUI.

  • PhotoKit handles the library. Vision does the detection: image feature prints measure how similar two photos are for duplicates, and face capture quality helps catch the shots where everyone blinked.
  • Metal powers the burning-photo simulation and the lighter flame.
  • SpriteKit runs the physics for the crumpled photos in the trash and other little animations.
  • AVFoundation + ImageIO run the compression pipeline. It preserves camera metadata and orientation, and it refuses to touch anything it can't improve.
  • StoreKit / RevenueCat handle Pile Pro.

Everything happens on your device. Your photos never leave your phone.

Challenges we ran into

  • Figuring out the best way to do on-device duplicate and blurry photo detection for thousands of photos in a performant way was the most challenging part of this project. Running similarity detection over tens of thousands of photos can't block anything or re-run every launch. I made scanning progressive and cached, so smart albums fill in as results arrive.
  • Gestures were hard to get right. Getting a drag to feel like tossing a photo without misfiring took a lot of iterations.
  • Making sure compression works reliably was challenging as well. It rejects results with no savings, skips transparent and animated images, keeps metadata and orientation, and verifies every replacement against a ledger before anything is swapped.

Accomplishments that we're proud of

Designed for delight. Every interaction in Pile is built to feel good, not just work. Photos have weight when you toss them, and every action answers with sound and haptics. Nothing in the app is a plain list or a confirmation dialog if it could be something you'd want to touch instead.

Cleaning your camera roll is a chore people put off for years, so I put as much care into how the app feels as into what it does, and tidying up ends up being something you look forward to.

What we learned

  • Small details matter. The way an interaction moves, sounds, and responds can completely change how an app feels to use.
  • Give people control. Suggestions are useful, but the final decision should always belong to the person using the app.
  • Privacy doesn’t have to limit features. A lot can be done directly on-device without sending personal photos elsewhere.
  • Make room for play. Small, unnecessary details can end up being some of the most memorable parts of an experience.

What's next for Pile

  • I’m already mostly done working on the next major feature, which is memories. It lets you turn the photos you keep into something worth keeping by arranging your favorite shots into beautiful collages and bringing them to life as shareable videos.
  • More smart albums. I want to add more smart albums that automatically detect and suggest photos you might want to delete.
  • Getting Pile in front of more people. I want to experiment with short-form content and creative marketing that makes cleaning up a camera roll look as fun as it feels.

Built With

Share this project:

Updates

Submission history