Our technology stack
pgvector
pgvector adds vector similarity search to PostgreSQL, letting us build semantic search and RAG on the database you already run — often removing the need for a separate, specialised vector database.
Modern AI features depend on embeddings — numerical representations of text, images, or other data that place similar things close together in a high-dimensional space. Searching those embeddings by similarity is what powers semantic search and retrieval-augmented generation (RAG). pgvector brings that capability directly into PostgreSQL.
The significance is architectural. Instead of standing up and operating a dedicated vector database alongside your primary one, many products can keep everything in Postgres — relational data and embeddings together, queried with the same SQL, backed up and secured as one system. Fewer moving parts, less to operate, and no data synchronisation problem between two stores.
Why pgvector over a dedicated vector database
Specialised vector databases are powerful, but they add a whole system to run, secure, back up, and keep in sync with your source data. For the large majority of products, pgvector in the Postgres you already operate is simpler and more than fast enough — and it keeps your embeddings right next to the records they describe.
That co-location is a genuine advantage: you can combine vector similarity with ordinary SQL filters in a single query — 'find the most relevant documents this user is allowed to see, from the last 30 days' — without shuttling data between systems. Doing that across two separate databases is exactly the kind of complexity pgvector removes.
How we build RAG with pgvector
We build the full retrieval pipeline: chunking your documents sensibly, generating embeddings, storing them in Postgres with pgvector, and indexing them for fast approximate nearest-neighbour search. At query time, we embed the user's question, retrieve the most relevant chunks, and feed them to the language model as grounded context.
The result is AI that answers from your actual content rather than the model's memory — accurate, up to date, and able to cite sources. Because retrieval lives in Postgres, we can layer in permissions, freshness filters, and metadata directly, which is what makes RAG safe and precise in real products rather than a generic demo.
When you outgrow pgvector
pgvector scales comfortably to millions of vectors with proper indexing, which covers the vast majority of applications. If you reach the scale where a purpose-built vector database genuinely wins — hundreds of millions of vectors, extreme query volumes — we'll recognise it and migrate the retrieval layer, keeping the rest of the architecture intact.
That staged approach means you don't pay for complexity you don't need. Start simple with pgvector on the database you already run; add specialised infrastructure only if and when your scale actually demands it. Most products never need to.
What you get
AI search in your database
Semantic search and RAG in the Postgres you already run — no separate vector store to operate.
Vectors plus SQL filters
Combine similarity with permissions, dates, and metadata in one query.
Simple now, scalable later
Handles millions of vectors; migrate to specialised infra only if you truly outgrow it.
How we work
- 01
Discover
We pressure-test the idea, map the users, and define the smallest thing worth building. You leave with a plan, not a proposal.
- 02
Design
Flows, prototypes, and a design system that makes the product feel real before a line of production code ships.
- 03
Build
Weekly releases in your stack. You see working software every Friday and steer with real feedback, not guesses.
- 04
Scale
We harden, instrument, and document the system — then hand off cleanly, or stay embedded. It runs without us.
Explore more technologies
Frequently asked questions
Do we need a separate vector database?
Usually not. For most products, pgvector in your existing Postgres is simpler and fast enough, keeping embeddings alongside your data. A dedicated vector DB only wins at very large scale.
What is pgvector used for?
Storing and searching embeddings for semantic search and retrieval-augmented generation (RAG) — the retrieval layer that grounds AI answers in your own content.
How many vectors can pgvector handle?
With proper indexing, comfortably into the millions — enough for the large majority of applications. We migrate to specialised infrastructure only if you truly outgrow it.
Can we filter vector search by other fields?
Yes — that's a key advantage. Because it's Postgres, you combine similarity search with SQL filters like permissions, dates, and metadata in a single query.
Let’s build
Have something worth building?
Tell us what you’re working on. We’ll come back within one business day with real, specific thoughts — not a sales deck.