A multiplayer party game where players answer questions about themselves, and everyone else tries to guess who wrote each answer. Host a game, share a join code or QR code, and play in real time with friends.
- A host creates a game and gets a shareable game code / QR code.
- Players join using the code from their own device.
- The host adds questions manually or generates them with AI.
- Each round, players answer a question anonymously.
- Everyone guesses who wrote which answer, and scores are tracked based on how well players know each other.
- Frontend: React 19, Vite, React Router, Tailwind CSS,
qrcode.react - Backend: Node.js, Express
- Database/Auth: Supabase
- AI question generation: OpenRouter (via the OpenAI SDK)
GuessWho/
├── backend/ # Express API (routes, controllers, services, Supabase repository)
└── frontend/ # React + Vite client
- Node.js
- A Supabase project (URL + API key)
- An OpenRouter API key (optional, only needed for AI-generated questions)
cd GuessWho/backend
npm install
cp .env.example .env # fill in SUPABASE_URL, SUPABASE_KEY, and OPENROUTER_API_KEY
npm startThe API runs on http://localhost:3000 by default.
cd GuessWho/frontend
npm install
cp .env.example .env # set VITE_API_URL to the backend URL
npm run devThe frontend is configured to deploy on Netlify (see netlify.toml), building from GuessWho/frontend.