CommonGround: Fair Group Discovery
Inspiration
Choosing somewhere to go with friends, family, or a group can become a frustrating compromise. One person's interests can dominate, popular choices can overshadow individual tastes, and a simple vote may miss places that connect different members of the group.
CommonGround explores a better approach: use cultural intelligence to discover relevant places while making the group's different interests visible. The goal is not to pretend everyone likes the same things, but to help people find meaningful options together.
What it does
CommonGround is a Qloo-powered group cultural discovery application. Members add their cultural interests, choose a destination, and explore recommendations informed by their individual tastes and the group profile.
Its main features include:
- Individual discovery: Retrieves destination-specific recommendations for each member's resolved cultural interests.
- Shared and Individual views: Separates candidates returned through multiple members' retrievals from those surfaced through one member's retrieval.
- Taste Bridge: Uses a balanced selection of group interests to explore additional group-profile recommendations through Qloo Insights. It attributes contributions to particular members only when supporting explainability data is available.
- Fair Mix Planner: Builds an editable shortlist of up to five recommendations, balancing shared candidates, underrepresented members, and source diversity.
- Transparent evidence: Explains why an item appears in the shortlist without presenting a ranking as proof of unanimous agreement.
- Practical controls: Members can review the plan, remove or restore recommendations, rebalance the shortlist, and copy a readable summary.
Importantly, a “Shared” result means that multiple members' individual retrievals surfaced the candidate. It does not claim that every member explicitly approved or endorsed it.
How I built it
I built CommonGround as a web application using React and TypeScript, with Qloo Search and Insights integrated through a server-side Supabase Edge Function. The Qloo API credential remains server-side rather than being embedded in the browser application.
The discovery workflow resolves selected interests, retrieves destination-specific recommendations for individual profiles, and combines the resulting evidence into clearly separated views. Taste Bridge adds a group-profile exploration path, while Fair Mix uses the existing discovery results to produce a practical shortlist without making extra Qloo requests.
I also developed a dedicated Fair Mix service and test suite to cover deterministic selection, member representation, source attribution, partial failures, editing, restoration, rebalancing, and summary generation. The current automated test suite passes 243 tests, and TypeScript checks, ESLint, and the production build pass.
Challenges and what I learned
One of the main challenges was combining multiple recommendation lists without confusing a shared result with a unanimous preference. Another was preserving trustworthy attribution when group-profile results do not contain enough explainability information to identify individual contributions.
I learned that a useful recommendation product needs more than relevant results. It also needs understandable evidence, careful handling of incomplete data, honest limitations, and controls that let people make the final decision. Keeping Qloo requests behind a server-side proxy was also important for protecting API credentials.
Potential impact
CommonGround is designed for friends planning outings, families with different interests, visitors exploring a destination, and other groups that want to discover places together. By making both common ground and individual contributions visible, it can help groups move from endless discussion toward a shortlist that reflects a broader range of tastes.
The guiding principle is simple: help groups discover what they could enjoy together without hiding what makes each person different.
Built With
- application
- bolt.new
- javascript
- qloo-api
- react
- rest-api
- supabase
- supabase-edge-functions
- typescript
- web

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