Inspiration

Choosing something to watch or listen to with friends can become an endless exchange of suggestions. Everyone brings a different cultural world, and finding the connection between those worlds is part of the fun.

Taste Heist grew from that idea: what if discovering something together felt like a small adventure? We wanted people to share their tastes, get curious about each other, and leave with something they actually wanted to experience together.

What it does

Taste Heist is a cooperative cultural-discovery game for 2–4 players.

Each player brings two to four favourite films, books or artists. Qloo researches their tastes, and players privately mark recommendations as familiar, new or skipped.

The crew then chooses an adventure:

  • Find a new favourite: explore a recommendation supported across the crew’s profiles and confirmed as new to everyone.
  • Pass a good thing on: introduce something familiar to an accomplice. When no shared recommendation qualifies, the crew can choose a real favourite contributed by a player.

Together, players work through three rooms: decode a secret signal, agree on a cultural discovery, and assemble an escape sequence. Private clues give every player a role.

The heist ends with one agreed discovery for the whole crew, accompanied by a downloadable dossier showing the connections behind it.

How we built it

The frontend uses HTML, CSS and native JavaScript modules. Animated clay characters, expressive typography, light and dark themes, optional sound and reduced-motion support give the archive its personality.

The backend runs on Node.js, with SQLite storing crew progress and authenticated sessions. WebSockets, supported by reconnect and polling behavior, keep players synchronized.

We integrated the official Qloo harness for live entity search and independent recommendation research. The backend compares returned entity IDs across profiles, combines that evidence with players’ familiarity checks, and prepares the available discoveries.

Cards use real provider metadata and available artwork. Credentials stay on the server, and artwork passes through an authenticated image proxy.

Challenges we ran into

Group recommendations introduced several challenges.

A recommendation can fit someone’s taste while already being familiar to them. We needed explicit familiarity checks to describe a discovery honestly.

Different profiles can also produce no shared recommendation. We built a genuine crew-favourite path so the adventure can continue without inventing a match.

Multiplayer agreement required careful coordination. Each player needed control over their own progress, while the final result had to remain identical for everyone. The server now locks the discovery only after unanimous agreement.

We also worked through interrupted provider requests, reconnecting clients, repeated actions and saved-game recovery.

Accomplishments that we're proud of

  • Making cultural discovery a shared, playful experience.
  • Giving every player useful private information and a voice in the final choice.
  • Connecting live Qloo research to interactive cards and transparent source evidence.
  • Keeping the adventure playable when recommendation lists have no overlap.
  • Passing 118 automated tests, including multiplayer journeys, conflicting choices, artwork access and restart recovery.

What we learned

Cultural affinity, familiarity and willingness to explore are separate signals. A satisfying group recommendation needs room for all three.

We also learned how much multiplayer enjoyment depends on small interaction decisions: clear progress, easy agreement, reliable recovery and knowing that your choice matters.

What's next for Taste Heist

We want to add durable storage for the hosted demo, richer explanations of cultural connections, more puzzle variations, and a shared collection where crews can revisit discoveries and record what they experienced together.

Play Taste Heist — the free-hosted demo may take about a minute to wake up on its first visit.

Built With

Share this project:

Updates

Submission history