Tidy Roll
A Tinder-swipe interface for cleaning up your camera roll. Swipe right to keep, left to toss, watch the megabytes tick up. Free, no ads, no accounts, entirely on-device.

The constraint
Photo cleanup apps are a well-known dark-pattern category: they upload your library, gate the delete behind a subscription, or quietly keep a copy. The interaction itself is also wrong — a multi-select grid asks you to make a hundred decisions at once, which is why nobody finishes.
The approach
Deal photos out one card at a time and make each decision binary. Deletes are staged, never immediate: you get a summary of everything you tossed and nothing is removed until you confirm. Everything runs on-device, through the system photo library, so the space you free is space you actually get back.
- 1Fix the interaction first
Chose one-card-at-a-time over multi-select because the failure mode of photo cleanup is abandonment, not inaccuracy.
- 2Stage every destructive action
Routed deletes through the system photo library with an explicit confirmation step, so an accidental swipe is recoverable.
- 3Make the payoff visible
Surfaced reclaimed megabytes live during the session — the counter is the reason people finish a month.
- 4Ship the deck to the web
Reused the swipe deck on the marketing site so the core interaction can be tried before installing anything.
Outcomes
- Native Android and iOS app operating on the real camera roll
- Web showcase with the actual swipe deck playable in-browser, no install
- Optional desktop extension that tidies any local folder
- Staged deletes with a confirmation summary; GPL-3.0, no ads, no accounts
- Add on-device duplicate and near-duplicate detection to pre-sort the deck.
- Get the EAS builds through Play and App Store review.
- Measure completion rate per session length to find where people actually stop.
Built a cross-platform photo cleanup app with a card-swipe interaction, shipping a React Native/Expo mobile app, a Next.js showcase site with a playable demo deck, and an optional desktop browser extension.
Implemented month-by-month sessions, On This Day, albums, and bookmarks with staged deletes through the system photo library so reclaimed space is real and every deletion is confirmed.
Related projects
- Read →
Cocoon
A privacy-first Chrome extension that lowers sensory load online: it softens algorithmic feeds, reduces motion, and keeps a grounding exercise one click away. No accounts, no analytics, nothing leaves the device.
- Read →
Verso
A diary for artworks — Letterboxd where the unit is an individual work, not a visit. Offline-first capture over a real catalogue of 10,000 works currently on view at The Met.
- Read →
unlinkd
Get yourself removed from the internet — and keep the proof. A local-first, fully encrypted workspace for data-broker removal requests and the tamper-evident paper trail a GDPR or CCPA escalation actually needs.