DEV Community

Md. Akkhor Hasan
Md. Akkhor Hasan

Posted on AI-assisted

I built a game that replaces doomscrolling with quizzes, hidden history, and brain puzzles

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)