🌱 Tool Showdowns · Head-to-head comparisons · cozy lesson
Chroma vs Qdrant vs Pinecone
11 min · 1 min read · no scary math, promise
The one-line verdict
- Learning / prototype: Chroma —
pip install chromadb, running in minutes. - Serious + self-hosted: Qdrant — fast Rust engine, rich filters, Docker or cloud.
- Zero ops at scale: Pinecone — managed serverless, pay per use.
Official homes: Chroma · Qdrant · Pinecone.
Same RAG, three backends
# Chroma: local first
import chromadb
client = chromadb.Client()
col = client.create_collection("docs")
col.add(documents=["return policy: 30 days"], ids=["1"])
print(col.query(query_texts=["returns?"], n_results=2))
# Qdrant: Docker, then point your client at it
# docker run -p 6333:6333 qdrant/qdrant
from qdrant_client import QdrantClient
client = QdrantClient(url="http://localhost:6333")
# Pinecone: managed index in the cloud
from pinecone import Pinecone
pc = Pinecone(api_key="...")
index = pc.Index("docs")
When to switch
Stay on Chroma while one machine holds your vectors. Move to Qdrant when you need replication, heavy metadata filtering, or uptime guarantees. Move to Pinecone when you'd rather pay than operate anything. Your chunking and evals (see the RAG chapters) transfer unchanged — only the client code moves.
Check your understanding
Correct answers earn XP (once each).
1. First RAG prototype on your laptop?
2. You outgrow Chroma and want control + scale?
My notes (saved in this browser)
Select text above → Save selection, or write your own. AlgoMaster-style notebook, local-first for MVP.
No notes yet. Your highlights will live here.
References
Finished reading? Seal it with a tick ✅
The checkbox in the explorer turns green too — same progress.