This app uses Amazon S3 Vectors with Next.js and Vercel (view source).
The top 5000 movies from TMDB were embedded with Amazon Titan Text Embeddings V2 and stored in an S3 Vectors index. Searching embeds your query the same way and asks the index for its nearest neighbours by cosine distance.
Nothing is matched on text. A LIKE query only finds words that literally appear in the data, so describing a plot finds nothing; comparing vectors matches on meaning, and finds the film without sharing a single word with it.
Credentials are never hardcoded: Vercel issues an OIDC token for the deployment, which is exchanged for short-lived AWS credentials via OIDC Federation.
There is no cluster or instance to size, and nothing to keep warm — vectors live in S3 and you are billed for what you store and query. That suits workloads with a large corpus and modest query rates, where a provisioned vector database spends most of its life idle.
Because an index charges for storage and per query rather than by the hour, the dimension count is a direct cost lever: Titan V2 can emit 256 or 512 dimensions instead of 1024, shrinking both. Measured on this corpus the shorter vectors ranked noticeably worse, and at 4,799 movies the saving is a fraction of a cent a month, so these embeddings keep the full 1024. Learn more.
Describe a plot, a mood, or a premise. Vector search does not need your words to appear in the movie.