Inspiration

Moderators frequently make exception-based decisions — approving a post that technically violates a minor rule because it provides significant community value or breaks important news. However, Reddit's native workflow only provides a green approval checkmark, with no built-in way to explain the rationale to the rest of the team.

This leads to "context loss": other moderators may reverse the decision or waste time asking "Why is this still up?" in external chat apps. ModNotes Memo moves documentation to the point of decision, ensuring team context is preserved directly on the post.


What It Does

ModNotes Memo adds a private, internal note system directly to Reddit posts via the post context menu. It allows moderators to:

  • Add Notes — Attach brief memos (5–500 characters) explaining their actions.
  • Categorize — Use labels like Rule Exception, Approved Contextually, or Team Decision for quick filtering.
  • View History — See a post's entire note history, including authors, timestamps, and edit logs.
  • Maintain Privacy — Notes are strictly mod-only and are never visible to the public or the post author.

How It Was Built

The project was built using Devvit, Reddit's developer platform, and follows a production-ready modular architecture.

Layer Technology
Backend Hono web framework — API routing & CRUD
Storage Devvit Redis — persistent, subreddit-level data
Frontend React + TypeScript — minimal, reliable UI
Tooling Vite (build) + ESLint (code quality)

Challenges Along the Way

The original vision was more ambitious. The ideal UX would have rendered mod notes directly alongside the post — visible inline on the page without any extra clicks, the way sticky notes sit on a document. However, Devvit's sandboxed architecture does not permit arbitrary HTML injection into Reddit's native post view. This was a hard platform constraint, not a design choice.

The result is a pragmatic pivot: notes are accessed via the post context menu, which adds one interaction step but preserves the core value — documentation at the point of decision, without leaving Reddit. This constraint also defines the clearest item on the roadmap: if Devvit ever exposes a post-surface rendering hook, inline note previews become the immediate next feature.

A second technical hurdle was reliable form data extraction. Devvit's request structure varies between environments — sometimes nesting data in a formData object, other times providing it at the top level. The solution was a robust union-based extraction strategy:

$$\text{Data} = \text{TopLevel} \cup \text{NestedFormData}$$

Additionally, enforcing strict permissions for a "Zero-Footprint" non-moderator experience required careful validation within the Hono middleware and storage utilities.


Accomplishments

ModNotes Memo solves a genuine friction point for large, asynchronous mod teams — bridging the gap between taking an action and documenting it.

The implementation estimates a reduction in mod-chat clarification requests of:

$$\Delta_{\text{requests}} \approx 40\% \text{ – } 60\%$$

The project is fully type-safe and ready for public release on the Devvit App Store.


What This Project Taught

Building this app provided deep insights into:

  • Persistent state in serverless environments — handling failovers between Redis and in-memory fallbacks like globalThis.
  • UX for high-velocity moderation — ensuring that adding a memo adds seconds, not minutes, to the workflow.
  • Designing within platform constraints — hitting a hard ceiling (no HTML injection) early forced a sharper focus on what the tool must do versus what would be nice to do.

The core design principle: let \( t_{\text{memo}} \to 0 \) so that documentation never becomes a barrier to action.


What's Next for ModNotes Memo

Rationale at the Point of Decision

  • Inline Note Surface — The moment Devvit exposes a post-level rendering hook, notes move out of the menu and onto the post itself. This is the intended end state.
  • Note Templates — Pre-set rationales for common exceptions to speed up work further.
  • Search & Filter — Advanced tools to find notes by label, date, or author.
  • External Integrations — Relay important notes to Slack or Discord for full-team visibility.
  • Bulk Actions — Approve multiple posts simultaneously with a single attached memo.

Built With

Share this project:

Updates

posted an update

Spent time this week pushing the UI further and experimenting with HTML injection to render notes inline on posts....the dream was notes visible without any extra clicks. Turns out Devvit's sandbox doesn't allow it. Hard platform ceiling.

For now, notes live in the context menu. The vision is intact, just waiting on Devvit to expose a post-surface rendering hook.

Log in or sign up for Devpost to join the conversation.