Engineering
How freedam is built
Deep technical write-ups from the team that builds Freedam: how retrieval, ranking and recall actually work, with the parameters, the failure modes and the measurements that settled each decision.
The search series7 partsabout 126 min in total

Part 1 · Start here
What it actually takes to build a good image search
What we learned building image search with keyword retrieval, embeddings and PostgreSQL, including the parts that affected recall more than ranking did.

Part 2
How we built image search in PostgreSQL
A production image-search stack using pg_textsearch for BM25, pgvector for HNSW vector search, and reciprocal rank fusion in one PostgreSQL database.
21 min read

Part 3
Finding the same image twice
How freedam combines DCT hashing, multi-index lookup and vector verification to find re-encoded, resized and cropped copies without confusing similar products.
5 min read

Part 4
Searching a library in twenty languages
How freedam keeps document language, text configuration, partial indexes and query fallbacks aligned across twenty PostgreSQL stemmers.
22 min read

Part 5
Measuring a search nobody thought was broken
How a sixty-case relevance panel exposed fifteen search failures, corrected a plausible diagnosis and revealed gaps in its own coverage.
23 min read

Part 6
A face is not a name
How freedam separates face detection from identity, stores ArcFace embeddings in pgvector and measures the threshold used for automatic matching.
14 min read

Part 7
The chat that never sees your library
How freedam uses a language model to produce a validated filter tree while PostgreSQL handles retrieval, permissions and result counts.
19 min read