←back to thread

224 points jamesxv7 | 1 comments | | HN request time: 0s | source

First of all, this is purely a personal learning project for me, aiming to combine three of my passions: photography, software engineering, and my family memories. I have a large collection of family photos and want to build an interactive experience to explore them, ala Google or Apple Photo features.

My goal is to create a system with smart search capabilities, and one of the most important requirements is that it must run entirely on my local hardware. Privacy is key, but the main driver is the challenge and joy of building it myself (an obviously learn).

The key features I'm aiming for are:

Automatic identification and tagging of family members (local face recognition).

Generation of descriptive captions for each photo.

Natural language search (e.g., "Show me photos of us at the beach in Luquillo from last summer").

I've already prompted AI tools for a high-level project plan, and they provided a solid blueprint (eg, Ollama with LLaVA, a vector DB like ChromaDB, you know it). Now, I'm highly interested in the real-world human experience. I'm looking for advice, learning stories, and the little details that only come from building something similar.

What tools, models, and best practices would you recommend for a project like this in 2025? Specifically, I'm curious about combining structured metadata (EXIF), face recognition data, and semantic vector search into a single, cohesive application.

Any and all advice would be deeply appreciated. Thanks!

Show context
crobibero ◴[] No.44426343[source]
I think Immich checks a lot of these

https://immich.app/

replies(5): >>44426505 #>>44426857 #>>44427196 #>>44429603 #>>44434882 #
sz4kerto ◴[] No.44426505[source]
This. It's a fascinating project, it is hard to believe how can an FLOSS project be so high quality. In my book it's on the level of Postgres (although it's a smaller project, probably).
replies(2): >>44426592 #>>44426992 #
denysvitali ◴[] No.44426592[source]
Their frontend is amazing, their apps are not as performant, and the backend is (IMHO) the worst of them all.

No hate here, I'm really grateful for what they've achieved so far, but I think there's a lot of room for improvement (e.g: proper R/W query split, native S3 integration, faster endpoints, ...). I already mentioned it in their channel (they're a really welcoming community!) and I'm working on an alternative drop-in replacement backend (written in Go) [1] that will hopefully bring all the needed improvements.

TL;DR: It's definitely good, especially for an open-source project, and the team is very dedicated - but it's definitely not Postgres-good

[1]: https://github.com/denysvitali/immich-go-backend

replies(1): >>44427227 #
darkwater ◴[] No.44427227[source]
Why the focus on S3 for a self-hosted app? Anyway kudos for the effort, I'm not experiencing performance issues in my locally self-hosted Immich installation but more performant software is always welcome.
replies(3): >>44427550 #>>44428576 #>>44429185 #
1. toomuchtodo ◴[] No.44429185{3}[source]
S3 compatible means one can point it at any storage that talks S3, which is a lot more flexible than POSIX or NFS.