I kept catching myself doomscrolling, so I built something to replace it: CurioQuest, a free web game where curiosity earns you XP.
π Try it: https://curio-quest-phi.vercel.app/
What it does
- ποΈ Forgotten Wonders: stories about obscure history and nature mysteries (the Antikythera Mechanism, the Dancing Plague of 1518, GΓΆbekli Tepe), each with a 3-question quiz
- π¬ Science Fact Lab: rapid true/false facts with sourced explanations and accuracy streak multipliers
- π§© Brain Games: memory match, word scramble, math sprint, and a daily cipher puzzle
- π World & Tech Pulse: live news cards plus a 3-question daily quiz
Everything feeds one progression system: XP, unlimited levels, daily streaks with a calendar, 12 badges, 32+ collectible museum relics, and two leaderboards (points and streaks).
How I built it
- Stack: React + TypeScript, built with Google AI Studio and Gemini
- Live news: a server-side endpoint calls Gemini with Google Search grounding, so cards come with citations and source links
-
Feedback: procedural sounds with the Web Audio API, haptics with
navigator.vibrate, and confetti on rewards - Auth: salted and hashed passwords with session tokens, plus guest mode that saves progress when you sign in
- Hardening: security headers, an in-memory rate limiter, and a request body size limit
What I learned
- Streak logic is trickier than it looks. Missed days, same-day logins, and migrating old saved state all needed careful handling.
- I had fake multipliers on the leaderboard early on and replaced them with real per-day XP tracking, so the timeframes now come from actual activity.
- Gemini works well for current-events content only when it's grounded with search and sources.
Feedback welcome
- Does the XP and leveling feel motivating or too grindy?
- Which game mode or content category should come next?
- Anything confusing or broken?
Thanks for reading!
Top comments (0)