Inspiration
Football subreddits repeat the same matchday ritual every week. Match Review Autopilot connects a club once and runs the season on Reddit — sync fixtures, open voting after kickoff, aggregate results, publish awards — with efficient API use and self-recovering scheduler jobs.
What it does
A Devvit app that automates fan player ratings for a connected team:
- Production autopilot — Fixtures sync from SportMonks; match posts open at kickoff + 120 minutes; voting closes on schedule; results roll into month/season aggregates; Player of the Month, Most Loved, and Player of the Season posts publish automatically.
- Intelligent scheduling — Devvit Scheduler runs one-off publish/close jobs and recurring lifecycle ticks; failed steps retry without blocking the pipeline.
- Incremental aggregation — Compact Redis aggregates (not full ballots) merge into period rollups as each match closes.
- Demo mode — Mod menu can manually stagger posts (now, +3m, +5m, +10m) to preview the mod queue without waiting for real match times.
How to run app for demo
https://github.com/nagesh161007/match-review-devvit-app/blob/main/instructions.md
How we built it
Devvit Web + Redis + Scheduler + SportMonks. Tiered API fetching (light discovery sync, full lineups on open). Media cached on Reddit. Install resolves team name via SportMonks search. Lifecycle tick opens due fixtures, closes expired votes, and triggers period award publishing; mod menu overrides exist for demos.
Challenges we ran into
Separating production autopilot from demo manual scheduling without duplicate logic. Aggregation had to be true rollups, not per-match snapshots. API rate limits required cached media and scoped syncs. Bulk historical fixtures needed guardrails so backfill doesn’t flood the subreddit on first connect.
Accomplishments that we're proud of
We built a full season pipeline entirely on Reddit—vote, aggregate, award, publish—with a scheduler-first architecture that self-recovers when jobs drift or retry. SportMonks integration is lean and reliable enough for hands-off production, while the mod menu keeps demos controllable when you need to stage posts on demand. On the product side, we shipped a dynamic soccer lineup and post-match dashboard that follows Reddit’s native look and feel—inline posts, expanded full-screen view, Reddit red award branding, and community mood—so fan ratings feel at home in the feed rather than like an external widget. Getting scheduling and sync to actually run end-to-end cut mod busywork sharply: fewer manual steps, staggered match posts, automatic voting close, and award rollups from real votes instead of babysitting every match.
What we learned
Building Match Review on Devvit meant designing around platform constraints, not fighting them: Redis for compact aggregates and voter keys (not replaying every ballot at read time), the Devvit scheduler as a queue of small idempotent jobs (sync, open voting, close, publish awards) instead of one cron that does everything, and inline + expanded webviews so fans vote in-feed and open full-screen for the dashboard. Mods need the same pipeline as production with different triggers—the mod menu stages match and award posts for demos; autopilot uses scheduled jobs and fixture timing—without mock votes or a second codebase. Real SportMonks data forced honest empty states, media upload for headshots, and rebuild paths when aggregates drift. UI had to feel native to Reddit (team colors from metadata, Reddit red for awards, community mood, profile links for loyal fans). The through-line: separate sync, schedule, vote, aggregate, publish; keep recovery cheap (rebuild rollups, reset app data); and ship something mods can run hands-off in production but still control when recording a demo.
What's next for Match Review Autopilot
We're splitting the pipeline so fixture sync, post scheduling, voting lifecycle, and award rollups are separate modules—not one football-specific flow—so any sports subreddit can plug in by swapping provider, season, and award rules while the same autopilot handles match posts, poll close, and results. Scheduling will be fixture-density-aware (midweek cups, international breaks, back-to-back games) instead of fixed timers, with an API budget manager and 429 backoff to keep SportMonks and future providers reliable at scale, plus a mod dashboard for sync status, next scheduled post, and one-click aggregate rebuild. The same architecture will generalize to NFL, NBA, IPL, and other communities—league, cup, and continental competitions, sport-specific stats, and optional cross-subreddit rollups—so the goal stays plug-and-play: install, name your team, pick your sport, and let autopilot run everywhere.
Log in or sign up for Devpost to join the conversation.