Mojiquence

Decode the emojis. Guess the movie. Beat the clock.

A daily emoji to movie puzzle game built as a Reddit Devvit experience, fully playable without ever leaving Reddit.


🎬 Inspiration

We have all seen those "guess the movie from emojis" posts floating around social media. They are simple, chaotic, and surprisingly addictive.

Then Wordle proved something huge: one daily puzzle is enough to build a loyal, competitive community.

Reddit, with its subreddit culture and the new Devvit platform, felt like the perfect home for this idea.

We wanted to take the viral fun of emoji puzzles and level it up with:

  • Real competition
  • Meaningful streaks
  • Cosmetic flex value
  • Community created content

All running natively inside Reddit posts.

No separate site.
No external login.
No leaving the app.


🕹️ What it does

Mojiquence shows you a sequence of emojis that represent a movie.

You race against the clock to type your guess and earn up to 100 points based on speed.

We use fuzzy string matching with Levenshtein distance, so close guesses like:

  • lord of the rings
  • The Lord Of The Rings
  • LOTR

…all count.

🔥 Core Features

  • Daily Puzzles with a brand new challenge every day
  • Streak System with up to 2 freezes and a 3 day comeback mode
  • Community Puzzles where players create and publish their own emoji challenges
  • Unique Puzzle IDs to share with friends or across subreddits
  • Shop and Cosmetics including rainbow usernames, profile titles, answer animations, and themed backgrounds
  • Calendar Tracker to visualize your daily completions
  • Leaderboards for daily and all time rankings
  • Social Sharing directly into Reddit comments via the Devvit API

🛠️ How we built it

Mojiquence is a Reddit Devvit Experience, meaning the entire app runs inside a Reddit post as an embedded interactive widget.

💻 Frontend

  • Built with React 18
  • Bundled using Vite
  • Designed as a single page app
  • All screens rendered inline in one component to prevent focus loss bugs

In embedded web views, traditional React component splitting actually caused input cursor issues. Keeping everything inline prevented unmount and remount glitches.

⚙️ Backend

  • Powered by Hono
  • Uses tRPC for end to end type safe API calls
  • Data stored in Devvit Redis
  • Uses key value pairs and sorted sets for leaderboards and rankings

🔄 Shared Layer

A shared TypeScript layer contains:

  • Emoji parsing utilities
  • Levenshtein similarity logic
  • Shared data types

This ensures total consistency between client and server.

🤝 Reddit Integration

We use @devvit/web/server to:

  • Submit comments
  • Create posts
  • Fetch usernames

Everything is configured through devvit.json for install triggers and menu wiring.


🚧 Challenges we ran into

⌨️ Input focus bugs

React was remounting inputs on state changes, which made the cursor disappear mid typing.

The fix?
Render everything inside a single component instead of splitting screens.

Sometimes the unconventional solution is the right one.

😀 Emoji parsing chaos

Emoji strings include:

  • Zero Width Joiners
  • Variation selectors
  • Skin tone modifiers

We built a Unicode aware regex parser using \p{Emoji} to correctly extract emoji sequences while filtering out regular text.

Unicode is not for the faint of heart.

🔁 Streak edge cases

The freeze plus comeback system introduced tricky logic scenarios:

  • What if you skip during comeback?
  • What if a freeze recharges the same day you miss?
  • What counts as truly consecutive?

We introduced a comebackStartDate system to enforce fairness and prevent exploits.

🔌 Devvit API exploration

The SDK is powerful but still evolving.

Getting tRPC to flow cleanly through Hono into Devvit’s server context, and correctly wiring reddit.submitComment() with post context IDs, required deep debugging.


🏆 Accomplishments we are proud of

  • The streak freeze and comeback system creates real emotional stakes
  • The fuzzy matching engine handles title variations gracefully
  • The community puzzle ecosystem is fully playable and shareable
  • The cosmetics shop adds long term retention and visible flex value
  • The entire experience runs 100 percent inside Reddit with no external database

Everything is powered by Devvit Redis and the Reddit API.


📚 What we learned

  • Devvit is powerful but early stage and sometimes requires creative workarounds
  • Inline rendering matters in embedded environments
  • Fuzzy matching thresholds require careful tuning
  • Gamification psychology works more than you think
  • Unicode handling is a rabbit hole

🚀 What’s next for Mojiquence

  • Multiplayer mode with real time head to head races
  • Themed puzzle packs like 90s Classics, Horror Movies, and Animated Films
  • AI powered puzzle generation for infinite content scaling
  • Achievement system for milestone rewards
  • Subreddit leaderboards for community competition
  • Mobile optimization with improved touch interactions
  • Expansion beyond movies into TV shows, songs, books, and video games

Mojiquence started as a simple emoji guessing idea.

It evolved into a competitive, community driven, fully native Reddit game.

And we are just getting started.

Built With

  • css3
  • devvit-reddit-api
  • devvit-redis
  • hono
  • react-18
  • reddit-devvit-sdk
  • superjson
  • trpc
  • typescript
  • vite
  • zod
Share this project:

Updates