Mobile. Social Media. Design Process.

Discord Reminders

Discord Reminders
Year
2022 (3 Months)
Role
Product Designer
Team
Solo

Overview 

This is a concept project.
I did not create this feature as an employee of Discord. This is made independently of the company.

Discord is a messaging and social media application with over 300 million registered users and over 150 million of those same users being monthly active users. There's a lot of messages and information to go through with a massive community like this.

I wanted to create a new feature for Discord as it is one of my most used applications today, which I've used since its alpha in 2015, and one of the leading social media applications in the world.

Users forget things

Billions of users go through social media platforms once a day, if not multiple days, to see what is happening in their communities and across the world. It’s a lot of information to take in at once and there are concerns about over-exposure to digital media on mental and emotional well-being. Overall, what users want is pertinent information.

The problem: How can I avoid missing critical information?

Made a way to mitigate forgetting

Notifications, emails, alerts, and similar methods of bringing up potentially missed information are all current solutions. The user, however, may not have control over how often and when these notifications show up–and eventually too many unprompted notifications become noise and go ignored. If I were to design a notification a user specifically wanted, then that leaves one good path to start working on.

The solution: Create a way to set reminders on messages.

Summary showing how a user can select the information they want and get the notification they ask for.

The results were better than expected

Though this feature is not a live product, I got results from the final iteration I can share here.

Picture showing results: 100% task completion rate, 4.5/5 user rating, and 7sec average time on task.

Design Process

The objective is to figure out pain points of users before delving heavily into potential solutions for the users.

Once the research is done, I can go straight into wireframes and high fidelity designs as I have Discord’s media kit and design system. Because I have an existing design system to follow, it reduces the time spent immensely and there's no need to create a new design system or 'reinvent the wheel.'

Image showing the design process involved in the case study.

Understanding the Users

I conducted brief 5-10 minute interviews with 5 Discord users, focused mainly on who expressed mild to major frustration with being unable to keep up with messages and threads in Discord.

Short interviews at the start allow us a first impression look at our users, help set up personas and user flows, and can be done rapidly across a wide userbase.

Generally speaking, who to design for?

From the user tests, there were plenty of issues present and given from users, such as lowering mental space to not have to constantly check their phones and Discord as well as figuring out a way to remember past information.

Personas were opted over for only user stories because I'm setting up a generalization of the users. Discord has a massive amount of information on their users currently, so personas used in this scenario are an alignment tool for my design needs.

Image showcasing two different personas, Tyler and Michelle, and their primary pain point in quotation marks.

Considering the user feedback about missing information and knowing when to act, I settled on the following solution: Create a built-in reminder function for Discord.

From our validation and initial interviews with users, even though bots are already doing reminders on Discord for users, there is a desire for a built-in feature rather than using bots and other external tools a user goes through multiple steps to setup and implement.

The current solutions are limited to only the server they are authorized and set up on. There is no cross-server solution currently available at the writing of this case study.

How would a user remind themselves?

To accommodate Jakob’s law, preserving familiarity with how current programs and solutions deliver reminders is key to the solution. Users have two primary tasks and ways to accomplish creating reminders to consider.

Two user flows: How someone can set a reminder on a message and how someone can make a custom reminder

Research

Competitors and Discord alike

Discord's primary competitor is Slack, but additional direct competitors are bots and programs integrated with Discord already with reminder functions, such as Apollo and Remindme.

How I design the reminder feature should, at a minimum, meet or exceed similar impacts compared to these competitors. Additionally, I also identify the strengths and weaknesses relative to Discord so I can better refine my feature I'm designing and use the competition as a springboard for my own designs.

Competitive research results on Slack, Apollo, and Remindme
Slack and Discord share similar command processes!

Slack also has an option to select a message in a current thread or channel which opens a prompt to then set a reminder on. This idea may be transferable to Discord as well.

Slack has a help center link (Slack Reminders) detailing their reminder process in detail and below is an example from the Slack website on how their reminder function is implemented.

Image showing how one competitor, Slack, has specifically designed a working reminder feature built-in to the application rather than added on by a bot or third party program.
Working within the existing Discord design system

Using built-in functions means adhering to the current syntax and rules Discord implemented for them, such as the examples below.

The following screens in this section are not ones I recreated, but borrowed from Discord's application to showcase here.

Design constraints of Discord in accessing commands and menu displays on the mobile platform

Every time text is used to enter a command, a forward slash precedes the command first, then provides categories for you to fill in related to that command. Selecting a message by holding it on mobile or right clicking on desktop or browser to set a potential reminder opens a menu prompt you need to follow, like the one below. No solution may deviate heavily from Discord’s current design system.

Wireframes

Designing a new feature for Discord, or anything with an existing design system, has its benefits. I can adopt all system rules and push out wireframes and designs quickly. 

That bypass is why I opted out of low fidelity and went straight into mid fidelity for all iterations. I can edit the components and information needed once the necessary recreation is complete.

6 wireframes showing the primary process/design going forward

Moving into High Fidelity

To easily convert from mid fidelity into high fidelity, I created multiple components and recreated a style guide from Discord’s media guidelines. Any changes I make through iterations can be solved in minutes rather than hours doing this method.

Adjusting the Design System to my needs

The following is an adaptation of the current Discord Branding Guidelines mentioned on their website and press kit used for designing this case study's outputs.

