Choosing the right vector database is critical for any AI product that must
ground responses in private data—customer records, team documentation, internal
metrics, and more. The best choice ensures that your AI can quickly find
accurate information using retrieval-augmented generation (RAG), while scaling
seamlessly and staying affordable.

In this guide we'll be comparing the best vector databases available in 2025:
[Turbopuffer](#turbopuffer), [Pinecone](#pinecone), [Qdrant](#qdrant),
[pgvector](#pgvector), [Cloudflare Vectorize](#cloudflare-vectorize),
[Weaviate](#weaviate), [Milvus/Zilliz](#milvus-zilliz),
[Turso Vector](#sqlite-vec-and-turso-vector),
[MongoDB Atlas Vector Search](#mongodb-atlas-vector-search), [Chroma](#chroma),
and [Redis](#redis).

## Introduction

When we set out to launch [AI Copilots](/ai-copilots), our customizable AI chat
product for React, we faced the challenge of selecting a vector database
firsthand. Because our product manages the entire conversation loop, including
message persistence for each user, we needed a vector database that could serve
proprietary knowledge with multi-tenant isolation, real-time streaming,
scalability, and cost-effectiveness.

It’s a crowded market with many competing solutions, so we spent months testing
different approaches. In the end, we chose a hybrid approach where we run both
BM25 (keyword/semantic) and vector similarity searches, optionally followed by a
rerank step.

In this post we'll outline the criteria we used and the tradeoffs we found, so
you can pick the best vector database for your AI in 2025.

## High-level considerations

During our research, we discovered that vector databases vary greatly in terms
of features, limitations, and performance. Comparing benchmark speeds alone
isn't enough, and a number of factors helped us make the right decision:

- **Performance & scalability**: Performance is crucial for us, as we need to
  provide responsive AI agents for our customers. While we weren't able to
  benchmark every solution, we'll discuss available third-party benchmarks.
- **Features**: We focused on indexing strategies, namespace support, which give
  us the ability to split data by type and tenant. We also quickly identified
  that hybrid search is essential for robust RAG solutions, and because our
  agents run close to the user on edge runtimes, an HTTP API or edge-compatible
  SDK was a must.
- **Limitations**: Each option varies greatly in terms of limitations,
  particularly when it comes to indexes and namespaces.
- **Enterprise compatibility**: As with other enterprise service providers,
  compliance and security are key. HIPAA, SOC2, single sign-on, and similar
  enterprise features are non-negotiable requirements.
- **Cost**: As a provider, cost of goods directly affects what we pass on to
  customers, so pricing is a major factor—especially for systems with large data
  ceilings. For consistency we've compared providers with a standard formula\*.
- **Extension vs dedicated database**: Building a vector search solution into
  your existing database (e.g. Postgres) can be tempting, as it will simplify
  looking up data, but may lead to resource contention and scalability issues if
  not planned well. Using a separate, dedicated, vector database avoids these
  issues, but requires ongoing data synchronization between sources.

<div className="text-sm opacity-70">
  \* 1536 dimensions, 1 million reads, 1 million writes, and 10 namespaces
  (where supported).
</div>

---

## Turbopuffer (our pick) [#turbopuffer]

<TechnologyCover
  logo={
    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 223 141">
      <path
        fill="currentColor"
        fill-opacity=".7"
        fill-rule="evenodd"
        d="M70 58.25H59.75v5.25H70v-5.25Zm-5.25 10.5h-9v9.75h9v-9.75ZM75 75.25h10.5V86.5H96v5h5.25v9.75h9.5v10h63.75v15.25h-11.75v5H116v-5h-16v-10h-9.75v-9.75h-5v-5H80V86.5h-5V75.25Z"
        clip-rule="evenodd"
      />
      <path
        fill="currentColor"
        fill-opacity=".9"
        fill-rule="evenodd"
        d="M95.25 44.25H208.5v52H203v10.25h-5.25v4.75h-5.25v5.5h-5.25v5h-42v-5h-14v-5.5H116v-4.75h-5.5v-4.75H95.25v-57.5Z"
        clip-rule="evenodd"
      />
      <path
        fill="currentColor"
        fill-opacity=".6"
        fill-rule="evenodd"
        d="M117 5h46v4.25h6.25v10H182v5h10.25V34h5.5v23.5H123v14H85V38.25h5.25v-14h15.25v-5h5v-5h6.5V5ZM59.75 39h5v8.75H70v7h-5.25v3.5h-5V39Z"
        clip-rule="evenodd"
      />
      <path
        fill="currentColor"
        fill-rule="evenodd"
        d="M154.5 9.75h9v4.75h-9V9.75Zm0 9.75h-13.75v-5h13.75v5Zm0 0h4.75v4.75H169v-5h5.25v5h-5V29h14v5.5H179v9.75h-4.75V34.5H164V29h-9.5v-9.5Zm38.25 14.75h-9V44h9v-9.75ZM164 48.75h-7.25V66.5H151V71h-19.75v-4.5h-5v-9h-5v9H116v4.25h-5.5V76h5.5v10h5.25v-4.75H126v10h5.25v5h9.5V91H136v-5h9.5v5.25h5.25v5h3.75v5h9.75v-5h5v5h19v-5H213v-35.5h-22v-12h-15.75v8.75H164v-8.75ZM188.25 66h-13v5h-4.75v10l3.25 4.625h2.625V91h11.875V66Zm-96-10h3.25v4.75h9.5v1.5H92.25V56ZM196.5 44h7v9.5h-7V44Zm-75.25-24.5h5v4.75h-5V19.5Zm33.25 9.75h-9.25V34h-4.5v5h10v4.75H164V39h-4.75v-5h-4.75v-4.75Zm-23.25 0h9.25v5h-9.25v-5ZM150.75 44H141v9.5h9.75V44Z"
        clip-rule="evenodd"
      />
      <path
        fill="currentColor"
        fill-rule="evenodd"
        d="M110.5 29.25h5.5V34h-5.5v-4.75ZM59.75 34h-8.5v29.5h8.5V34ZM105 60.75H92.25V56H90.5v4.75h-5v10h4.75v10H105v-20Zm21.25-26.5H121V39h5.25v-4.75ZM105.75 86H116v5.25h-10.25V86Zm39.75 0H136v5h4.75v5H136v5.25h9.25v5h9.25V96h-9V86ZM126 91.25h5.25v5H126v-5Zm28.75 15.25H164v5h-9.25v-5Zm24.25 0h-4.75v-5.25H164v5.25h5.25v4.75H179v-4.75Zm0 0h14v-5.25h5v-5h-9.75v5H179v5.25Zm29.25-20.25h-4.75V91h4.75v-4.75Zm-28.75-25h8.75V66h-13l.5-1.125 3.75-3.625ZM213 76h-4.75v4.75H213V76Z"
        clip-rule="evenodd"
      />
      <path
        fill="#FFFFF3"
        fill-rule="evenodd"
        d="M59.75 41H55.5v7.75h9V44h-4.75v-3Z"
        clip-rule="evenodd"
      />
      <path
        fill="#000"
        fill-rule="evenodd"
        d="M105.25 29H100l-4.5 4.5v.75h9.75V29Zm-30 19.75H80V57h-4.75v-8.25Zm-5.25 20h5v5h-5v-5ZM95.25 86H90v5h5.25v-5ZM198 101.25h-5v5.25h5v-5.25Zm-10.75 10.25h-5v5.25h5v-5.25Zm-12.75 5h7.25v5h-7.25v-5Zm-53.5 10h-5v5h5v-5Zm-13.5-20h8.5v5h-8.5v-5Zm-42.75-33h-5v5h5v-5Z"
        clip-rule="evenodd"
      />
      <path
        fill="currentColor"
        d="M8.5 34.5h-4v4.25h4V34.5ZM16.75 49h-3.5v4.25h3.5V49ZM24.75 49h-3v4.25h3V49ZM34.25 112h-8.5v4.25h8.5V112ZM74.5 112H39v4.25h35.5V112ZM60.25 102.5H56.5v4.25h3.75v-4.25ZM80 102H70v4.75h10V102ZM12.75 112H5v4.25h7.75V112ZM75 97.75H17.5V102H75v-4.25ZM51.25 49h-25v4.25h25V49ZM29.75 65H5v4.25h24.75V65ZM51.25 74.25h-25.5v4.25h25.5v-4.25ZM70 88.25H21.75v4.25H70v-4.25ZM17 88.25H9v4.25h8v-4.25ZM17.25 34.5h-4v4.25h4V34.5ZM25.5 34.5h-4v4.25h4V34.5ZM8.5 49H5v4.25h3.5V49ZM51.25 34.5h-21v4.25h21V34.5ZM80 34H67.75v4.75H80V34ZM12.75 74.25H9v4.25h3.75v-4.25ZM38.25 65H34.5v4.25h3.75V65ZM8.5 97.75H5V102h3.5v-4.25Z"
      />
      <path
        fill="currentColor"
        fill-rule="evenodd"
        d="M181.25 66h7v4.75h-7V66Zm0 9.75v-5h-6v5h6Zm0 0v5h7v-5h-7ZM75 81.25h5V87h-5v-5.75Zm56.25 45.25h17.5v5h-17.5v-5Zm14-9.75h-9.5v5h9.5v-5Zm12 9.75h5.5v5h-5.5v-5Zm17.25-5H169v5h5.5v-5Z"
        clip-rule="evenodd"
      />
      <path fill="#000" d="M181.25 75.75h-6v5h6v-5Z" />
      <path
        fill="#000"
        fill-rule="evenodd"
        d="M121 9.75h-4.5v4.75h4.5V9.75Zm-15.5 4.75h5.25v5h-5.25v4.75h-5.25v-5h5.25V14.5ZM85.25 34h5v9.75h-5V60.5h-5v16.25H75v-8h-5V63.5h5V57h5v-8.25h-4.75V44H80v-5.25h5.25V34Zm5 0 4.5-5h-4.5v5Zm-25.5 29.5h-13.5v5.25h13.5V63.5Zm45.75 2.75H105V74h5.5v-7.75ZM95 75.75h4.75v5H95v-5ZM80 87h-5v5.25h5V87Zm0 9.5h5.25v5.25H80V96.5Zm10.25 10h-5v5h5v-5Zm15.5 15h5v5h-5v-5Zm-.5-77.5h-5v2l-5 4.75h4.5v3h5.5v-9.5h5.5V39h-5.5v5Zm5.25 9.75h5.5l-1.75 3.75h-3.75l-5.25 3.25V56h.25l5-4.75v2.5Zm25.5-44h4.75v4.75H136V9.75Zm-20 14.5h10.25v10H121v-5h-5v-5Zm20-5h-4.75v5H136v-5Zm4.5 5h4.75v5h-4.75v-5Zm14-4.75H150v5h4.5v-5Zm0 9.5h9.5v5h-9.5v-5Zm14.5-9.75h-5.25v5H169v-5Zm0 0h5.25v-5H169v5Zm10 5h-4.75V29H179v-4.75Zm0 10.25h4.75v4.75H179V34.5Zm-4.75 4.5h-5v5h5v-5ZM164 48.5h5v5h-5v-5Zm20 .25-5 4.75v4h5v-8.75Zm-114-5h-5.5v5H70v-5ZM64.75 53H70v5.25h-8.75V56.5h1.5v-1h.75v-1h1.25V53Zm-.25-19h-4.75v5h4.75v-5Zm35.25-9.75h-4.5v5l4.5-5ZM121 44h-4.5l4.5-5v5Zm5.25 4.75L116 59v2.875h5.25V57.5h5v-8.75Z"
        clip-rule="evenodd"
      />
      <path
        fill="#000"
        fill-rule="evenodd"
        d="M136 5h-20v4.25h-5.25v5.25h5.75V9.75H136V5Zm-35.75 9.75h5.25v4.5h-5.25v5h-5V29h-5v-5h5v-5h5v-4.25ZM85.25 34v-5h5v5h-5ZM80 38.75V34h5.25v4.75H80ZM70 63.5v-20h5.25v-4.75H80V44h-4.75v19.5H70Zm15.25 38.25v5H80V102h-5v-9.5h-5V74.25h-2.25v4.5H64.5v4.75h-9v-4.75h-4.25v-10h4.5v9.75h8.75v-4.75h.25V63.5H70v10.25h5v18.5h5v9.5h5.25Zm0 0V96.5H90v5.25h-4.75ZM55.5 29.25h8.75V34h-8.5v5h-4.5v-5h4.25v-4.75ZM67.75 34H64.5v9.75h3.25V34ZM116 91.25h-10.25v5H116v-5Zm38.25 20h-8.75v5h8.75v-5Zm4.75 5.25h5.25v5H159v-5ZM140.75 5h22.75v4.25h5.75v5.25h-5.75V9.75h-22.75V5Zm33.5 9.5h7.5V19H187v5h5.5v5h5.25v4.75h4.75v5h5.25V44h4.5v4.75h.75V60.5h5V81h-4.75v15.25h-5v10.25H203v5.25h-5.25v5h-5.25v4.75h-5.25v-5h5.25v-5.25h5.25v-5H203v-10.5h5.25v-15H213V61h-5.25v5H203v5h-5v-5h-4v-5.25h-3V44h5.5v4.75h3v4.75h4V44h-5.75v-9.75h-5.25v-5H187v-5h-5.25v-5h-7.5V14.5Zm13 107v5h-12.5v5H163v4.75h-46.75v-4.75h46.5v-5h11.75v-5h12.75Zm-6-55.5h-6v4.75h-4.75v10h4.75V82l3.5 3.5h11.75a2.75 2.75 0 0 0 2.75-2.75v-2h4.5v-5h-4.25v-5h-12.25V66Zm0 4.75v5h12v5h-18v-10h6ZM106 126.5h10v4.5h-10v-4.5Zm-.25-5h-5.5v-5h5v-5.25h-5v5.25h-10v-5h5v-5.25h-5v5.25H85.5v5h4.75v5h6v5h9.5v-5Zm-5.5-25.5h-5v5.5h5V96ZM80 86.5h5.25V92H80v-5.5Zm5.25-26h-5v14.75h5.25V86h9.75v5.25h4.5V81h5.5v-5.25h-5.5v5h-9.5v-10h9.5V66H90v4.75h-4.5v-10h5V56h5v4.75h9.5v5.5h5.5v-5.5h-5.25V56h-5.5v-5.25h-9.5v5h-5v4.75Zm25.25-12h5.5v5.25h-5.5V48.5ZM90 39h5.25v5h-5v4.75H85v-5h5V39Zm20.5-5h5.25v5h-5.25v-5Zm15.75 5H121v5h5.25v-5Zm-15.5-19.75H116v5h-5.25v-5Zm20.75-4.75h-5.25v5h5.25v-5Zm-.25 47.25v4.5h4.25V71H151v-9h5.75V48.75h-1.5v-5h-4.5V39H135.5v5h-4.25v4.75h-5v13h5ZM141 44v4.75h4.25v4.75h5.5V44H141ZM46.75 58.5h4.5v5h-4.5v-5Zm14-9.75H55.5v4.75h5.25v-4.75Zm65.25 52.5h-5v5.25h5v-5.25Zm.25 10.25h5v5.25h-5v-5.25Zm28.75 10h-5v5.25h5v-5.25Zm-34-.25h5v5.25h-5v-5.25Zm-5-4.75h-5.25v5H116v-5Z"
        clip-rule="evenodd"
      />
    </svg>
  }
  name="Turbopuffer"
  url="https://turbopuffer.com"
/>

Thanks to its performance, low cost,
[crazy high limits](https://turbopuffer.com/docs/limits), and enterprise
features without enterprise costs, Turbopuffer became the obvious choice for us
when building [AI Copilots](/ai-copilots). We experienced firsthand the reason
why they're the choice of some of our favorite tools like Cursor, Notion, and
Linear.

### Features

Turbopuffer supports both vector and BM25 indexes, making it a great fit for
both search and RAG use cases. It's serverless, and you only pay for what you
use: storage, writes, and queries. You can pre-warm a namespace via API, which
ensures our Copilots respond instantly.

Multi-tenancy is simple and scalable. Each customer and project gets its own
namespace, and there are no hard limits. Since performance can degrade as vector
stores grow, isolating tenants like this actually improves performance.

SDKs are available in TypeScript, Python, and Go, and when we ran into an issue
with the TypeScript client, their team fixed it in hours.

Turbopuffer also includes enterprise-grade compliance features like HIPAA BAA,
SOC 2, and CMEK, even on the non-enterprise plan. Enterprise plans allow you to
BYOC (bring your own cloud) and native multi-tenant support.

One of the most compelling reasons to use Turbopuffer is its cost. It came in an
order of magnitude cheaper than some other solutions, even when considering open
source self hosted solutions. Using the standard pricing test, the cost comes in
at under $10/month, with a minimum spend of $64/month. Their pricing calculator
is clear and predictable, with no hidden fees.

### Drawbacks

- Not open source.
- A small learning curve to get the
  [best performance](https://turbopuffer.com/docs/performance).
- Serverless means there's an initial latency, but can be avoided with
  pre-warming API call.
- No free tier with $64/month minimum spend.
- No built-in embedding support, bring your own embedding model.

---

## Pinecone [#pinecone]

<TechnologyCover
  logo={
    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 52 52">
      <path
        fill="currentColor"
        d="M23.156 45.121a2.693 2.693 0 0 1 2.698 2.69 2.693 2.693 0 0 1-2.698 2.689 2.693 2.693 0 0 1-2.697-2.69 2.693 2.693 0 0 1 2.697-2.689Zm14.965-4.907 2.666.787-2.116 7.12a1.39 1.39 0 0 1-1.427.99l-.654-.045-.016.013-6.79-.475.189-2.765 4.562.308-2.987-4.296 2.285-1.58 2.99 4.302 1.298-4.36ZM9.11 35.292l2.773.196-.325 4.548 4.301-2.982 1.588 2.275-4.307 2.985 4.396 1.292-.786 2.659-7.175-2.108a1.386 1.386 0 0 1-.993-1.427l.528-7.438Zm17.906-3.873 5.005 6.025-2.256 1.863-2.979-3.586-.965 5.513-2.886-.503.967-5.522-4.01 2.358-1.487-2.516 6.74-3.959a1.467 1.467 0 0 1 1.87.327Zm14.003-4.043 2.5-1.356 3.642 6.675a1.416 1.416 0 0 1-.316 1.749l-.515.444-5.258 4.563-1.868-2.142 3.535-3.066-5.266-.946.505-2.793 5.262.945-2.221-4.073Zm-29.486-6.978 1.884 2.128-3.487 3.066 5.276.918-.49 2.796-5.28-.92 2.268 4.09-2.49 1.374-3.702-6.67a1.416 1.416 0 0 1 .304-1.751l5.717-5.031Zm17.833-2.195 4.988 6.009-2.256 1.862-2.978-3.588-.966 5.515-2.885-.503.963-5.5-3.995 2.335-1.481-2.52 6.136-3.587.006-.023.027.003.572-.332a1.467 1.467 0 0 1 1.869.329Zm6.428-2.955 1.09-2.622 7.057 2.92c.617.255.972.902.857 1.557l-.118.651-1.205 6.835-2.803-.493.808-4.575-4.682 2.58-1.376-2.484 4.69-2.582-4.318-1.787ZM22.35 10.082l.12 2.835-4.66.2 3.515 4.005-2.142 1.869-3.522-4.012-.82 4.58-2.802-.5 1.343-7.485a1.422 1.422 0 0 1 1.34-1.168l.66-.03.014-.01 6.954-.284Zm9.535-6.047 4.966 6.047-2.267 1.85-2.947-3.59-.994 5.508-2.883-.517.996-5.52-4.024 2.346-1.477-2.522L30.013 3.7a1.467 1.467 0 0 1 1.872.335Z"
      />
    </svg>
  }
  name="Pinecone"
  url="https://pinecone.io"
/>

[Pinecone](https://pinecone.io) is one of the best-known managed vector DBs.

### Features

Pinecone supports vector similarity search with metadata filtering and offers
built-in embeddings at an extra cost. It's available on AWS, GCP, and Azure, and
scales to billions of vectors with solid reliability.

Pinecone's limits include up to 100k namespaces in their standard plan but only
20 indexes, with higher limits available on enterprise plans.

Pinecone pricing can be confusing as there are many different options such as
pods-based pricing, serverless pricing, and extra add-ons for rerank, embedding,
support, and "assistant" features. There is a
[pricing calculator](https://www.pinecone.io/pricing/estimate/) available to
help you estimate cost. Based on our standard pricing test, the total cost comes
in at $41. They do offer a free tier and paid plans start at $50/month minimum
usage.

Pinecone's built-in inference covers embedding and re-ranking. We found the
available embedding models somewhat limiting and would prefer to use an external
embedding model anyway.

### Drawbacks

- 20 index limit unless on enterprise.
- Overwhelming pricing options.
- Hybrid search isn't as seamless outside Python.

---

## Qdrant [#qdrant]

<TechnologyCover
  logo={
    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 200 200">
      <path
        fill="currentColor"
        d="M186 50v125l-32.44 18.75v-125L99.495 37.5 45.44 68.75v62.5l54.054 31.25 32.441-18.75v37.5L99.495 200 13 150V50L99.495 0 186 50Z"
      />
      <path
        fill="currentColor"
        d="m99.495 62.5 32.441 18.75v37.5L99.495 137.5l-32.43-18.75v-37.5l32.43-18.75Z"
      />
    </svg>
  }
  name="Qdrant"
  url="https://qdrant.io"
/>

[Qdrant](https://qdrant.io) is a fast, open-source vector database written in
Rust.

### Features

Qdrant supports filtering, clustering, and hybrid scoring, and works well with
high-cardinality metadata. You can self-host via Docker or Kubernetes, or use
their managed service.

The API is well-documented, with SDKs in
[several languages](https://qdrant.tech/documentation/interfaces/), including
rust which is somewhat rare.
[Multi-tenancy](https://qdrant.tech/articles/multitenancy/) is extremely
flexible with a multitude of sharding options.

Their cloud pricing is based on storage and compute use, with a small free tier
available. A [pricing calculator](https://cloud.qdrant.io/calculator) is
available, and based on our standard test the price is $102 on AWS us-east
without quantization, which can reduce memory usage. With disk caching and
quantization turned on, this can be reduced to $27.

### Drawbacks

- Manual sharding required.
- No built-in embedding generation.
- Slightly steeper learning curve than Pinecone or Turbopuffer.

---

## pgvector [#pgvector]

<TechnologyCover
  logo={
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 52 52" fill="none">
      <path
        fill="currentColor"
        d="M22.742 16.556c-.528-.073-1.006-.005-1.248.178a.458.458 0 0 0-.189.304c-.03.218.122.459.216.583.265.351.652.593 1.035.646.056.008.111.011.166.011.64 0 1.22-.497 1.272-.865.064-.46-.604-.767-1.252-.857Zm17.488.015c-.05-.36-.692-.464-1.301-.379-.608.085-1.198.36-1.149.72.04.282.547.762 1.148.762.05 0 .102-.004.154-.011.4-.056.695-.31.835-.457.212-.224.336-.473.313-.635Z"
      />
      <path
        fill="currentColor"
        d="M50.264 32.018c-.223-.675-.942-.893-2.137-.646-3.546.732-4.816.225-5.233-.082 2.756-4.2 5.024-9.276 6.248-14.012.579-2.243.9-4.327.925-6.025.03-1.864-.288-3.234-.943-4.07C46.484 3.808 42.61 2 37.92 1.95c-3.224-.036-5.948.79-6.476 1.021a16.146 16.146 0 0 0-3.645-.468c-2.42-.039-4.512.54-6.244 1.722a27.875 27.875 0 0 0-5.075-1.33c-4.112-.663-7.378-.161-9.71 1.49C3.988 6.356 2.704 9.88 2.953 14.856c.084 1.675 1.038 6.826 2.543 11.759C7.478 33.108 9.633 36.783 11.9 37.54c.266.088.572.15.91.15.826 0 1.84-.373 2.895-1.64a104.478 104.478 0 0 1 3.99-4.517 6.43 6.43 0 0 0 2.872.773l.007.078c-.173.206-.342.414-.507.625-.694.881-.838 1.064-3.07 1.524-.636.131-2.323.479-2.348 1.661-.027 1.293 1.994 1.835 2.225 1.893.802.2 1.575.3 2.312.3 1.793 0 3.371-.59 4.632-1.73-.038 4.607.154 9.146.707 10.528.453 1.133 1.56 3.9 5.055 3.9.513 0 1.077-.06 1.698-.194 3.648-.782 5.233-2.394 5.845-5.949.328-1.9.89-6.436 1.156-8.87.558.175 1.277.255 2.055.255 1.621 0 3.492-.345 4.666-.89 1.318-.612 3.696-2.114 3.265-3.419Zm-8.688-16.443c-.011.719-.11 1.37-.215 2.051-.113.732-.23 1.49-.259 2.408-.029.895.083 1.824.19 2.724.219 1.816.443 3.685-.424 5.53a7.191 7.191 0 0 1-.384-.79c-.108-.26-.342-.68-.666-1.261-1.26-2.26-4.212-7.554-2.7-9.714.45-.643 1.591-1.304 4.459-.948Zm-3.475-12.17c4.202.093 7.526 1.665 9.88 4.672 1.805 2.307-.183 12.803-5.937 21.858a36.573 36.573 0 0 0-.174-.22l-.073-.091c1.487-2.456 1.196-4.886.937-7.04-.106-.884-.207-1.719-.181-2.503.026-.831.136-1.544.242-2.234.131-.85.264-1.728.227-2.765.028-.108.039-.237.025-.39-.094-.993-1.229-3.967-3.541-6.659-1.265-1.472-3.11-3.12-5.628-4.23a18.978 18.978 0 0 1 4.223-.398ZM14.587 35.121c-1.162 1.397-1.964 1.13-2.228 1.042-1.72-.574-3.715-4.208-5.474-9.972-1.522-4.987-2.412-10.001-2.482-11.407-.223-4.448.855-7.547 3.204-9.213 3.822-2.71 10.106-1.088 12.63-.265l-.11.106c-4.143 4.184-4.044 11.334-4.034 11.77 0 .17.014.408.033.736.071 1.203.204 3.44-.15 5.975-.33 2.355.396 4.66 1.99 6.325.165.17.337.332.516.486-.71.76-2.252 2.441-3.895 4.417Zm4.428-5.908c-1.285-1.341-1.87-3.207-1.602-5.119.374-2.677.236-5.009.162-6.262-.01-.175-.02-.329-.025-.45.605-.536 3.41-2.04 5.41-1.58.913.208 1.47.83 1.7 1.899 1.198 5.535.16 7.842-.675 9.697-.172.381-.334.742-.473 1.116l-.108.289c-.272.73-.525 1.408-.682 2.053-1.367-.004-2.696-.588-3.707-1.643Zm.21 7.465c-.4-.1-.758-.272-.969-.416.176-.083.49-.195 1.032-.307 2.627-.54 3.033-.923 3.919-2.047.203-.258.433-.55.752-.907.475-.532.692-.442 1.086-.278.32.132.63.532.757.972.06.208.126.603-.093.91-1.85 2.592-4.547 2.558-6.484 2.074Zm13.748 12.794c-3.214.689-4.352-.951-5.101-2.826-.484-1.21-.722-6.667-.554-12.694a.724.724 0 0 0-.03-.23 3.036 3.036 0 0 0-.09-.426c-.252-.877-.863-1.61-1.597-1.915-.291-.12-.826-.342-1.47-.178.138-.564.375-1.202.633-1.893l.108-.29c.122-.328.275-.668.437-1.027.873-1.94 2.069-4.597.77-10.599-.485-2.248-2.109-3.346-4.57-3.09-1.475.152-2.825.747-3.498 1.088-.145.074-.277.145-.401.213.188-2.265.898-6.498 3.553-9.176 1.672-1.686 3.9-2.52 6.612-2.474 5.346.087 8.774 2.83 10.709 5.117 1.667 1.97 2.57 3.954 2.93 5.025-2.71-.276-4.552.259-5.486 1.594-2.032 2.905 1.111 8.543 2.622 11.253.278.496.517.926.592 1.108.492 1.192 1.129 1.989 1.594 2.57.143.178.28.35.386.501-.82.237-2.294.784-2.16 3.516-.108 1.37-.879 7.789-1.27 10.057-.517 2.996-1.62 4.111-4.719 4.776Zm13.415-15.351c-.84.39-2.244.682-3.578.744-1.473.07-2.223-.165-2.4-.309-.082-1.702.551-1.88 1.222-2.068.105-.03.208-.059.308-.094.061.05.129.1.203.15 1.184.78 3.296.865 6.278.25l.033-.007c-.403.376-1.09.88-2.066 1.334Z"
      />
    </svg>
  }
  name="pgvector"
  url="https://github.com/pgvector/pgvector"
/>

[pgvector](https://github.com/pgvector/pgvector) is a Postgres extension that
lets you store and query vectors alongside relational data.

### Features

pgvector is ideal for teams already using Postgres that want to unify structured
data with vector search. You get full SQL support, transactional guarantees, and
the benefits of a mature ecosystem.

It's open source and free to use. Costs come down to whatever infrastructure
you're running Postgres on. For teams already running Postgres in production,
this is a low-friction entry point, although studying the different indexing
options will be prudent. Managing a vector database on pgvector is not as easy
as a dedicated option that's targeted specifically for vector search. It also
comes preinstalled on many popular vendors such as
[Supabase](https://supabase.com/docs/guides/database/extensions/pgvector),
[AWS](https://aws.amazon.com/blogs/database/leverage-pgvector-and-amazon-aurora-postgresql-for-natural-language-processing-chatbots-and-sentiment-analysis/),
and [Neon](https://neon.com/docs/extensions/pgvector).

While pgvector can be a great choice if you're already familiar and comfortable
with Postgres, you should be aware of some risks. Having a vector database that
lives next to your main content is very convenient, but vector indexes can use a
lot of memory and performance and costs of your database can be negatively
affected. Based on your usage scenario, you also must pick between IVFFlat and
HNSW, which is a tradeoff between querying performance and memory usage.

To model your data efficiently, you may want to use
[partitioning](https://www.postgresql.org/docs/current/ddl-partitioning.html) to
reduce the size of your indexes, especially in a multi-tenant situation. If
you're using an ORM, such as Prisma, as of September 2025, they still don't
fully support [pgvector](https://github.com/prisma/prisma/issues/26546) and
[partitioning](https://github.com/prisma/prisma/issues/1708) without
workarounds.

### Drawbacks

- Can be slower than dedicated vector DBs at high scale.
- Requires Postgres tuning and expertise for best performance.
- Many popular ORMs lack support for pgvector and partitioning.

---

## Cloudflare Vectorize [#cloudflare-vectorize]

<TechnologyCover
  logo={
    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 52 53">
      <path
        fill="currentColor"
        d="M35.77 36.997c.319-1.098.196-2.103-.337-2.85-.487-.685-1.31-1.081-2.3-1.128l-18.762-.243a.338.338 0 0 1-.289-.155.42.42 0 0 1-.045-.336.52.52 0 0 1 .44-.338l18.929-.244c2.242-.106 4.68-1.921 5.533-4.146l1.08-2.82a.588.588 0 0 0 .033-.363 12.31 12.31 0 0 0-12.025-9.632c-5.425 0-10.028 3.505-11.673 8.367a5.599 5.599 0 0 0-3.887-1.082 5.549 5.549 0 0 0-4.953 4.953 5.812 5.812 0 0 0 .137 1.936A7.873 7.873 0 0 0 0 36.797c0 .379.03.762.076 1.143.03.18.183.32.366.32H35.07c.197 0 .38-.14.44-.337l.26-.925Zm5.972-12.054c-.167 0-.349 0-.516.024-.123 0-.229.09-.275.212l-.732 2.544c-.32 1.098-.2 2.104.334 2.853.489.685 1.312 1.078 2.302 1.125l3.995.246c.12 0 .228.057.288.152a.441.441 0 0 1 .046.338.518.518 0 0 1-.442.337l-4.162.243c-2.255.106-4.676 1.921-5.53 4.147l-.305.777c-.062.154.046.307.213.307h14.295c.167 0 .32-.106.366-.273.243-.885.381-1.814.381-2.774 0-5.639-4.604-10.242-10.258-10.242"
      />
    </svg>
  }
  name="Cloudflare Vectorize"
  url="https://developers.cloudflare.com/vectorize"
/>

[Cloudflare Vectorize](https://developers.cloudflare.com/vectorize) is a vector
database that is part of Cloudflare's Workers AI platform, designed for
edge-native workloads.

### Features

Vectorize supports 50k namespaces and indexes per account and up to 5M vectors
per index.

The serverless model makes it easy to use and it integrates well with other
Cloudflare products. It's one of the easiest solutions to get up and started
with if you're already on the Workers platform. Vectorize does not yet appear in
the
[compatibility](https://developers.cloudflare.com/data-localization/compatibility/)
matrix for their data location suite which can make data residency compliance
difficult or impossible.

Cloudflare also offers an auto-RAG feature built on top of vectorize, R2, and
workflows which can work great for simple implementations but we found it to be
a little slow and it's difficult to integrate from a SaaS provider perspective
where we need to communicate indexing status to a multi-tenant dashboard.

Vectorize has an HTTP API but the native SDK is only available inside workers
itself.

Unfortunately Cloudflare does not support full text indexes and only a limited
amount metadata (attributes). This makes a hybrid approach very difficult as
you'd need a different database for FTS.

Pricing is usage-based and for our standard test of 1 million documents with 1
million reads and 1 million writes, the cost is $47. Embeddings can be generated
manually or by using Cloudflare's AI models.

### Drawbacks

- Many limits such as metadata limits and 5M vector limit per index (you'll need
  to shard).
- Regional data compliance is unclear.
- Not open source.
- No full-text-search means no hybrid searches.

---

## Weaviate [#weaviate]

<TechnologyCover
  logo={
    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 52 52">
      <path
        fill="currentColor"
        d="m48.77 16.698-8.415-4.869c-1.419-.822-3.2.198-3.2 1.843v12.337l-5.974-3.422a10.405 10.405 0 0 0-10.362 0l-5.973 3.422v-12.37c0-1.645-1.782-2.632-3.201-1.842L3.23 16.697a3.135 3.135 0 0 0-1.584 2.731v11.614c0 .822.198 1.579.594 2.27.396.69.924 1.283 1.617 1.743l4.356 2.764 3.333 2.105c2.013 1.283 4.554 1.152 6.468-.263l.264-.197.066-.066 5.016-3.816c1.452-1.119 3.861-1.119 5.346 0l4.983 3.783.297.23c1.881 1.415 4.455 1.514 6.468.263l3.333-2.105 4.357-2.764a4.557 4.557 0 0 0 1.617-1.743c.362-.691.593-1.448.593-2.27v-11.58a3.135 3.135 0 0 0-1.584-2.731v.032Z"
      />
      <path
        fill="currentColor"
        d="M37.19 33.375v4.135c0 1.27-.923 2.312-2.044 2.312-1.12 0-.988-.228-1.516-.619l-4.977-3.777c-1.45-1.107-3.856-1.107-5.34 0l-5.01 3.777c-.494.358-.823.488-1.285.488-1.153 0-2.208-.846-2.208-2.214v-4.102l7.152-4.558a7.483 7.483 0 0 1 8.043 0l7.185 4.46v.098Z"
      />
      <path
        fill="currentColor"
        d="M37.19 25.906v7.663l-7.118-4.578c-2.45-1.592-5.595-1.592-8.078 0l-7.184 4.578v-7.663l5.992-3.45c3.212-1.858 7.151-1.858 10.396 0l5.992 3.45ZM50.354 19.415v11.56c0 .821-.197 1.576-.592 2.266l-12.572-7.29V13.634c0-1.642 1.777-2.627 3.192-1.839l8.393 4.86a3.13 3.13 0 0 1 1.58 2.726v.033Z"
      />
      <path
        fill="currentColor"
        d="M14.81 13.615v12.34L2.238 33.241a4.476 4.476 0 0 1-.592-2.264V19.39c0-1.116.592-2.166 1.58-2.724l8.392-4.858c1.415-.82 3.192.197 3.192 1.838v-.032ZM34.895 39.853c1.126 0 2.186-.883 2.186-2.127V33.57l6.691 4.222-3.379 2.127c-2.02 1.276-4.604 1.178-6.492-.262l-.331-.262c.463.327.86.458 1.325.458Z"
      />
      <path
        fill="currentColor"
        d="M49.696 33.327c-.36.693-.916 1.287-1.604 1.749l-4.322 2.772-6.58-4.224V26l12.506 7.36v-.033ZM14.93 37.726c0 1.287 1.066 2.276 2.2 2.144.5-.066.9-.132 1.3-.428l-.3.23c-1.9 1.419-4.5 1.518-6.535.264l-3.367-2.11 6.702-4.256v4.156Z"
      />
      <path
        fill="currentColor"
        d="M14.81 26v7.602l-6.58 4.246-4.322-2.764a4.543 4.543 0 0 1-1.604-1.745l12.506-7.306V26Z"
      />
    </svg>
  }
  name="Weaviate"
  url="https://weaviate.io"
/>

[Weaviate](https://weaviate.io) is an open-source vector database, and of the
first to market, meaning they have a very deep feature set.

### Features

Weaviate provides semantic search, hybrid scoring, gRPC, and GraphQL support. It
supports multi-modal inputs (text, image, video) and offers built-in embedding
options provided by third party integrations. You can self-host or use their
cloud service.

Weaviate has two pricing models, a classic cloud deployable model where you pay
for "AIU"s and a more transparent serverless pricing model. Serverless
[pricing](https://weaviate.io/pricing/serverless) is usage based on stored
vector dimensions and query usage, with a starting plan around $25/month. Our
test of 1536 dimensions with 1 million reads and writes works out to $153 but if
you choose the less performant compression version, it's only $25.

### Drawbacks

- gRPC and GraphQL API has a learning curve.
- Relatively high cost compared to other solutions.
- Complicated pricing.

---

## Milvus/Zilliz [#milvus-zilliz]

<TechnologyCover
  logo={
    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 53 53">
      <path
        fill="currentColor"
        d="M25.5 35.042c4.617 0 8.36-3.817 8.36-8.526 0-4.71-3.742-8.527-8.36-8.527-4.616 0-8.36 3.817-8.36 8.527 0 4.709 3.744 8.526 8.36 8.526Z"
      />
      <path
        fill="currentColor"
        fillRule="evenodd"
        d="M12.817 14.482c6.63-6.643 17.381-6.643 24.011 0 6.641 6.643 6.641 17.413 0 24.045-6.63 6.632-17.38 6.632-24.01-.01L1.98 27.659a1.64 1.64 0 0 1 0-2.32l10.837-10.857Zm3.812 20.855c4.868 4.878 12.769 4.878 17.637 0 4.869-4.88 4.869-12.785-.01-17.664-4.869-4.879-12.77-4.879-17.638 0l-7.965 7.972c-.47.479-.47 1.24 0 1.71l7.976 7.982Z"
        clipRule="evenodd"
      />
      <path
        fill="currentColor"
        d="m46.255 20.481 4.773 4.868c.63.642.63 1.677 0 2.33l-4.773 4.868c-.278.283-.758.022-.672-.381.822-3.713.822-7.59 0-11.304-.096-.403.384-.675.672-.381Z"
      />
    </svg>
  }
  name="Milvus/Zilliz"
  url="https://milvus.io"
/>

[Milvus](https://milvus.io) is a highly scalable, open-source vector database
built for billions of vectors. The hosted/managed version of Milvus is called
Zilliz.

### Features

Milvus supports distributed deployments on Kubernetes and includes more indexing
strategies than any other competitor we could find such as IVF, HNSW, and
DiskANN. It's best suited for enterprise-scale use cases where infrastructure is
not a bottleneck. Costs come down to your infrastructure and operations
complexity. Milvus uses collections rather than namespaces.

Zilliz has a [pricing calculator](https://zilliz.com/pricing#calculator).
Pricing for serverless 1536 dimension vector with 1 million reads and 1 million
writes is $89. There is also a dedicated version which estimates a cost of $114.
They also offer a free plan with up to 5gb of storage.

Zilliz has SOC2 compliance and available SLAs.

### Drawbacks

- Setup and scaling complexity.
- More expensive compared to other options.

---

## sqlite-vec and Turso Vector [#sqlite-vec-and-turso-vector]

<TechnologyCover
  logo={
    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 53 53">
      <path
        fill="currentColor"
        d="m51.172 2.24-1.22-.91-2.405 2.576-1.93-2.786-1.11.509 1.525 3.896-.706.758L39.844.5l-1.244.615 4.875 10.478-4.567 1.606H38.8l-2.477-2.945-2.478 2.947H19.488l-2.478-2.947-2.483 2.954h-.08l-4.594-1.615L14.73 1.115 13.491.5 8.009 6.28l-.708-.756L8.828 1.63 7.72 1.117 5.791 3.907 3.38 1.328l-1.22.914L5.91 8.495 3.98 10.53l.674 5.145 4.466 1.706-.005 2.223H4.886v.962L6.521 22.9l2.593.938v15.104l6.624 9.858 1.519 3.699 2.385-3.48 2.474 3.48 2.165-3.48 2.386 3.48 2.387-3.48 2.163 3.48 2.472-3.48 2.387 3.48 1.52-3.696 6.625-9.859V23.84l2.591-.938 1.638-2.335v-.962h-4.23l.007-2.232 4.45-1.699.675-5.146-1.929-2.034 3.748-6.253ZM31.823 42.796H18.071l1.718-3.5 1.72 3.5 1.719-2.347 1.718 2.346 1.72-2.346 1.719 2.346 1.72-2.346 1.718 2.346 1.718-3.499 1.72 3.5h-3.438Zm8.42-16.012-7.15 2.349-.31 6.632-6.125 1.358-6.123-1.358-.308-6.63-7.15-2.351V23.24l9.243 2.622-.113 8.94h8.903l-.112-8.942 9.243-2.62.002 3.543Z"
      />
    </svg>
  }
  name="Turso Vector"
  url="https://turso.tech"
/>

SQLite is the world's most deployed database because it's fast and embeddable.
sqlite-vec is an extension to SQLite and also the successor to sqlite-vss, an
earlier and less performant solution by the same author. Sqlite-vec is
particularly appealing in situations where each customer or user has their very
own database instance leading to nearly unlimited horizontal scalability.

If you'd rather not deal with the infrastructure behind using SQLite in the
cloud, [Turso.tech](https://turso.tech) offers their own hosted sqlite solution
with built-in vector support.

### Features

Turso's solution has no extension to install and the API is easy as it's just a
type of database. However, it's important to note that the libSql version is not
the same as sqlite-vec, so you won't be able to migrate between the two.

If you want to accomplish a hybrid search with both full text search and vector
search, you'll need a separate full text search extension such as FTS5, which
also comes preloaded when using Turso.

Rather than using namespaces, you can use a separate database for each client to
achieve true multi-tenancy or even per-user tenancy. With Turso, reads are also
done from local replicas which makes latency extremely low.

Turso has extremely low pricing including a free tier and up to 25 million
queries for only $5/month. Enterprise features such as SOC2 and HIPAA will bump
to their enterprise plan which starts around $400/month.

If you're running sqlite in embedded manner, the performance will be limited to
what hardware is available on the client. This may be fine for local chat memory
or limited documentation, but this won't scale to millions of documents.

### Drawbacks

- Won't handle massive single databases, but an excellent choice for horizontal
  scaling.
- Won't run natively on many edge networks without an HTTP remote client as
  offered by
  [libSql remote protocol](https://docs.turso.tech/sdk/http/reference).

---

## MongoDB Atlas Vector Search [#mongodb-atlas-vector-search]

<TechnologyCover
  logo={
    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 53 53">
      <path
        fill="currentColor"
        d="M37.585 21.203C34.846 9.113 28.372 5.139 27.677 3.62c-.607-.854-1.149-2.067-1.593-3.12-.078 1.073-.119 1.484-1.133 2.565-1.567 1.227-9.616 7.978-10.27 21.71-.611 12.81 9.252 20.443 10.59 21.416l.152.108c.28 2.062.518 4.13.715 6.201h1.042a61.726 61.726 0 0 1 1.105-6.652 15.064 15.064 0 0 0 1.842-1.501 24.574 24.574 0 0 0 7.885-18.339c.021-1.764-.224-3.6-.427-4.805ZM26.023 38.957s0-17.963.596-17.961c.462 0 1.062 23.172 1.062 23.172-.826-.097-1.658-3.813-1.658-5.21Z"
      />
    </svg>
  }
  name="MongoDB Atlas Vector Search"
  url="https://www.mongodb.com/products/platform/atlas-vector-search"
/>

If you're already a Mongo user, then this may be an attractive solution to keep
your stack simple.

### Features

Much like pgvector and sqlite-vec, MongoDB's solution exists within a database
you may already be familiar with. As with those solutions, be prepared for
increased memory usage for vector indexes.

Pricing is difficult to calculate with atlas as their calculator does not have
vector specific pricing and it's usage based on instance size. MongoDB does have
a free community edition under the
[Server Side Public License](https://www.mongodb.com/legal/licensing/server-side-public-license).

MongoDB has many options for clients, supports
[hybrid searching](https://www.mongodb.com/docs/atlas/atlas-vector-search/hybrid-search/),
and is only limited by scaling strategy and hardware.

---

## Chroma [#chroma]

<TechnologyCover
  logo={
    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 53 53">
      <path
        fill="currentColor"
        d="M16.667 42.5c-8.837 0-16-7.163-16-16s7.163-16 16-16c2.913 0 5.643.782 7.996 2.143-4.78 2.767-7.996 7.936-7.996 13.857v16Zm20-32c8.836 0 16 7.163 16 16s-7.164 16-16 16c-2.915 0-5.645-.782-7.998-2.144 4.78-2.767 7.998-7.935 7.998-13.856v-16Z"
      />
    </svg>
  }
  name="Chroma"
  url="https://www.trychroma.com"
/>

[Chroma](https://www.trychroma.com) is an open-source serverless database that
bills itself as the "retrieval database for AI".

### Features

Chroma has full-text, metadata, and vector search available. Rather than
namespaces, it uses collections and above that is databases and tenants.
Interestingly, internally Chroma uses
[sqlite](https://cookbook.chromadb.dev/core/concepts/#distance-function) and
object storage much of its functionality.

Chroma has many SDK clients as well as an HTTP API available for use with any
language. Chroma's documentation is lacking in some areas, especially the
open-source clients, but it's simple enough that we found getting started was no
problem.

Chroma's cloud offering has simple usage based pricing with a nice pricing
[calculator](https://www.trychroma.com/pricing) which works out to $81 for 1536
dimension vector with 1 million writes and 1 million queries.

---

## Redis [#redis]

<TechnologyCover
  logo={
    <svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 52 52">
      <path
        fill="currentColor"
        d="M49.205 28.98c-3.597 4.533-7.48 9.713-15.249 9.713-6.94 0-9.527-6.12-9.707-11.093 1.52 3.215 4.492 5.817 9.13 5.698 8.92-.288 15.037-8.346 15.037-15.684 0-8.775-6.547-15.106-17.914-15.106-8.129 0-18.2 3.094-24.819 7.984-.071 5.037 2.735 11.583 3.742 10.864 5.737-4.126 10.287-6.782 14.699-8.112C17.594 20.528 1.92 37.44 0 40.42c.217 2.732 3.597 10.07 5.252 10.07.503 0 .934-.287 1.439-.79 4.212-4.71 8.217-9.6 12.003-14.658.481 6.726 3.787 14.946 13.03 14.946 8.275 0 16.476-5.971 20.215-19.424.434-1.655-1.581-2.949-2.732-1.582l-.002-.002ZM39.782 18.12c0 4.244-4.173 6.33-7.984 6.33-2.039 0-3.605-.535-4.842-1.23 2.277-3.45 4.532-6.988 6.954-10.775 4.273.724 5.872 3.098 5.872 5.675Z"
      />
    </svg>
  }
  name="Redis"
  url="https://redis.io"
/>

[Redis](https://redis.io) 8.0 introduced a new native vector type that makes it
one of the fastest in terms of raw speed. Redis also recently switched back to
open-source under an AGPL license after a controversial closing which led to the
success of forks such as Valkey.

### Features

If you're already familiar with Redis, then it's a solid choice, but as with
other solutions, you need to consider the size and shape of documents you wish
to store. Redis achieves its performance by keeping everything in memory, and
while this is super fast, it also means you need the hardware to support it. It
can also use SSD, but it will suffer some performance loss.

Redis offers up to 30mb for free and 1gb for $5/month. They also have flexible
options for hosting on AWS, Azure, and GCP.

---

## Summary table

<Table scrollable>
  <TableHead>
    <TableRow>
      <TableCell subtle={false} header width={170} align="left">
        Provider
      </TableCell>
      <TableCell header width={130} align="left">
        Open-source
      </TableCell>
      <TableCell header width={190} align="left">
        Built-in embeddings
      </TableCell>
      <TableCell header width={240} align="left">
        Max namespaces/indexes
      </TableCell>
      <TableCell header width={240} align="left">
        Max vectors per index
      </TableCell>
      <TableCell header width={120} align="left">
        Self-host
      </TableCell>
      <TableCell header width={440} align="left">
        Cost per 1536 dimension vector, 1M reads, 1M writes
      </TableCell>
    </TableRow>
  </TableHead>
  <TableBody>
    <TableRow>
      <TableCell width={170} align="left" subtle={false}>
        Turbopuffer
      </TableCell>
      <TableCell width={130} align="left">
        No
      </TableCell>
      <TableCell width={190} align="left">
        No
      </TableCell>
      <TableCell width={240} align="left">
        No hard limit
      </TableCell>
      <TableCell width={240} align="left">
        No hard limit
      </TableCell>
      <TableCell width={120} align="left">
        No
      </TableCell>
      <TableCell width={440} align="left">
        $9.36
      </TableCell>
    </TableRow>
    <TableRow>
      <TableCell width={170} align="left" subtle={false}>
        Pinecone
      </TableCell>
      <TableCell width={130} align="left">
        No
      </TableCell>
      <TableCell width={190} align="left">
        Yes
      </TableCell>
      <TableCell width={240} align="left">
        100k namespaces / 20 indexes
      </TableCell>
      <TableCell width={240} align="left">
        ~Unlimited*
      </TableCell>
      <TableCell width={120} align="left">
        No
      </TableCell>
      <TableCell width={440} align="left">
        $41
      </TableCell>
    </TableRow>
    <TableRow>
      <TableCell width={170} align="left" subtle={false}>
        Qdrant
      </TableCell>
      <TableCell width={130} align="left">
        Yes
      </TableCell>
      <TableCell width={190} align="left">
        No
      </TableCell>
      <TableCell width={240} align="left">
        No enforced limit
      </TableCell>
      <TableCell width={240} align="left">
        No enforced limit
      </TableCell>
      <TableCell width={120} align="left">
        Yes
      </TableCell>
      <TableCell width={440} align="left">
        $102*
      </TableCell>
    </TableRow>
    <TableRow>
      <TableCell width={170} align="left" subtle={false}>
        pgvector
      </TableCell>
      <TableCell width={130} align="left">
        Yes
      </TableCell>
      <TableCell width={190} align="left">
        No
      </TableCell>
      <TableCell width={240} align="left">
        Based on Postgres infra
      </TableCell>
      <TableCell width={240} align="left">
        Based on infra
      </TableCell>
      <TableCell width={120} align="left">
        Yes
      </TableCell>
      <TableCell width={440} align="left">
        N/A
      </TableCell>
    </TableRow>
    <TableRow>
      <TableCell width={170} align="left" subtle={false}>
        Cloudflare Vectorize
      </TableCell>
      <TableCell width={130} align="left">
        No
      </TableCell>
      <TableCell width={190} align="left">
        Yes
      </TableCell>
      <TableCell width={240} align="left">
        50k namespaces
      </TableCell>
      <TableCell width={240} align="left">
        5M vectors
      </TableCell>
      <TableCell width={120} align="left">
        No
      </TableCell>
      <TableCell width={440} align="left">
        $47
      </TableCell>
    </TableRow>
    <TableRow>
      <TableCell width={170} align="left" subtle={false}>
        Weaviate
      </TableCell>
      <TableCell width={130} align="left">
        Yes
      </TableCell>
      <TableCell width={190} align="left">
        Yes
      </TableCell>
      <TableCell width={240} align="left">
        Based on infra
      </TableCell>
      <TableCell width={240} align="left">
        Based on infra
      </TableCell>
      <TableCell width={120} align="left">
        Yes
      </TableCell>
      <TableCell width={440} align="left">
        $153.78*
      </TableCell>
    </TableRow>
    <TableRow>
      <TableCell width={170} align="left" subtle={false}>
        Milvus/Zilliz
      </TableCell>
      <TableCell width={130} align="left">
        Yes
      </TableCell>
      <TableCell width={190} align="left">
        No
      </TableCell>
      <TableCell width={240} align="left">
        Based on cluster config
      </TableCell>
      <TableCell width={240} align="left" disabled>
        –
      </TableCell>
      <TableCell width={120} align="left">
        Yes
      </TableCell>
      <TableCell width={440} align="left">
        $89.55
      </TableCell>
    </TableRow>
    <TableRow>
      <TableCell width={170} align="left" subtle={false}>
        sqlite-vec / Turso
      </TableCell>
      <TableCell width={130} align="left">
        Yes
      </TableCell>
      <TableCell width={190} align="left">
        No
      </TableCell>
      <TableCell width={240} align="left">
        N/A
      </TableCell>
      <TableCell width={240} align="left" disabled>
        –
      </TableCell>
      <TableCell width={120} align="left" disabled>
        –
      </TableCell>
      <TableCell width={440} align="left">
        $4.99
      </TableCell>
    </TableRow>
    <TableRow>
      <TableCell width={170} align="left" subtle={false}>
        Chroma
      </TableCell>
      <TableCell width={130} align="left">
        Yes
      </TableCell>
      <TableCell width={190} align="left">
        No
      </TableCell>
      <TableCell width={240} align="left">
        Unlimited
      </TableCell>
      <TableCell width={240} align="left" disabled>
        –
      </TableCell>
      <TableCell width={120} align="left">
        Yes
      </TableCell>
      <TableCell width={440} align="left">
        $81
      </TableCell>
    </TableRow>
    <TableRow>
      <TableCell width={170} align="left" subtle={false}>
        Mongo Atlas
      </TableCell>
      <TableCell width={130} align="left">
        Yes
      </TableCell>
      <TableCell width={190} align="left">
        No
      </TableCell>
      <TableCell width={240} align="left">
        Based on infra
      </TableCell>
      <TableCell width={240} align="left">
        Based on infra
      </TableCell>
      <TableCell width={120} align="left">
        Yes-ish
      </TableCell>
      <TableCell width={440} align="left">
        N/A
      </TableCell>
    </TableRow>
    <TableRow>
      <TableCell width={170} align="left" subtle={false}>
        Redis
      </TableCell>
      <TableCell width={130} align="left">
        Yes
      </TableCell>
      <TableCell width={190} align="left">
        No
      </TableCell>
      <TableCell width={240} align="left">
        Based on infra
      </TableCell>
      <TableCell width={240} align="left">
        Based on infra
      </TableCell>
      <TableCell width={120} align="left">
        Yes
      </TableCell>
      <TableCell width={440} align="left">
        N/A
      </TableCell>
    </TableRow>
  </TableBody>
</Table>