Who's Wiki? - Project Documentation

Inspiration

Who's Wiki? was inspired by the popularity of daily word games like Wordle and the endless trove of rich information about famous people on Wikipedia, why not combine the two into a daily challenge? With the added benefit of learning about fascinating historical figures and celebrities. The concept emerged from the idea that Wikipedia articles contain a wealth of interesting facts about famous people, and knowing how popular trivia already is, using AI to turn these facts into clues for a guessing game. I was partially inspired by the educational potential of gamifying knowledge about diverse personalities from history, science, entertainment, and politics. Similar to some popular daily games that already exist on the web, and even games almost as old as print newspapers like crosswords.

What it does

Who's Wiki? is a daily guessing game hosted on Reddit where players identify famous people based on factual hints. Each day features a new mystery person, and players must guess their identity using progressively more difficult revealed clues. The game starts with one hint and reveals additional hints for each incorrect guess, up to a maximum of 6 hints. Players have 6 attempts to guess correctly.

Key features include:

  • Daily Challenges: A new famous person every day at 4 PM UTC
  • Progressive Hint System: Hints are revealed from easiest to hardest based on difficulty levels
  • Diverse Famous People: The game features 445 historical figures, celebrities, scientists, politicians, and other notable personalities, easily expandable or reusable into the thousands for years of daily challenges.
  • Visual Reveal: Correct guesses reveal the person's image
  • Score System: Points based on remaining guesses and hints used, can be expanded into a timed challenge with leaderboards.
  • Alternative Names: Accepts various forms of a person's name for more flexible guessing
  • Automated Daily Posts: Scheduler automatically creates new challenges
  • Moderator Tools: Admin controls for manual post creation, and cache management

How we built it

Who's Wiki? is built using Reddit's Devvit platform, which provides a full-stack development environment for Reddit applications. The architecture consists of:

Frontend:

  • React 19 with TypeScript for the user interface
  • Tailwind CSS 4 for styling with a retro, neo-brutalist comic book aesthetic
  • Custom components for hint display, guess input, and game results
  • Mobile-responsive design optimized for Reddit's post format

Backend:

  • Devvit server functions for game logic and API endpoints
  • Redis for persistent storage of game states, user progress, and cached data
  • Express.js server for handling HTTP requests and middleware

Data Management:

  • Curated database of over 400 famous people with biographical information
  • Wikipedia integration for sourcing images and facts
  • Automated image caching from Wikimedia to Reddit's CDN
  • Deterministic daily person selection using date-based selection function

Development Tools:

  • Devvit React Starter
  • Vite for fast builds and hot reloading
  • TypeScript for type safety and better developer experience
  • ESLint and Prettier for code quality and consistency
  • Concurrent development servers for client and server code

Challenges we ran into

Integrating images posed significant challenges since Wikimedia images can't be directly displayed in Reddit posts. I had to find a way to quickly upload the images using the Devvit media.upload functionality and a proxy, and cache images to Reddit's hosting infrastructure. Managing user progress across sessions was complex, especially ensuring that each Reddit post has its own isolated game state. I had to design a Redis-based storage system that ties game states to specific post IDs while also caching person data for consistency. Adapting to Reddit's development environment required learning a few new patterns and working within platform-specific limitations for image hosting, UI design, and data persistence.

Overall the Devvit platform was a very pleasant developer experience and I would gladly use it again.

Accomplishments that we're proud of

Educational Impact: We successfully created a game that makes learning about famous modern and historical figures engaging and accessible. Players discover fascinating facts about diverse personalities they might never have encountered otherwise.

  • Built a robust architecture that handles hundreds of famous people and persistent game states
  • Created a smooth, responsive user experience optimized for Reddit's platform
  • Moderator tools for content management
  • Designed an intuitive, visually appealing interface with a distinctive retro aesthetic
  • Implemented flexible name matching that accepts various forms of a person's name
  • Created engaging simple gameplay with progressive difficulty and scoring
  • Successfully leveraged Reddit's Devvit platform to create a native Reddit experience
  • Built automated systems that require minimal manual intervention
  • Assembled and structured a comprehensive database of over 400 notable figures utilizing AI's capabilities
  • Created a systematic approach to hint generation with appropriate difficulty levels
  • Integrated seamlessly with Wikipedia's vast knowledge base

What we learned

Reddit Platform Development: I gained exposure to Devvit's architecture and development tools, including its unique approach to post-based applications, server functions, and Redis integration. Learning how to work within Reddit's constraints while creating engaging user experiences.

Redis Caching: Working with Redis for the first time was a valuable learning experience. I discovered effective patterns for implementing caching layers, managing data persistence across sessions, and optimizing performance through strategic key-value storage approaches.

User Experience Design: I got to try a new unique design style and learned how to optimize this for the Reddit in app experience on mobile and desktop.

What's next for Who's Wiki?

Here a handful of ideas for future additions and expansions for the game:

Enhanced Features:

  • Leaderboards: Add leaderboards for a competitive and community driven element to gameplay, with daily, weekly, and all time bests.
  • Themed Weeks: Special themed challenges focusing on specific categories (scientists, artists, historical figures, etc.)
  • Social Features: Share results and compare performance with friends
  • Achievement System: Unlock badges for streaks, best scores, number of correct guesses, and best knowledge areas (music, politics, writers, ect)
  • Expand Database: Add hundreds of new people to the dataset for years of possible posts and challenges.
  • Educational Resources: Link to additional learning materials

Community:

  • User-Generated Content: Allow community members to suggest new people and hints
  • Localization: Add support for different languages and region-specific famous people
  • Historical Context: Add timeline features showing when people lived and their historical significance/key life events
  • Community Challenges: Special events and tournaments for engaged users

Built With

Share this project:

Updates

Submission history