Name That Sub

A daily Reddit deduction game built entirely on live Reddit data.

Players are given real clues from a Reddit post and must guess which subreddit it came from. Guess early for maximum points. Reveal more clues if you're unsure. Come back tomorrow to protect your streak.


Inspiration

The idea started casually. My teammates and I were playing daily guessing games like Rankdle — games built around a simple loop: you get one clue, you make your best guess, and then you compare results and argue about what gave it away. Sometimes the answer felt obvious; other times it was impossible.

That exact loop inspired this project. I wanted a daily guessing game with the same “one prompt, one shot” energy, but powered by live Reddit content: a real comment/post as the clue, and the subreddit as the answer.

That sparked the idea:

Reddit communities have strong identities — and even a single comment often reflects that culture.

I wanted to turn that into a structured, daily experience that felt native to Reddit and updated automatically.


How the Game Works

Each day, the game generates a puzzle using:

  • A dynamically selected subreddit
  • A real post from that subreddit
  • A filtered comment from that post

Clues are revealed in stages:

  1. Comment only — 100 points
  2. + Post body — 60 points
  3. + Title — 30 points

Points follow this structure:

Points follow this structure:

Points =

  • 100 if guessed at stage 1
  • 60 if guessed at stage 2
  • 30 if guessed at stage 3

This creates tension between confidence and safety.


Deterministic Daily Puzzles

To ensure fairness, puzzles are deterministic.

Each day generates a UTC key in this format:

YYYY-MM-DD

That key is combined with the selected mode and used to seed the puzzle:

seed = hash(dateKey + mode)

This guarantees:

  • Everyone sees the same puzzle per mode per day
  • Different modes generate different puzzles
  • The puzzle changes automatically every day
  • No hardcoded subreddit lists

Difficulty Modes (Fully API-Driven)

Difficulty is not manually curated. It is determined dynamically using Reddit’s subscriber data:

  • Easy → ≥ 1,000,000 members
  • Medium → ≥ 10,000 members
  • Hard → Any subreddit

Each mode has its own:

  • Score
  • Streak
  • Daily completion state

Players can complete all three modes every day independently.


Technical Challenges

Working with live Reddit data introduced real-world issues:

  • Deleted or removed comments
  • Comments mentioning the subreddit directly
  • NSFW filtering
  • Posts with no body text
  • Inconsistent subscriber count properties

To handle this, I implemented:

  • Multi-field subscriber detection
  • Comment filtering to remove obvious giveaways
  • NSFW exclusion logic
  • Deterministic fallback selection
  • Redis-backed per-user state tracking

Each user’s state is stored per mode and per day, including:

  • Commit state (locked after first interaction)
  • Played flag (points awarded once)
  • Completion state (win or loss)
  • Streak and total score

This prevents replay abuse while still allowing multi-mode play.


Mobile Challenges

One unexpected challenge was mobile rendering inside the Reddit app.

The desktop version worked immediately. Mobile did not.

Issues included:

  • No scrolling
  • Hidden input fields
  • Viewport locking conflicts
  • Safe-area inset problems

The root cause was improper layout locking with position: fixed.

The solution required:

  • Reworking scroll containers
  • Allowing natural overflow
  • Supporting safe-area insets
  • Redesigning sticky controls

Fixing this required a deeper understanding of mobile rendering behavior and layout systems.


What I Learned

This project strengthened my understanding of:

  • Deterministic content generation
  • API-driven systems without hardcoding
  • Per-user state modeling
  • Handling unpredictable live data
  • Mobile-first debugging
  • Designing risk/reward game mechanics

It reinforced an important lesson:

A good daily game is not just about logic — it’s about balance, fairness, and controlled unpredictability.


Why It Works on Reddit

Name That Sub feels native because:

  • It uses real Reddit content
  • It rewards knowledge of Reddit culture
  • It updates automatically every day
  • It encourages daily engagement
  • It promotes discussion

Every day is different.
Every guess is a decision.

Guess the sub. Protect your streak. Come back tomorrow.

Built With

Share this project:

Updates