Two-person compatibility quiz. Person A takes it, sends a link to Person B, both see scored results with AI-generated insights when B is done.
- Fixed question set with personality scoring across multiple traits
- Person A submits answers → server returns a session ID + personality summary
- Person B opens the session link, submits answers → server scores compatibility, generates AI insights, and stores everything
/api/result/:idre-fetches a completed pairing- Per-IP rate limit (20 starts/joins per hour)
- AI insight generation is best-effort — failures don't block the result
Bun's built-in Bun.serve (no framework), SQLite via lib/db.js, scoring logic in lib/scoring.js, AI calls in lib/ai.js. Static frontend in public/.
bun install
bun run start # serves on :3500 (PORT env overrides)- The AI insights feature in
lib/ai.jslikely expects an LLM API key — check that file for the env var name before deploying with insights enabled. - SQLite at
data/duet.dbis runtime data, gitignored.