Automating your Reddit workflows.

Description

AutoModerator is a site-wide moderation tool that you can set up and customize in any subreddit to assist you in moderating that community. It can handle many of the sometimes repetitive tasks you do as a mod. Essentially it's a bot that you can program with rules or instructions, to automate some of your moderating tasks.

Unfortunately the barrier to entry for moderators has been too high. Relatively few are comfortable writing the error-prone YAML configuration, often thousands of lines line. Even fewer are comfortable writing complicated regular expressions (regex).

AutoMod is ancient and was built on our R2 infrastructure that powers old reddit. We wanted to migrate automod to our new and shiny dev platform and saw took the opportunity to reframe and rebuild it from the ground up. Orders of magnitude more powerful than its predecesor and dead simple to use.

Introducing Automations, a general purpose workflow Builder and Engine.

Company

Team

Developer Platform

Role

Design Lead

Categories

Strategy

UX Design

UI Design

Prototyping

Year

2022

Greet new user timeline

Welcome new users to the community

Create and manage event-based content

Greet new user timeline
Greet new user timeline

Process content on creation

Design rationale.

Guiding principles

Approachable

  • Direct manipulation
  • Clear mental models
  • Linear execution
  • No branching

Powerful

  • Low barrier, high ceiling
  • Context agnostic
  • Composable

Responsive

  • Desktop and Mobile
  • Lightweight
  • Fast

The core model

Automations are constructed along a timeline, a metaphor that readily resonates and facilitates comprehension. Once the triggering event takes place, the steps are performed sequentially, without branching. Add as many steps as needed.

Model: Step Count

Steps are extensible

Steps possess the capability to invoke actions as well as halt the progression of the automation. These steps can be arranged in a flexible manner, allowing for uninhibited composition. The inherent potency of Automations lies in their elemental simplicity and the versatile manner in which they can be combined.

Model: Step Composition

Steps may be configured

Some steps might necessitate configuration. Hence a UI accommodating both instances where no configuration is needed, as well as scenarios involving configurations with unspecified data structures. This wrapper must possess remarkable versatility, while minimizing the effort involved in constructing and maintaining an expanding collection of steps.

Designed to enable future expansions such as enabling others to build custom steps later.

Model: Step Composition

Flexible configuration for unknown data structures

Build configuration interfaces as a list of pre-canned controls. Developers pick the type and order of controls. Avoids absolute positioning to reduce complexity associated with supporting different viewport sizes. The controls are full width and spaced evenly apart. Minimizes work for developers while ensuring consistency from step to step.

Model: Responsive Controls

Progressive control reveal

The number of controls can be dynamic based on user inputs. The controls are revealed progressively as the user makes selections. This allows for a more focused experience and reduces the cognitive load associated with a large number of controls.

Model: Dynamic Inputs

Property controls

A growing list of affordances to solicit user input. Supports a variety of data types and use cases. Rooted in Reddit's design system, Reddit Product Language, to ensure consistency, accessibility, and reduce development time.

An overview of supported property controls