Inspiration
Grudgebeast started from the idea that a Reddit game should feel like a community ritual, not a solo app placed inside a post. I wanted a game where one quick choice from each player adds up to a visible shared result, then gives everyone a reason to return tomorrow.
What it does
Grudgebeast is a daily community boss battle built for Devvit Web. Players open one Reddit post, pick a faction, choose one action for the UTC day, and return after reset to see how the village changed. The crowd’s action split drives the outcome, and council picks let players add small bits of community flavor to the next result.
How I built it
I built the app with Devvit Web, React, TypeScript, Redis, Devvit Scheduler, and PixiJS. The server owns the game state, validates actions, stores daily choices in Redis, and runs a deterministic resolver at reset. The client focuses on the player flow, mobile layout, reduced motion, loading states, error copy, and the pixel battle scene.
Challenges I ran into
The hardest parts were making the daily reset idempotent, keeping one action per player per day, and making the game work inside Reddit’s mobile WebView. Mobile scrolling needed extra work because the WebView did not behave like a normal browser. I also had to keep UGC bounded, filtered, voteable, and safe to display.
Accomplishments that I am proud of
I built a complete Devvit Web game loop that works inside a Reddit post. Players can open the post, pick a faction, submit one daily action, see the community action split, and return after reset for the resolved result.
I are proud that the game uses server-owned state instead of trusting the client. Actions, factions, UGC, archive records, and resets all go through validated server routes backed by Redis.
I also built an idempotent daily reset path with scheduler support and moderator recovery, which makes the daily loop reliable for a live Reddit community.
On the player side, I added a pixel-style battle scene, mobile-first UI, reduced motion support, clear loading and error states, archive cards, and a bounded council system for player contributions and votes.
The project now has a full test suite covering resolver behavior, duplicate actions, scheduler retry, Redis persistence, UGC filtering, vote idempotency, archive creation, and client rendering.
What I learned
I learned how to structure a Devvit Web game around server-owned state, Redis keys, scheduler recovery, and route contracts. I also learned that Reddit games need to explain themselves quickly, work on mobile first, and give players a clear reason to come back.
## What is next for Grudgebeast
Next I would add richer archive browsing, more visual result ceremonies, faction-specific progression, and more council prompts. I would also tune the resolver over real play data so each daily outcome feels fair and surprising.
Built With
- css
- devvit-redis
- devvit-scheduler
- devvit-web
- hono
- pixijs
- react
- reddit-developer-platform
- typescript
- vite
- vitest
Log in or sign up for Devpost to join the conversation.