Inspiration
Choosing a film together is a negotiation between people. TasteBridge starts with the films and artists each friend already loves, then uses Qloo to make the trade-offs visible.
What it does
Two to four people search for a favorite movie or music artist and confirm an actual Qloo entity. A bounded AI agent retrieves a candidate list for every confirmed member, then asks the application to compare those lists. The interface shows three films, real posters and metadata when available, and each friend's candidate-rank evidence.
The group score weights average and weakest-member rank utility equally. It is a relative ranking, not a probability that someone will enjoy a film. A missing rank means that film was not returned in that person's query; it does not mean dislike.
When a friend has already seen a displayed film, its exact entity is excluded and the agent generates a revised shortlist. Up to three successful watched-film updates are supported. Failed updates retain the previous valid shortlist.
Why Qloo matters
The language model does not invent movie candidates or taste affinities. Qloo's official hackathon /search endpoint resolves movie and artist identities, and /v2/insights supplies 20 movie candidates per member. The application combines the returned candidate order into a transparent group ranking. Returned data is retrieved at runtime; captured Qloo responses and API keys are excluded from the public repository.
How we built it
React, TypeScript and Vite provide the cinematic group workspace. The live application runs on Cloudflare Workers Free with Static Assets, native Workers AI and D1. The planner uses @cf/meta/llama-3.3-70b-instruct-fp8-fast and is offered only tools valid for the current stage: refine_preferences, recommend_for_group or rank_for_group. Parameter-free stages are constrained to empty arguments, and the server validates every proposed operation.
D1 persists sessions, confirmed choices, versioned groups, results, cache entries, shared leases and physical-request quotas. Version checks reject stale updates, and only films in the current shortlist can be marked watched. Four model attempts and eight tools bound each workflow. Secrets remain server-side. No payment card or paid fallback was enabled.
The repository also preserves the original Python/FastAPI local prototype with Codex CLI planning. The English video shows that earlier local prototype; the public application uses the separate native Workers AI runtime.
Challenges and lessons
We learned to keep cultural evidence separate from generated prose. Qloo's rich film responses also exceeded an overly small initial response limit. We raised the finite bound to one MiB and retained only card metadata in the cache. Live testing exposed unwanted parameters at a later planning stage; tightening the model's output schema resolved that feedback failure while preserving server validation.
Validation and limitations
On October 9, the public application completed a mixed movie/music workflow and three successive exact watched-film updates. Earlier failed updates preserved the previous result, and retrying the same watched film succeeded after the fix. The source passed 146 Worker tests, 216 Python tests with one live test deselected, and 84 frontend tests. Backend, frontend and Worker CI jobs passed.
The hosted demonstration shares free infrastructure and provider quotas. Busy, quota, timeout or invalid-model errors can interrupt a request. CPU and concurrency capacity are not guaranteed by this small live sample. Missing posters or explanation metadata use honest fallback displays. Four-member resource limits and version/isolation behavior are tested offline; no production load-test claim is made.
Try it
Codex and Claude assisted implementation, interface work and video preparation. The video uses AI/TTS narration and discloses AI assistance.
What's next
Evaluate recommendations with more groups, improve the preference collection flow, and measure hosted performance under concurrency while keeping per-member Qloo evidence visible.
Built With
- cloudflare-workers
- python
- qloo
- react
- typescript
- workers-ai
Log in or sign up for Devpost to join the conversation.