A Reddit guessing game built on Devvit. Players guess which subreddit a post came from across 10 daily rounds, with streak multipliers, partial credit, and weekly leaderboards.
Daily Challenge: Everyone plays the same 10 posts each day
- Rounds 1-5: Easy difficulty (any subreddit guess allowed)
- Rounds 6-10: Hard difficulty (must choose from curated whitelist)
Scoring System:
- Correct answer: 10 points × streak multiplier (1.0, 1.1, 1.2...)
- Partial credit (maintains streak):
- Same category: 6 points
- Shared tags: 3 points
- Wrong answer: 0 points, streak resets
Competition: Weekly leaderboard tracks your best daily scores
Requirements:
- Node.js 22+
- Devvit CLI:
npm i -g devvit - Reddit developer account (logged into Devvit CLI)
- Test subreddit for development
Setup:
npm install
npm run login # Authenticate with Reddit
npm run dev # Start development serverKey Commands:
npm run dev— Development server with live reloadnpm run build— Build for productionnpm run deploy— Upload to Devvitnpm run launch— Build, deploy, and submit for review
- Platform: Devvit (Reddit's app platform)
- Frontend: React + Vite + Tailwind CSS
- Backend: Express.js + TypeScript
- Database: Redis (via Devvit APIs)
- Architecture: Shared types across client/server
Creating Games: Use the Devvit menu in your subreddit: Menu → Create a new post
Content Moderation: Players can report inappropriate content through the in-game interface
Project Structure:
src/
├── client/ # React frontend
├── server/ # Express backend
├── shared/ # TypeScript types
└── data/ # Content files
Content Management:
src/data/whitelist.json— Allowed subreddits with categories/tagssrc/data/seeds.json— Curated posts for the game- Development tools available at
/internal/dev/endpoints
Configuration:
- Edit
devvit.jsonto set your test subreddit - Use
.envfor environment variables
Game Endpoints:
GET /api/daily-status— Check if user can play todayGET /api/round?roundIndex=<0-9>— Get round dataPOST /api/guess— Submit answerGET /api/leaderboard— Weekly rankingsGET /api/stats— User's daily statistics
Admin Endpoints: Available under /internal/*
- Build:
npm run build - Upload:
npm run deploy - Publish:
npm run launch(includes review submission)
Configure app details in the Devvit Developer Portal before publishing.
License: BSD-3-Clause
Contributing: Issues and PRs welcome. Please include testing notes and keep changes focused.