finds.dev← search

// the find

immich-app/immich

★ 103,084 · TypeScript · AGPL-3.0 · updated Jun 2026

High performance self-hosted photo and video management solution.

Immich is a self-hosted Google Photos replacement — mobile backup, facial recognition, CLIP semantic search, shared albums, the works. It's a full-stack app: NestJS backend, SvelteKit web UI, Flutter mobile app, and a separate ML container for embeddings and face clustering. For anyone who wants their photo library off Google's servers and on their own hardware, this is the most complete option available.

CLIP-based semantic search is genuinely good — you can search 'beach sunset' and it actually works, not just filename matching. The ML workload runs in a separate container with hardware acceleration support (CUDA, OpenVINO, ARM NN), so you can offload inference without tangling it with the main app. Storage templates let you define exactly how files land on disk (e.g., `{{y}}/{{MM}}/{{filename}}`), which matters if you're also using other tools against the same NAS. The Flutter mobile app handles background sync properly, including deduplication before upload — you won't end up with five copies of the same burst shot.

The AGPL-3.0 license is a real constraint if you're building anything commercial on top of it — many people don't read the license until it's too late. The ML container is a hard dependency for facial recognition and CLIP search; if it crashes or your machine doesn't have enough RAM, those features silently stop working and there's no graceful degradation. Database migrations have historically been a pain point — there are issues in the tracker about broken upgrades between versions, and the 'always follow 3-2-1 backup' warning in the README is there for a reason. The web UI is polished but the admin surface for multi-user setups is thin: quota management exists but per-user storage policies and audit logs are missing.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →