I had 27,000+ photos and videos scattered across a Linux PC, external SSD, and multiple USB sticks. Every existing solution either required cloud access, a subscription, or was too complex for non-technical family members.
So I built FotoApp — a free, open-source local photo & video organizer.
What it does
- Scan folders recursively — finds all photos and videos (JPG, PNG, RAW, MP4, MKV, MOV...)
- Detect duplicates by MD5 hash — shows groups, lets you mark which to keep
- GPS map view — media pinned on a Leaflet map, with automatic reverse geocoding via Nominatim (no API key, no data sent to Google)
-
Smart export — filenames like
Belgium_Brussels_12_06_2026.jpg, organized intoyear/monthfolders -
Google Takeout support — reads the
.jpg.jsonsidecar files for date and GPS fallback - Dashboard — stats by year, camera model, country (with flag emoji 🌍), and source folder
- Video support — thumbnails, metadata, duration shown alongside photos
- Multi-language UI — switch between NL / EN / FR / DE in the app header
Tech stack
| Layer | Tech |
|---|---|
| Desktop wrapper | Electron |
| Backend | Node.js + Express |
| Database | SQLite (better-sqlite3) |
| Image processing | sharp + exifr |
| Maps | Leaflet + Nominatim |
| Frontend | Vanilla JS (no framework) |
No framework overhead, no build step. Just open and it works.
Privacy first
Everything runs locally. No cloud upload, no account required, no telemetry. The only external call is to Nominatim for reverse geocoding (OpenStreetMap), and that can be disabled.
Download
Windows installer ready. Mac and Linux builds are automated via GitHub Actions.
→ Download from GitHub Releases
→ Landing page (NL/EN/FR/DE)
→ Source code
Contributing
The project is open to contributions. If you have a feature idea, bug report, or want to help with translations — open an issue or PR.
Feedback especially welcome from people with large photo/video collections (10k+ files).
Top comments (0)