Stacks / AI chat
Medium
Qdrant / pgvector
Vectors you host. Qdrant is Apache-2.0; pgvector lives in Postgres — Pinecone without the serverless meter.
The problem
Pinecone is a hosted vector index. You wanted embeddings next to the app. Qdrant is Apache-2.0 and self-hostable. Weaviate is BSD-3-Clause. pgvector is a Postgres extension if you already have a database. Team chat over models stays on /stacks/open-webui-litellm.
Replaces
Pinecone
Estimated SaaS saved
$2,400
per year, small team, before lock-in
Start on RailwayOpen WebUI + LiteLLM for the chat UI on top
Placeholder: Qdrant + a volume, or Postgres with pgvector. RAG chat can sit on /stacks/open-webui-litellm.
The stack
Cost table
| You stop paying | Typical / year | Self-host instead |
|---|---|---|
| Pinecone paid plan (small team) | $2,400 | Qdrant or pgvector |
Agent setup prompt
Replace Pinecone with Qdrant (preferred) or pgvector on Postgres. - Qdrant: persist storage on a volume. pgvector: one extension on the Postgres you already run. Weaviate if you want that API. - Re-embed the corpus. Point the existing client at the new URL. Confirm one search. - Chat UI + keys: /stacks/open-webui-litellm. Write AGENT_PROMPT.md.
Also as markdown: /stacks/qdrant-vectors.md
FAQ
- Qdrant or pgvector?
- pgvector if Postgres is already the source of truth and the corpus is small. Qdrant if vectors are the product. Weaviate if you want that stack.
- Where does the chat go?
- This page is the index. Open WebUI + LiteLLM is the team chat on top — a published Railway template at /stacks/open-webui-litellm.