Inspiration
You know that feeling when you're scrolling Reddit at 2am and you just want something quick and fun? That's where this came from. I love crosswords but they usually take forever, and I thought - what if we made one that's actually casual? Like, 4 minutes max, with emojis as hints so you don't need to read a novel of clues. Plus, everyone on Reddit loves emojis anyway, so why not?
The idea was simple: make a daily puzzle that people can solve during their coffee break, share their times in the comments, and actually have fun without feeling like they're taking a test.
What it does
EmojiBlast is a daily crossword puzzle that shows up in your subreddit feed every morning. Here's the deal:
- You tap a cell, emoji hints pop up to help you guess the word
- Use the mobile keyboard to type (no annoying system keyboard covering half your screen)
- Timer starts when you begin, giving you 4 minutes to finish
- When you fill all the cells, it auto-checks your answers
- If you nail it, confetti explodes and you can share your time
The game automatically posts a new puzzle every day at midnight UTC, so there's always something fresh. You can pick easy, medium, or hard difficulty, and choose from different themes like animals, food, space, or Reddit-specific stuff.
Best part? It's designed for mobile first. Big tap targets, clean interface, no fuss. Just tap and play.
How we built it
Started with React for the frontend because I wanted something snappy. The grid is just divs with onClick handlers - kept it dead simple after trying (and failing) with hidden input fields that kept showing cursors everywhere.
For the backend, I used Devvit Web with Hono for routing. The scheduler was the trickiest part - had to figure out Reddit's cron system to auto-post puzzles daily. Ended up using Redis to track which posts we've already created so we don't spam duplicates.
The puzzle generation was fun. I built a fallback system that creates random puzzles if there's no predefined one for the day. It uses word banks organized by theme, picks words that can intersect properly, and makes sure the grid actually works as a crossword.
Honestly, I spent way too much time debugging why the timer wouldn't start. Turned out I was using useCallback wrong and creating stale closures. Ripped all that out and just used plain functions - worked perfectly after that.
The mobile keyboard was another headache. Tried using native inputs, tried hidden inputs, tried everything. Finally just made a custom keyboard with buttons. Sometimes the simple solution is the right one.
Challenges we ran into
Oh man, where do I start.
The timer issue was brutal. Spent hours trying to figure out why clicking a cell wouldn't start the timer. The problem was React's useCallback creating stale closures - the timer object inside the callback was from a previous render. Solution? Ditched useCallback entirely. Sometimes you gotta kill your darlings.
Mobile keyboard was another nightmare. Every approach I tried had issues:
- Native keyboard covered the grid
- Hidden inputs showed cursors
- Input fields messed up the emoji/letter swap
Eventually just built a custom keyboard from scratch. Three rows of buttons, backspace, reset. Done. Took 30 minutes and worked perfectly.
The emoji/letter swap was tricky too. I wanted emojis to show as hints when cells are empty, then disappear when you type. Sounds simple, right? Nope. Had to make sure the rendering logic was crystal clear: {!cellValue && cellEmoji && <emoji>} and {cellValue && <letter>}. Conditional rendering saved my life.
Scheduler configuration was confusing at first. Reddit's docs are good but I had to read them like three times to understand the cron format and how to properly structure the devvit.json. Also learned that you can't just call reddit.getCurrentSubreddit() - you need to use the context object.
Accomplishments that we're proud of
Got the game working smoothly on mobile. Like, actually smoothly. No janky animations, no keyboard issues, no weird cursor bugs. Just tap and play.
The automatic daily posts are pretty cool. Set it and forget it - new puzzle every day at midnight UTC. Used Redis to prevent duplicates and it just works.
Made the code way simpler than it started. Removed all the complex hooks, removed useCallback, removed hidden inputs. The final version is like half the code and twice as reliable. That's a win in my book.
The fallback puzzle generation is neat. If I forget to add a puzzle for a specific day, the game just generates one automatically. It's not perfect but it's good enough, and it means the game never breaks.
Also proud of the 4-minute time limit. Keeps it casual. You're not committing to a 30-minute puzzle - just a quick brain teaser during your break.
What we learned
React hooks can bite you if you're not careful. useCallback and useMemo are great until they're not. Sometimes plain functions are better.
Mobile-first design is hard but worth it. You can't just make a desktop app and hope it works on mobile. Gotta think about touch targets, keyboard behavior, screen size from the start.
Simplicity wins. Every time I tried to be clever with the code, it broke. Every time I simplified, it worked better. The final version is embarrassingly simple and that's exactly why it works.
Reddit's scheduler is powerful but you need to understand the limits. 10 recurring tasks max, rate limits on job creation. Read the docs carefully.
Testing is important. I should've tested the scheduler manually before waiting for midnight to see if it worked. Lesson learned: always add a manual trigger endpoint for testing.
Also learned that emojis are surprisingly good crossword clues. Like, 🐈 for CAT is way more fun than reading "A common household pet that meows."
What's next for EmojiBlast
Want to add more puzzle variety. Right now it's mostly random generation - would be cool to have hand-crafted puzzles with clever themes and intersections.
Thinking about adding a weekly leaderboard. Not complicated, just top 10 times for the week. Give people something to compete for.
Maybe add puzzle packs? Like "Reddit Memes Week" or "Gaming Week" with themed puzzles. Could be fun.
Would love to add hints, but gotta be careful not to make it too easy. Maybe one free hint per puzzle that reveals a single letter?
Also considering letting mods create custom puzzles for their communities. Give them a simple form to input words and emojis, generate the grid automatically.
Long term, maybe add different grid sizes. 3x3 for super quick games, 7x7 for harder challenges. Keep the 4-minute limit though - that's the sweet spot.
Oh, and definitely need to add more emoji themes. There's so many possibilities - movies, music, travel, tech. Could have a different theme every day of the week.
But honestly? Right now I'm just happy it works and people can play it. Everything else is bonus.
Built With
- devvit
Log in or sign up for Devpost to join the conversation.