Nextcloud Tinder

Photo triage swipe UI

FastAPISQLiteTailwindDockerNextcloud WebDAV
Nextcloud Tinder

Nextcloud Tinder was born from the problem of thousands of unsorted photos accumulating on my Nextcloud server over the years, between auto-uploaded phone photos (InstantUpload) and the organized photo collection.

The traditional file manager approach (open, view, delete/move) is slow and tedious. The Tinder-style swipe mechanic is a perfect solution: I see one photo, swipe right to keep it, left to delete it. Fast, intuitive, comfortable to use on mobile.

The backend is built with FastAPI, communicating with the Nextcloud server via WebDAV protocol. Source folders are configurable (currently monitoring the "Photos (Sorted)" and "InstantUpload" folders). Every decision is stored in a SQLite database, so processing state persists and can be resumed.

Deletion isn't immediate: there's a 3-second undo window after every swipe, so if you accidentally swipe the wrong way, it can be reversed. The actual deletion on Nextcloud only happens after the undo period expires.

The frontend uses vanilla JavaScript with Tailwind CSS CDN, built mobile-first. It supports both touch and mouse gestures. The entire application runs in Docker Compose behind a Caddy reverse proxy.