Inspiration

Real-world anomaly detection is a core cybersecurity skill; security analysts spend their days reading access logs looking for the one event that doesn't fit. I wanted to make that feeling accessible and fun for anyone, without requiring domain knowledge. The hook from games like Wordle (daily puzzle, streak-based) combined with the pattern-recognition loop of hidden-object games shaped the core design.

What I Learned

Building on Devvit Web taught me how to architect a full-stack app entirely within Reddit's platform; no external hosting, no external database. Redis as the only data layer forced careful key schema design. I also learned how procedural content generation (a small statistical baseline model + anomaly injectors) can create effectively infinite, non-repeating puzzles from a small codebase.

How I Built It

  • Server: Hono v4 on Node.js, bundled to a single CJS file via esbuild. Handles incident generation, scoring, leaderboard, and Reddit API calls (post creation, comment submission).
  • Generator: A baseline model samples weighted-random events per fictional site (5 companies, each with distinct active hours and actor pools). Five anomaly injectors (timing outlier, volume spike, impossible travel, rare path access, sequence violation) perturb the baseline. A difficulty tier system (Rookie → Lead Analyst, streak-gated) adjusts decoy count and anomaly subtlety.
  • Client: Vanilla TypeScript + Vite, no frameworks. CRT phosphor terminal aesthetic; hard-edged scanlines, pixel fonts, ASCII box borders. Boot sequence, site select, dashboard (90-second timer + trickle-in event feed), holding screen, and full-findings reveal screen.
  • Retention: 4-tier streak system, trace credits for fast catches, site-ownership tracking, community stats (% of players who caught it), discussion questions on reveal to fuel comment sections.

Challenges

The biggest challenge was the Devvit Web deployment pipeline on Windows; port handling, ESM/CJS bundling differences, and getting the moderator menu action wired correctly to actually spawn posts. The procedural generator required careful tuning to hit a ~65% correct-catch rate; hard enough to feel like a real puzzle, easy enough that new players don't bounce immediately.

What's next for Anomaly Watch

Anomaly Watch is built to grow with its community. The foundation; procedural incident generation, streak-based difficulty tiers, and a live Redis-backed scoring system; was designed from the start to support features well beyond the hackathon build. On the gameplay side, the next step is surfacing the leaderboard directly in the results screen so players can see exactly where they ranked among the day's analysts, and activating the trace credit spending mechanic so fast catches actually translate into a tactical advantage on harder days. The difficulty system will also get smarter over time: rather than relying on fixed severity thresholds, a future update will track community-wide solve rates per incident and auto-tune anomaly subtlety to keep the daily puzzle landing in the 60–70% correct-catch sweet spot; hard enough to feel like a real puzzle, easy enough that a new player's first day isn't a brick wall. Longer term, the site roster is designed to expand: each new fictional company brings a distinct active-hours profile, a new cast of quirky named actors, and new normal-behavior patterns for returning players to learn, which means the site-familiarity hook; the feeling of genuinely knowing a company's rhythms after a few visits; deepens the longer the game runs. The most Reddit-native feature on the roadmap is a community anomaly submission system: players would be able to propose their own incident scenarios through a structured post format, with the best community-submitted incidents voted into the daily rotation. That single addition transforms Anomaly Watch from a daily puzzle into a living, player-authored game; which is exactly the kind of thing a Reddit community is uniquely built to sustain.

Built With

Share this project:

Updates

Submission history