A daily game about knowing your community's mind — not your own.

A note on the name: the Developer Platform lists this app as karmic-sense (the name "Same Page" was already taken on Reddit's dev platform). In-game and on the subreddit, it's called Same Page — same project, two names.

Inspiration

Most "Reddit games" either ignore the platform entirely — a generic game wearing a Reddit skin — or lean on the most obvious Reddit iconography: karma counters, Snoo, upvote-farming loops. We wanted something that could only exist because it's on Reddit: a game that's actually about the specific community it's installed in, built from that community's own real posts, without turning karma itself into the scoreboard.

What it does

Same Page runs one shared daily slate — five rounds built fresh every day (UTC) from the subreddit's own real posts:

  • Showdown — two real posts, face to face. Pick the one that scored higher, then wager how sure you are (Lock it in for more points on a correct call, Hedge for a safer floor either way).
  • Pulse — instead of sharing your own opinion, you guess where the whole crowd landed on a real spectrum question tied to a real post, then see your guess plotted against the actual distribution.
  • The Decider — round 5 always pays double, every day, no exceptions.

Every reveal leads with the surprise stat — how rare or common your read actually was — before it tells you whether you were right. The game is about calibration against your own community, not trivia recall.

After the slate: a Daily Result screen with your synced score, your streak,and a rating tier, plus an archetype card that reads your session back as one of a few community-reaction types — with a discussion prompt worth taking to the comments; a Leaderboard (all-time rating + a weekly reset); and Submit a Round, where players pitch their own Showdown matchups or Pulse questions for moderator review — approved ones go straight into the live rotation.

How we built it

A Devvit Web app: React + Vite + TypeScript on the client, a Hono server, and Redis for all persistence — daily slates, per-user day records, streaks and ratings, leaderboard sorted sets, and the submission queue. No Phaser; this entry is Devvit Web only. The corpus of real posts is pulled and cached from the installed subreddit itself (top/hot/new, deduped, filtered), with a small hardcoded fallback pool only for the case where a fresh subreddit doesn't yet have enough real posts.

Retention mechanics

  • A daily streak that only increments on genuine consecutive UTC days — it resets to 1 on a gap rather than silently forgiving skipped days.
  • A rating that only ever climbs, with named tiers, so even a bad day shows visible progress.
  • An unlock countdown to the next slate, framed as a true fact ("new slate in Xh") rather than manufactured urgency — deliberately never styled as a threat.
  • Tomorrow's Call — an optional side bet on which of two brand-new posts will outscore the other by tomorrow. It resolves itself silently the next time you open the app, giving players a second, independent reason to come back beyond the daily streak.
  • A Daily Crowd Digest — the app itself posts one comment per day, as the app account, recapping the previous day's most-divisive round and the community's mix of reaction archetypes. It's a lightweight ritual that surfaces the community's own results back into the subreddit's comments, not just a private per-player screen.

User contributions

Submit a Round lets any player pitch a real Showdown matchup or Pulse question. Submissions are stored server-side — they survive a reload — and queue for moderator review. Two mod-only actions, "Approve next submission" and "Reject next submission," process the queue; an approved submission is folded directly into the next day's Pulse rotation. The daily corpus itself is also entirely sourced from the subreddit's own real posts, so the game's content is inherently community-authored even before a single manual submission.

Challenges we ran into

  • Getting genuine score variance for Showdown pairings without being able to fake votes (no vote manipulation, ever) — solved by pairing on real organic score gaps, with a fallback pool for thin days.
  • Devvit's inline post height is a fixed-height slot with no scroll and no documented pixel budget (only a "regular"/"tall" enum) — several real layout bugs (silently clipped content, unstyled blank space) came from misjudging that budget, fixed by making every inline-only component fill and background its slot defensively rather than trusting its own content height.
  • A recurring Tailwind v4 gotcha: a bare text-[var(--x)] arbitrary value with no color-token hint silently compiles to a color: rule instead of font-size:, which can invisibly lose to a real color class on the same element — hit and fixed (with compiled-CSS proof, not guesses) multiple times across different components.

Accomplishments we're proud of

A full daily-game loop — five rounds, two distinct mechanics, a scored/streaked/leaderboarded result, and a community digest — running entirely on real, live subreddit content, with a genuine contribution loop that lets the community feed itself: submit, get reviewed, go live.

What's next

Judging real, manipulation-free vote variance at scale on very small/new subreddits; expanding the submission-review flow beyond a single moderator's FIFO queue toward real curation; and considering a Phaser-based visual layer for the reveal moments if there's ever a reason to enter that category specifically.

Built With

Share this project:

Updates

Submission history