// the find
immich-app/immich
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.