Chroma
The shortest distance from pip install to a working retriever — which is why nearly every RAG tutorial starts here.
Chroma optimises for time-to-first-query: run it in-process, persist to disk, and you have a retriever in an afternoon. That makes it the right choice for prototypes, notebooks, and applications where the corpus is small and local. The tradeoff is explicit and fair — it is not trying to be the answer at hundred-million scale. Teams that outgrow it usually do so for predictable reasons: they need distributed indexing, fine-grained permission filters, or multi-node replication.
Best for: Prototypes, notebooks, and single-node applications under a few million vectors
RAG in Production Playbook
Chunking strategies, reranking setups, evaluation harnesses and the seven failure modes that kill every RAG demo in week three.