Inspiration

If you've ever modded a busy subreddit, you know the feeling: Modmail can quickly turn into a chaotic firehose. It’s functional, but when a community blows up, the mod team desperately needs better ways to triage ban appeals, questions, and reports. We looked at enterprise helpdesk tools like Zendesk and Jira and thought, "Why can't Reddit mods have this?"

That was the spark for Mail Helpdesk. We wanted to turn Modmail from a basic inbox into a legit, collaborative ticketing system. The goal was simple: let mod teams assign threads to specific people, track how fast they're responding (SLAs), flag urgent issues, and actually see their stats—all without ever leaving the Reddit app.

What it does

Mail Helpdesk transforms the standard Modmail experience into a high-performance support center. It features:

  • Centralized Dashboard: A clean, React-powered view of all active conversations.
  • Ticket Management: Move threads through states like Open, In Progress, Waiting for User, and Resolved.
  • Assignments & Accountability: Assign specific tickets to moderators so nobody is doubling up on the same user.
  • Priority & SLAs: Flag tickets as Low, Normal, or Urgent. The system automatically tracks response times and alerts you if an SLA is about to be breached.
  • Canned Replies: Save time with pre-written templates for common issues like rules violations or FAQ answers.
  • Real-time Analytics: A stats bar that shows your team's busiest mods, resolution rates, and average response times.

How we built it

We built the whole thing on Reddit's Devvit Platform, and honestly, it was a blast putting the stack together:

  • The Frontend: We went with React 19 and styled it up with Tailwind CSS 4. We used Vite to bundle it all, which kept the development loop super fast and ensures the final dashboard feels snappy when mods are flying through the queue.
  • The Backend: Inside Devvit, we used Hono to handle our routing. It's incredibly lightweight and made setting up the API endpoints (for grabbing threads, changing statuses, etc.) really clean.
  • Data & State: The heavy lifting is done by the Reddit Modmail API. But to add our custom layers—like who a ticket is assigned to or if it's "urgent"—we used Devvit's Redis.
  • Searching & Filtering: Because Redis is a key-value store, we had to get creative to allow filtering. We built a custom indexing system (using Redis sets like index:status:open) so the app can instantly pull up "all open tickets assigned to me."

Challenges we ran into

Building a helpdesk inside another app definitely threw some curveballs our way:

  1. The Sync Struggle: The hardest part was keeping our Redis data perfectly in sync with the actual Modmail. If another mod archives a thread on mobile, our dashboard needs to know. Figuring out the right triggers and avoiding API rate limits was a balancing act.
  2. Making Redis Act Like SQL: We really took relational databases for granted. To filter tickets by multiple things (like Priority + Status + Assignee), we had to manually maintain secondary indexes. It took some trial and error to get the data structures right.
  3. Crunching the Numbers: Calculating SLA metrics on the fly for hundreds of tickets is surprisingly heavy. We had to optimize how we pulled data to calculate the average resolution time ($T_{avg} = \frac{\sum (T_{resolved} - T_{created})}{N}$) without hitting Devvit's execution limits.

Accomplishments that we're proud of

  • A "Native" Power-Tool: We managed to build a full-scale Helpdesk UI that feels like a standalone SaaS app but lives entirely inside Reddit.
  • Fast Filtering: Our custom Redis indexing works surprisingly well. Even with a large volume of tickets, filtering by assignee or status is instantaneous.
  • Clean Architecture: Using Hono and React 19 together on Devvit allowed us to keep the code modular and easy to test, which isn't always easy in a platform environment.

What we learned

  • Pushing Devvit to the Limit: We learned a ton about what Devvit can actually do, especially when it comes to using its Redis implementation for complex indexing rather than just simple caching.
  • Designing for Power Users: We had to put ourselves in the shoes of a power-user moderator. We learned a lot about designing for speed—focusing on quick filters, clear visual hierarchy, and making sure the most common actions take as few clicks as possible.

What's next for ModMail Helpdesk

  • Auto-Routing: Automatically assign tickets to the right moderator based on keywords in the message or the user's history.
  • AI Suggested Replies: Using LLMs to suggest the best canned reply based on what the user is asking.
  • Internal Team Notes: Allowing mods to leave private "sticky notes" on a ticket to collaborate before sending a public reply.
  • Performance Exports: Letting mod teams export their weekly stats to a CSV or PDF to share with the rest of the team.

Built With

Share this project:

Updates