In this article our UX designer Xinyu explain the importance of activity streams and how we've implemented activity streams for Open Social

Why are activity streams important?

Activity streams are very important components for online social platforms. They work as the ‘blood’ of a social community, which delivers the right information to the right people. They also allow users to interact with the past, so users can always keep track of what a person or a group has been doing.

In this blog post, I will explain what activity streams are, why they are important and how we designed them for Open Social.

What are activity streams? On World Wide Web Consortium, an activity stream is defined as:

A UI paradigm for displaying recent activity within a context. Activities are typically displayed in reverse chronological order and consist of relatively simple statements such as "John uploaded a new photo" or "12 people liked Sally's post"

Activities streams are important for online social communities because:

  1. They can be tailored to a user’s interests, so users can always find interesting content in a central place.
  2. They keep track of the activities of a user or a group, so users can always see what another user or a group has been doing.
  3. They can be used to notify people with activities that require their attention or action.
  4. They help users to explore the community, so users can easily expand their network.

Activity streams in Open Social

In Open Social, activities are implemented in several areas:

  1. Logged-in user home page: this is a page every user visits right after logging in the platform. On this page, the activity stream shows the most interesting and relevant activities for this user. For example all the activities from the groups this user is part of.
  2. Explore page: this is a page on which users can see everything happens in the whole community. The activity stream on this page allows users to explore what the whole community has been doing and expand their network.
  3. User profile: activity stream is also implemented on each user profile. Through this activity stream, other users can catch up with what this user has been doing. This is useful when the two users have just come to know each other or when they want to reconnect after a while.
  4. Group profile: in the activity stream of each group, users can always see what the group has been doing with minimum effort.
  5. Personal notification: in Open Social, we highlight the activities that requires users attention or action and notify users via on-screen and email notifications.

For example, when another user created a post on your profile, you will receive a notification:

Post notification and activity stream on individual profile.
An activity stream on an individual user profile.

Type of activities in streams

In Open Social, a global architecture was created that makes it possible to generate activity stream items based on various type of activities. These activity types are:

  1. Create: when a post, event, topic, user or group is created.
  2. Join: when a user joins a group
  3. Enroll: when a user enrolls to an event
  4. Comment: when a user comments on a post, event or a topic
  5. Update: when a post, event, topic, user profile or group profile is updated.
  6. Remove: when an event or a topic is removed from a group.
  7. Delete: when an event or a post, event or topic is deleted from the platform.
     
Activity stream and posting comments.
Commenting on an activity.

Activities aggregation

It is always important to make sure each activity stream is interesting to the users. However, when several people commented on the same topic in a short period of time, showing each of these activity separately will make the activity stream repetitive and boring for the users, for example:

  • Jenny Baker commented on topic ‘How to bake perfect bread’
  • Mary-Lou Wallace commented on topic ‘How to bake perfect bread’
  • John Smits commented on topic ‘How to bake perfect bread’
  • etc.

This is why in Open Social, we aggregate these similar activities that happened in a limited time period. Take the example above, in Open Social, only one activity item will be shown:

  • Jenny Bakker, Mary-Lou Wallace and 3 other commented on topic ‘How to bake perfect bread’

Tips for designing activity streams

  • Each activity stream should be relevant to its context. For activity streams, it is important that users understand why a activity stream is shown in here and it should help users with the goals they want to achieve. For example, on the a user’s profile, it is good to show what this specific user has been doing; on the exploration area, the activities of the whole community should be shown so users can explore new things and expand their network.
     
  • Provide rich interaction possibilities in each activity item. Users can become interested in one activity due to various reasons, such as the event or topic an activity is related to, the user who performed this activity or the group this activity took place in. Therefore users should be able to know more about a relevant event, topic, user or group easily.

    Activity stream in personal notification is one exception. For personal notification, it is better to limit the interaction possibility and lead users to the place where the activity actually happened. This is the place where users need to pay attention or perform action. For example, when I am notified that a message is posted on my profile, I would go to the message directly to see what is the message and how I should reply.
     
  • Avoid showing negative activities in activity stream. Besides showing what is going on in the community, activity stream also motivates users follow others example and be active. Showing negative activities is against this idea. Negative activities could be shown in personal notification when they are very critical to the user, for example when a topic or post created by this user is removed by content managers.

To sum up

Activity streams are very important in creating an activity and fast growing online social community. In Open Social, activity streams are used for various purposes and there are various type of activities can be displayed in activity streams. To make activity compact and interesting, we aggregate similar activities in activity streams.

Last but not least, a few tips are provided for designing activity streams:

  • Each activity stream should be relevant to its context
  • Provide rich interaction possibilities in each activity item
  • Avoid showing negative activities in activity stream

Some further reading

Activity feed design- Stream 

UI design pattern tips: activity feeds- Create Bloq

Activity Stream: Design Patterns- UI Patterns

Contributing to Open Social or Drupal

So how to go about contributing to Open Social and/or Drupal in general? For Open Social a good starting point is the Open Social Documentation Guide. If you want a starting point for helping Drupal to grow you can find many different ways on the 'ways to get involved'-page on Drupal.org.