I had to made something like this myself because I needed a way to adjust component colors and typography within the design program quickly rather than manually adjust piece by piece.

Style Guide based on Discord's Media kit guidelines
Component Design

There is a vast array of components to recreate ranging from chat boxes to status windows and side bars. Here is an example of starting with components to make the final product.

Examples of how designing components first led to the final design

User Testing Guidelines

With the reminder feature, I’m focusing on improving and capitalizing on three criteria to determine my product effectiveness.

User Testing Guidelines: Task Completion, Time on Task, User Satisfaction
How to Test

For every iteration, testing is done with 4-6 people in an unmoderated, guerilla setting, through a high fidelity Figma prototype.

  1. Users are sent a Figma prototype to test, with a series of tasks to complete.
  2. Users confirm at each stage if they completed the tasks successfully
  3. Each user is asked to submit any pain points/improvements they want to see to the feature.

The tests involved users creating reminders and accessing reminders, as well as how they felt throughout the prototype and any pain points/improvements to see and/or remedy.

Testing Assumptions

My product prototype heavily relies on a user’s competence with Discord during these tests and also assumes the new features are seamlessly added into Discord’s current framework and won’t detract from their experience.

Iterations & Findings

With the user tests defined across iterations, now I can simulate as many times as desired with the defined testing model.

Iteration-by-iteration testing lets me examine the results at each instance and decide whether or not more redesigning is needed or if the solution is sufficient.

A different way to approach design iterations

Rather than a typical design-centric approach, I based my design iterations around an artificial intelligence (AI) algorithm approach.

This algorithm is known as the "Hill Climbing Algorithm" is considered in the class of mathematical optimization and designed for heuristic searches, and has precedence in marketing, logistics, as well as the common traveling salesman problem.

There are several great things about following this particular algorithm as a basis for design, even if not originally meant for it.

  • Considered an anytime algorithm, where each iteration on its own is a valid solution based on criteria the researcher sets.
  • Can be done with a limited amount of time.
  • Can be done by starting from an initial condition the reseacher sets or random conditions on each iteration.
  • Works by finding small/incremental improvements over each iteration to find an optimal solution.
Hill Climbing Algorithm Diagram showing the basics of the AI algorithm for non-technical personnel.

Showcasing features in high fidelity

The first iteration and prototype lets users set reminders in two distinct ways:

  • Feature 1: Set an independent reminder using the message box.
  • Feature 2: Select a message in a channel to set a reminder on.

When a reminder was set, users receive a notification in the channel they set the reminder in. The text displayed is based on if a user selected a message to set a reminder on or made their own reminder.

/remind and /remindme are intended to be interchangeable commands if the feature gets launched.

High Fidelity Iteration 1 panel showcasing both features

Iteration 1 Results

Key User Feedback
  • "Good for channels that have a lot of chat traffic."
  • "Where would I be able to see all the reminders I set up?"
  • "Possibly too many notifications, but otherwise flows well."
Quantitative Results
  • 75% completed all tasks successfully
  • 9 sec. average time on task across all tasks
  • 4/5 User rating on the features

Iteration 2

The second iteration adds a new menu option users may access to view all reminders they have active in Discord.

From this new menu, a user can go to the relevant area the reminder is set at or even delete the reminder if they don't need it anymore.

Iteration 2 screenshot showcasing how we now collect a list of reminders set by the user

Iteration 2 Results

Qualitative Results / Key User Feedback
  • "Possibility to have all reminders sent to a certain channel?"
  • "It was very straight forward."
  • "Sometimes missed out on where the notifications were sent to."
Quantitative Results
  • 100% completed all tasks successfully
  • 12 sec. average time on task across all tasks
  • 4/5 User rating on the features

Iteration 3

The final design iteration improves on the second iteration by redirecting notifications. Clyde now directly messages you about your reminder text, the time you set the reminder, and a cached message link you may click to find the context of the reminder provided you still have access to where it was set.

Through this change, notifications on your reminders become independent of all Discord servers, can be accessed in one place through your DM history, and removes a significant server dependency.

Screenshot showing how iteration 3 sends reminder pings to your DMs now instead of an in-channel ping.

Iteration 3 Results

Qualitative Results / Key User Feedback
  • "I LOVE that I can check all of my notifications in a single place."
  • "Reminds me of Slack and how naturally it felt to set reminders there. Nice to see something like it here too."
  • "You should consider a calendar if you ever update this."
Quantitative Results
  • 100% Completed all tasks successfully
  • 7 sec. average time on task across all tasks
  • 4.5/5 User rating on the features

Final Designs

After multiple iterations of testing, I compiled all feedback, made the changes based on that feedback, and redeveloped the prototype to represent the final product and go through both user flows in their entirety.

The first picture is how many screens are involved across the entire process while the second picture is a summary screen highlighting key features and offerings of the reminder system.

Vast collection of all the screens involved in the final iteration design

Prototype

This design was built in Figma and there is a functional prototype of the intended feature and how it works implemented and available for use.

Figma Prototype

Lessons Learned

There are plenty of changes to apply in future versions. You can allocate reminders to specific dates on calendars rather than specifying a later time for a reminder, is one feature mentioned in feedback and comes to mind.

The following are the primary lessons learned from designing these features.

Takeaway image showing 3 key lessons on sufficient over necessary solution, overreliance, and reminder noise.

You've seen the works, but what about the person?