Inspiration
Recommendation systems are very good at answering one question:
“What else is similar to what I already like?”
But that is not always the problem.
Sometimes you already know where you want to go. You want to understand jazz, get into a band your friends love, finally read a famous science-fiction series, or discover why a filmmaker matters. You have tried before, but something did not click.
The gap is not a lack of recommendations. It is a lack of a way in.
That led to Acquired: a cultural discovery agent built around a different question:
How do we get from what you already love to a destination you have chosen, without making the jump feel too large?
There is an early precedent for this idea in Paul Lamere's 2012 Boil the Frog, which created gradual musical paths between two artists. Acquired extends that idea beyond a similarity chain. It works across cultural media, starts from the individual user's taste, and treats the reason they previously bounced off a destination as part of the routing problem.
What it does
Acquired builds a 3–10 stop cultural route from familiar territory to a specific destination.
The user gives the agent four kinds of information:
- Destination — where they actually want to end up.
- Familiar favorites — cultural anchors the route can start from.
- Barrier — what made the destination difficult before: pacing, density, style, context, length, tone, or something else.
- Motivation — why they want to make the journey now.
This makes Acquired different from an open-ended discovery tool. It is not trying to keep the user wandering indefinitely from one interesting thing to another.
It is navigation, not roaming.
Acquired resolves the exact cultural entities, uses Qloo to measure relationships around the user's anchors and destination, and builds a sequence of intermediate works intended to make the transition more gradual.
Then the route becomes interactive.
At each stop, the user can sample the work and rate:
- familiarity,
- unfamiliarity,
- and liking.
They can skip something that does not fit, replace an individual stop, or mark a stumbling point. When a route needs to change, Acquired can rebuild the remaining path while preserving the stops already visited and the original destination.
Progress, ratings, replacements, and a final reflection can be saved and reopened later.
How we built it
Acquired is built with TypeScript, React, Next.js/Vinext, ChatGPT Sites, Cloudflare D1, Drizzle, and the Qloo API.
Qloo is not an enrichment layer added after the recommendation has already been chosen. It is part of the routing loop.
We use it to:
- resolve ambiguous cultural entities across media;
- measure associations from the user's familiar favorites;
- search backward from the chosen destination for plausible bridge works;
- evaluate replacement and reroute candidates;
- and provide measured evidence for connections when the available data supports it.
The routing system works backward from the destination rather than simply chaining the strongest forward similarity at every step. That lets the destination remain fixed while intermediate stops are selected for their role in the journey.
We also added safeguards for cases that repeatedly produced bad cultural routes during development. The system avoids recommending the destination itself too early, checks explicit series and sequel ordering when catalog evidence exists, preserves user constraints during rerouting, and never turns missing provider evidence into invented explanations.
Routes and walk sessions are stored separately in D1. Session updates use compare-and-swap persistence so stale browser state cannot silently overwrite newer progress. Visitor-owned data is scoped on the server, while Qloo credentials and guest-signing secrets remain server-side.
Challenges we ran into
The hardest part was discovering that a plausible recommendation is not automatically a good bridge.
A work can be strongly related to both ends of a route and still be wrong in sequence. A sequel can appear before its predecessor. A destination can accidentally show up as one of its own stepping stones. Two entities can share a name while referring to completely different works. A provider can return partial measurements that look authoritative unless the interface handles them carefully.
We also learned that real taste data is uneven.
Some queries produce rich relationships and explanations. Others provide only partial evidence. Rather than filling those gaps with generated certainty, Acquired records the limitation and tells the user when a connection cannot be fully explained.
That principle changed several parts of the product: route validation, error handling, explanation generation, and the language used in the interface.
Another challenge was keeping the experience usable on a phone. Walking a route involves the work itself, context, three ratings, skip and replacement actions, and navigation between stops. We iterated on the mobile layout until the core rating interaction could remain compact without reducing the controls into tiny targets.
Accomplishments that we're proud of
The part we are happiest with is that Acquired no longer behaves like a recommendation list with a progress bar attached.
The user's destination remains meaningful throughout the route.
The system can resolve ambiguous inputs, construct a measured path, preserve already visited stops during a reroute, replace a single weak bridge without rebuilding everything, respect explicit series order, and reopen a saved journey later with its progress intact.
We are also proud of the honesty of the evidence layer. When Qloo gives us enough information to explain why a stop belongs on the route, Acquired shows it. When it does not, the product says that instead of asking a language model to manufacture a convincing story.
What we learned
Our biggest product lesson was that discovery and transition are different problems.
People do not always need help finding something new. Sometimes they already know exactly what they want to understand; they need help crossing the distance between their current taste and that destination.
That changes what information matters.
A favorite tells us where someone is starting.
A destination tells us where they want to end.
But the barrier tells us why the obvious route failed before, and the motivation tells us what kind of journey might be worth continuing.
We also learned that an agent becomes more useful when it is allowed to revise the plan. A route generated once is only a hypothesis. Ratings, skipped works, replacements, and stumbling points give the agent evidence about how the journey is actually going.
What's next
The current version is a working public beta, but there is more we want to explore.
The next step is to make route adaptation more sensitive to what happens during the journey: not only whether the user liked a stop, but which kinds of bridges consistently help them cross a cultural gap.
We would also like to deepen support for different media and improve the evidence available for explaining why a particular bridge was chosen.
The long-term idea is simple:
Don't recommend what I already like. Take me somewhere new, slowly enough that I follow.
Built With
- chatgptsites
- cloudflare
- drizzleorm
- next.js
- pnpm
- qloo
- react
- typescript
- vinext

Log in or sign up for Devpost to join the conversation.