Turn on pgvector in Supabase, generate embeddings for your content, and add semantic search that finds results by meaning.
Make search in my app understand meaning, not just exact words
How it works
- Enable the vector extension: Vovy opens Supabase, goes to Database, then Extensions, and enables vector. It lets Postgres store embeddings, number lists that capture meaning.
- Add an embedding column: Vovy asks Claude Code for a migration adding a vector column sized to your model, like 1536 for text-embedding-3-small, plus an HNSW index for speed.
- Embed your existing content: Claude Code writes a one-time script that sends each row to the embeddings API and saves the result. Vovy shows the estimated cost first.
- Create a match function: Claude Code adds a Postgres function that finds the closest rows to a query embedding, callable from your app with supabase.rpc.
- Test with real searches: Vovy runs searches like "cheap place to eat" against your data and shows a table of old keyword results next to the new ones.
What you provide
- A Supabase project with your content
- An OpenAI API key
- Your app's code
What you get
- pgvector enabled
- Embeddings for your content
- A semantic search function
- A before and after comparison
FAQ
Do I need a separate vector database?
Not for most apps. pgvector in Supabase handles up to millions of rows and keeps everything in one place.
What does embedding cost?
Small embedding models are very cheap, often cents for thousands of short documents. Vovy estimates before running.
What happens when content changes?
New or edited rows need fresh embeddings. Vovy can add a trigger or edge function to do that automatically.
Related tasks
All tasks