Skip to content

Repository files navigation

Juro

A daily community judgment game for Reddit. One petty, relatable case a day — you vote guilty or not guilty, stake your confidence, and watch the evidence sharpen as the community weighs in. Come back tomorrow to see if you called it right.

How it works

  1. Read today's case. A new petty dispute drops daily — leftovers, group chats, parking spots, the eternal "left on read."
  2. Vote and stake your confidence. Guilty or not guilty, plus how sure you are. The image sharpens as more redditors weigh in.
  3. Come back tomorrow. The case resolves, the verdict is revealed, and you find out if you called it right — points, streaks, and a spot on the leaderboard are on the line.
  4. Repeat. How divided the community was yesterday shapes the tone of today's case.

Tech stack

  • Devvit Web: Reddit's developer platform, running the app as an interactive post
  • Phaser 4: powers the evidence reveal animation
  • React + Vite: client UI
  • Hono: server routes
  • Redis (via @devvit/redis): case state, votes, profiles, leaderboard
  • Devvit Scheduler: daily cron job that resolves the case at midnight UTC and opens the next one
  • Tailwind CSS: styling
  • TypeScript: end to end

Project structure

  • src/client: the game UI, rendered inside a Reddit post
    • splash.html / splash.tsx: compact inline view shown in the feed
    • game.html / game.tsx: full game view (case, voting, verdict, leaderboard)
    • game/RevealScene.ts: the Phaser scene driving the evidence reveal
  • src/server: backend logic (Node/Hono, runs in Devvit's serverless environment)
    • core/juro.ts: game logic — cases, votes, resolution, leaderboard (Redis-backed)
    • routes/api.ts: client-facing endpoints (/api/init, /api/vote, /api/leaderboard, /api/acknowledge-verdict)
    • routes/scheduler.ts: the daily case-resolution cron handler
  • src/shared: types shared between client and server

Getting started

Make sure you have Node 22 installed before running.

  1. Run npm create devvit@latest --template=react
  2. Go through the installation wizard — you'll need a Reddit account connected to Reddit Developers
  3. Copy the command from the success page into your terminal
  4. npm install to pull in project dependencies (Phaser, Fontsource, etc.)

Commands

  • npm run dev: starts a live development server on a test subreddit
  • npm run build: builds the client and server projects
  • npm run deploy: uploads a new version of the app
  • npm run launch: publishes the app for review
  • npm run login: logs the CLI into Reddit
  • npm run type-check: type-checks, lints, and formats the app

Roadmap

  • Expand the hand-written case bank (currently ~24 cases) toward 50+
  • Community-submitted cases, once moderation tooling is in place
  • AI-assisted case generation from a themed prompt bank

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages