Interactive Posts | Reddit for Developers
close

Readme

Ranker App

The all-in-one interactive engagement app for Reddit communities. Ranker turns your subreddit into a playground of rankings, polls, tier lists, brackets, debates, ratings, dream-team builders, swipe-throughs, multiple-choice quizzes, image-region picks, and map games — all inside native Reddit posts powered by Devvit.

Whether your community argues about player ratings, debates tier lists, builds dream squads on a budget, swipes through a roster, drops dots on an image, or picks regions on a map — Ranker has a mode for it. Every response feeds into a live community result so players instantly see how their taste compares to everyone else's.

Quick Start

  1. Install the App on your subreddit via Devvit.
  2. Open the subreddit's mod menu and click Create Ranking Post. Pin the resulting "Setter" post to the top of your subreddit so members can launch new games from it.
  3. Members open the Setter post, follow the inline setter flow to pick a mode, add items (or import from an Entity Pool group), tune settings, pick a theme, and publish.
  4. The published post is a fully interactive game: each visitor plays it and immediately sees the aggregated community result.

Game Modes

Mode What it does
Rank Them Players see all items at once and drag them into a single ranked order — full visibility, careful comparison.
Blind Ranking Items are ranked one at a time without seeing prior placements — pure gut instinct, flashcard style.
This or That Head-to-head matchups in bracket style — pick a winner from each pair until a champion is crowned.
Tier List Drag items into customisable tiers (S/A/B/C/D/F or fully custom labels and colours); the consensus tier grid updates live.
Smash or Pass Swipe-through cards with a binary choice and fully customisable labels and emoji (Hot/Not, W/L, In/Out, Yes/No).
Reorder Drag-and-drop items into the correct or preferred sequence — great for timelines, line-ups, and "rank these in order" challenges.
Attribute Rating Rate one entity across multiple dimensions (Speed, Defense, Charisma…) on a 1–10 scale; results render as an aesthetic report card.
Entity Rating Rate many items on a single attribute; the result page lines up every item side by side with the community average.
Team Builder Build a dream squad from a priced roster without blowing the budget — supports multiple currencies, role caps, duplicates, and required positions.
Actual vs Should Be The setter reveals a real-world value and players guess what it should be — perfect for "overpaid or underpaid?" debates.
Red Pill / Blue Pill Visual scenario cards with positioned option boxes — a stylised either/or choice format, MCQ-driven.
Multiple Choice Questions Classic and party-style polls including text options, image options, multi-select, standard MCQ, and "Most Likely To" attribution.
Part Choose Upload an image and split it into selectable regions; players pick their favourite zone, area, or section.
Competition Open-entry tournaments with Elo-style head-to-head matchmaking — players submit entries, the community votes pairs, and a leaderboard emerges.
Category Poll Polls broken down by category — e.g., separate results by team, gender, region, or franchise — with optional flair-driven results.
Venn Diagrams Tap a numbered Venn region and compare community picks across overlapping sets.
Map Choose Tap a region on a map and watch community picks fill in.
Put the Dot Drop a dot anywhere on an image and compare with the crowd — heatmap-style results.

Features

Live Community Results

Every mode aggregates responses into a live community result. The moment a player submits, they see how their picks compare to the crowd — percentage breakdowns, ranked leaderboards, consensus tiers, average ratings, bracket trees, dot heatmaps, and report cards.

Entity Pool

Pre-built item libraries that moderators can import from instead of typing items by hand every time. Create pool groups of players, characters, songs, films, brands — anything the community rates repeatedly — and spin up new posts in seconds by pulling from those groups. Supports per-item display image and metadata. Pool groups can be local to a subreddit or imported from the curated public library on first install.

Setter Mode

A guided in-post flow that lets a non-developer set up any mode end-to-end: pick a mode, add items (text-only or image+text), import from a pool, tune mode-specific settings (tier labels, attributes, budget caps, smash/pass labels, MCQ choices, etc.), pick a theme, preview, and publish.

Report Card Sharing

Players get a shareable summary of their results. They can post it as a comment with auto-generated formatting, or — for Attribute Rating and Tier List modes — share it as a standalone Reddit post that links back to the original.

38 Themes

38 visual themes ranging from dark moody palettes to bright candy colours. The post creator picks a theme during setup and it applies across the entire game and the result page.

Admin Tools

A full admin panel for subreddit moderators to flush game data, close posts, archive old posts, manage admin users, configure subreddit-level settings, and disable specific modes that don't fit their community.

Creating a Post

  1. Pick a mode from the modes list above.
  2. Add items as text-only or image+text cards, or import from an Entity Pool group.
  3. Configure mode-specific settings — tier labels, attributes, budget caps, smash/pass labels, MCQ choices, and more.
  4. Choose a theme from 38 available palettes.
  5. Preview the post inside the setter, then publish — it goes live to your community instantly.
  6. Close the post when you've finished collecting responses; the aggregate result remains visible according to the mode's display settings.

Tech Stack

Built on Devvit with React 19 (client), Hono (server routes), and Devvit Redis (state). All game logic runs inside Reddit's serverless infrastructure — there is no developer-operated backend.

  • Devvit — Reddit's developer platform
  • React — UI framework
  • Hono — server-side HTTP framework
  • Vite — build tool
  • Tailwind CSS — styling
  • TypeScript — type safety
  • Supabase — read-only public reference data for the curated Entity Pool library

Architecture

  • Client: React + Vite, three entrypoints declared in devvit.json — splash.html (default, inline), game.html, and create.html.
  • Server: Hono on Devvit's serverless runtime, exposing internal endpoints for triggers, the scheduler, and the mod menu.
  • Storage: All user-facing state (responses, partial sessions, leaderboards, twin matches, post settings, admin flags, subreddit-scoped pool data) lives only in Devvit Redis on Reddit's infrastructure.
  • External fetch: Server-side, read-only fetches to a single Supabase domain to download the curated public Entity Pool library and shared image assets on install.

Permissions

Permission Reason
SUBMIT_POST Create new Ranker posts (e.g., from the mod menu, from setter mode, and from share-as-post flows).
SUBMIT_COMMENT Post share/result comments on a user's behalf when they explicitly tap "share".
SUBSCRIBE_TO_SUBREDDIT Let players opt in to subreddit notifications from the App.
media Allow images on items, report cards, and split-image (Part Choose) modes.
HTTP fetch (one allow-listed domain) Download the curated public Entity Pool library and image assets from Supabase.

Fetch Domains

The App declares exactly one server-side fetch domain in devvit.json:

  • dwvcdadedflakgnpjoho.supabase.co — used by server routes and the onAppInstall trigger to import the curated public Entity Pool library, pool items, map assets, default remote configuration, and Supabase Storage image assets. The fetch is read-only and server-side only. No user data is ever sent off Reddit.

Data & Privacy

  • All user input (rankings, ratings, swipes, tier placements, bracket picks, budget squads, MCQ answers, dot placements, leaderboards) lives exclusively in Devvit Redis on Reddit's infrastructure, scoped to the post it was submitted on.
  • No user data is sent to, written to, or stored on any external service.
  • The external Supabase project hosts only the public Entity Pool library — pool groups, pool items, and image assets used as a convenience cache so moderators across subreddits can import the same item lists in one click instead of recreating them by hand.
  • We do not sell, share, syndicate, or use user input for advertising, marketing, profiling, or model training.
  • All entity pool items remain the property of their respective owners (athletes, artists, brands, rights holders, photographers, etc.) or, where curated by the developer, of the App's developer.

For full detail see PRIVACY_POLICY.md and TERMS_OF_SERVICE.md.

Commands

  • npm run dev — start playtest on the development subreddit
  • npm run build — build client and server bundles
  • npm run deploy — type-check, lint, test, and upload a new version
  • npm run launch — deploy and publish for review
  • npm run test — run the Vitest test suite
  • npm run lint — run ESLint over src/
  • npm run type-check — run the TypeScript project build

Requirements

  • Node.js 22.2.0+
  • A Reddit account connected to Reddit Developers
  • The Devvit CLI (npm install -g devvit)

About this app