Skip to content

kyisaiah47/mutuals

Repository files navigation

banner

🪩 mutuals

find people who love what you love

culture-centered reddit, with AI taste profiles for individuality

Next.js TypeScript Supabase Claude License: MIT YouTube


Tell mutuals 8–10 things you love — bands, films, books, games, places — and it builds your page: an AI-written taste profile, a hand-drawn avatar you pick, and a room for every single thing. Each room is a tiny subreddit (m/radiohead, m/twinpeaks) with titled threads and comments, populated automatically by everyone who shares that thing. Matching runs on real taste overlap, and contact info only unlocks when two people wave at each other.

how it works

  • onboarding wizard — type your things one at a time (they pop into colorful chips), Claude sorts them into categories, you claim mutuals/u/yourname with a password and pick an Open Peeps face
  • your page — public, shareable taste profile: AI-written headline/description/traits, your things as chips, your top 8 mutuals, and a wall for notes. Links unfurl with a generated OG card
  • rooms — every thing is its own forum. Threads have titles and comments; empty rooms get one AI-written starter thread the first time someone walks in
  • matching — weighted Jaccard similarity over your things plus Claude-expanded "taste fingerprints" (loving Radiohead also signals Portishead, Thom Yorke…)
  • waves — wave at someone; if they wave back, you both unlock each other's contact info
  • activity — waves, comments, hearts, and wall notes land in your activity feed with an unread badge

stack

Next.js 15 (App Router) · TypeScript · Tailwind 4 · Supabase (Postgres + Auth) · Claude (Anthropic API, haiku) · DiceBear Open Peeps

running it

npm install

.env.local:

NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_publishable_or_anon_key
ANTHROPIC_API_KEY=your_anthropic_api_key

Run the SQL in supabase-schema.sql, then migration-waves-wall.sql, migration-avatar.sql, migration-rooms.sql, and migration-auth.sql (Supabase SQL editor, in that order). Enable mailer_autoconfirm in Auth settings — accounts use synthetic emails, so no mail is ever sent.

npm run dev

notes

  • identity on mutating APIs comes from the Supabase Auth bearer token, never the request body
  • pages created before auth existed can be claimed once via the login page
  • Claude-backed endpoints are IP rate-limited
  • there is no password recovery (synthetic emails) — remember your password

license

MIT

About

Social discovery app matching users by cultural taste — music, movies, books — powered by Qloo's Taste AI.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors