Inspiration
There's a moment every cricket fan knows. You're watching a match, and something extraordinary happens — a spell of bowling that defies logic, an innings that rewrites the script, a catch that stops time. And years later, someone says "Remember that game in Johannesburg?" and it all comes flooding back. The roar of the crowd. The tension of the last over. The name of the player who made it happen.
That feeling — that instant recall, that shared memory — is what Bowldem is built on.
Cricket isn't just a sport. For over 2.5 billion fans worldwide, it's a living archive of emotions. Every T20 World Cup match is a story. Every Man of the Match is its protagonist. And every cricket fan carries a mental database of these moments — not as dry statistics, but as memories.
Bowldem sits at the intersection of two things cricket fans can't resist: nostalgia and stats. The scorecard tells a mathematical story — 184/6 in 19.5 overs overs vs 145/6 in 15.1 overs — and your brain starts running through possibilities. Which tournament was this? Which ground? Who was in devastating form that year? You're not just solving a puzzle. You're reliving a match.
With the T20 World Cup tournament underway right now, cricket communities are more engaged than ever. Every day brings new debates, new highlights, new heroes. Bowldem channels that energy — giving fans a reason to come back daily, to test their knowledge, to argue in the comments about whether it was obviously Yuvraj or clearly Malinga.
The difficulty? It's not easy. It's not hard. It's just right. The kind of puzzle where you stare at a scorecard, narrow it down by guessing. Guess wrong twice, and then it clicks — and you feel like a genius. That's the sweet spot. That's Bowldem.
What it does
Every day, Bowldem presents a classic T20 World Cup match — showing only the venue and scorecard (with team names hidden). Players have 5 guesses to identify the Man of the Match.
Each guess returns four feedback signals:
P: Did this player play in the match T: Did this player lay in the same team as the MOTM (Man of the Match) R: Is this player's role same as the MOTM player (Batsman, Bowler, All Rounder, Wicket Keeper) M: Is this player the MOTM These four letters create a deduction chain. A wrong guess isn't wasted — it's information. The puzzle collapses beautifully with each wrong guess - providing just enough information for the next guess/ The probability space is real: With 569 players in the database but only ~22 per match, each P/T/R/M signal dramatically narrows the field. By guess 3, most experienced fans are down to 2–3 candidates. That's the magic number — enough uncertainty to feel the pressure, enough information to feel clever.
Features:
- 60 curated T20 World Cup puzzles — iconic matches, legendary performances
- Daily leaderboard — compete with fellow Redditors for the fastest solve
- Stats tracking — win streaks, guess distribution, games played
- Shareable emoji grids — post your result without spoiling the answer
- Smart autocomplete — search 569 players by name, country, or role
🏏 Bowldem #22 3/5
🟩⬛⬛⬛ 🟩🟩⬛⬛ 🟩🟩🟩🎯
r/playbowldem
How we built it
Bowldem started at https://bowldem.com and was rebuilt from the ground up for Reddit's Devvit Web platform. I created this for my friends and families who are engaged in cricket in time for the world cup and recently came across the hackathon.
Architecture: Bowldem runs as a native Reddit experience built on Devvit Web. When a player opens the post, they land on a branded splash screen that explains the P/T/R/M feedback system — one tap takes them into the full game UI, rendered as a React 19 single-page app inside Reddit's webview. Every action — submitting a guess, fetching the leaderboard, loading stats — hits a RESTful Express.js server running on Devvit's backend, which validates game logic server-side to prevent cheating and persists all state to Redis through Devvit's built-in KV store. The game data itself — 569 players and 60 curated T20 World Cup match puzzles — ships as static JSON, keeping the app fast and serverless. Puzzle rotation is deterministic: the puzzle index is simply the number of days since the epoch date modulo 60, guaranteeing every player worldwide sees the same puzzle on the same day. The entire stack is TypeScript end-to-end, with shared game logic between client and server ensuring the feedback you see instantly on screen is always consistent with what the server validates.
Stack:
- Frontend: React 19 + Tailwind CSS — responsive, mobile-first
- Backend: Express.js — RESTful API for game logic and state
- Storage: Redis via Devvit KV — per-user game state, streaks, leaderboard
- Data: 569 players and 60 match puzzles curated from T20 World Cup history
- Build: Vite + TypeScript — full-stack type safety
The game logic lives in a shared module — the same code validates guesses on both client (for instant feedback) and server (for integrity). Puzzle rotation is deterministic:
$$\text{puzzleIndex} = (\text{daysSinceEpoch}) \mod 60$$
This means every player worldwide sees the same puzzle on the same day — the foundation of any good daily game.
Challenges we ran into
The Devvit learning curve. Reddit's developer platform is powerful but young. We hit platform-specific quirks — webview sizing behaved differently than expected, the submitCustomPost API had validation edge cases that blocked post creation for days, and playtest caching meant uploaded changes wouldn't appear until you killed and restarted the session. Each of these cost hours of debugging. I finally figured out the submitcustomPost error was happening because my developer id was not authorized - which wasn't part of any documentation anywhere. It's a new space for me - I am what you can call a vibe game developer.
Perfect Player experience: I spent some time designing the auto complete feature. Not everyone will remember the player name - so having a smart autocomplete feature which will reveal player names when typing country, role or fist 2-3 characters of any player took some iteration.
Mobile-first in a webview. Reddit is overwhelmingly mobile. The game had to feel native on a phone screen inside Reddit's webview — the autocomplete dropdown, the feedback grid, the scorecard — all needed to work flawlessly on small screens with touch input. Getting the autocomplete to feel responsive (showing results after just 2 characters, with country and role context) took several iterations.
Accomplishments that we're proud of
Merely this submission is something I am proud of. This is my first game on Reddit and my first instance of using Devvit framework. There were some challenges but piecing them together was part of the journey. I am also a solo developer and that I could submit a build for hackathon - and parallelly launch a production version (under review) in time for the T20 World Cup is something I am proud of. Quality can be subjective - but having complete list of 60 games, over 500 players database and accurate information took time but this was something I could not compromise on.
What we learned
Constraints breed creativity. The P/T/R/M feedback system emerged from the constraint of cricket data — unlike Wordle's letter positions, we needed signals that made sense for players. The result is a feedback language that cricket fans intuitively understand and that creates genuinely interesting deduction paths. -- Redis is the unsung hero of daily games. Per-user state, streak tracking, and leaderboards all need to be fast and persistent. Devvit's Redis integration made this straightforward — but we learned to be careful with race conditions on concurrent reads/writes. -- Nostalgia is the most powerful game mechanic. When a player solves a puzzle and sees "Australia vs Sri Lanka, 2012 T20 World Cup" with the MVP reveal and a link to the highlights — that's not just a win screen. That's a memory unlocked. That's someone texting their dad "Remember this match?" That emotional payoff is worth more than any animation or sound effect.
What's next for Bowldem - daily cricket puzzle
- More tournaments — IPL, ODI World Cup, The Hundred
- Community puzzles — let subreddit mods create custom match puzzles
- Country flags and player images for visual richness
- Sound effects — the crack of bat on ball, the stadium roar on a correct guess ( i am keen on building this)
- Direct Reddit comment sharing — post your result inline without leaving the thread
Built With
- css
- css-frameworks:-react-19
- devvit
- eslint
- express.js
- express.js-5
- html
- languages:-typescript
- react
- redis
- tailwind
- tailwind-css-4
- typescript
- vite
- vite-6-platform:-reddit-devvit-web-database:-redis-(devvit-kv-store)-tools:-vitest
Log in or sign up for Devpost to join the conversation.