Design exploration for an improved activity feed
Problem to solve
There's significant desire for a better social experience in GitLab. We have lots of room to improve here. In the linked issue, there's demand for the ability to follow select users (and, extending the concept, potentially projects and groups). While it's easy to imagine adding a "Follow" or "Star" button on user profiles, we don't have a strong user experience for where updates on user activity might appear.
The closest view we have in GitLab is the Activity feed, which appears at https://gitlab.com/dashboard/activity for GitLab.com. This displays activities in a user's project and their starred projects, but could be improved:
- There's too much noise from users I'm less interested in. For
gitlab-org, this feed is filled with every contribution across all projects across every user, resulting in excessive noise that I'm unable to control.
- There's too much noise from activities I'm less interested in.
- The current design approach is text-heavy and hard to read.
- Images are displayed directly in the feed, resulting in these rows using a ton of vertical space.
This approach has some benefits for GitLab.com's social features (follow projects and people you'd like to follow), but also benefits self-managed instances by allowing users to follow other users they work closely with. As a product manager, I'm interested in following what other GitLab PMs are working on - in a similar fashion, users on self-managed instances will benefit from being able to closely follow employees and adjacent disciplines. This is an important improvement for both GitLab.com and self-managed.
We should consider an updated design for Activity that addresses some of the problems articulated above. This design should also work for user-specific activity that we currently display in a user's profile (e.g. https://gitlab.com/jeremy_).
|Final design||Iterative first step|
The content will be constrained by the limited width-container.
Filtering and scoping
The tab bars at the top of the page are replaced with a search bar, and the individual tabs are converted into filters (
Type: Push events,
Type: Merge events, etc.). This bar will also allow users to perform plain-text searches. Since search functionality is not yet available for this dashboard, we will keep the tabs in the first iteration.
In future iterations, we will explore other options for the scope of this list. Currently, we allow users to filter the list by projects they belong to vs. projects they have 'starred'. It may be more interesting to add the ability to follow entities (users, projects, groups).
The individual rows will be restructured so they all contain the following information:
- Profile picture of the author.
- Author's name and
- Description of the event, including a descriptive icon, ID and title of the related object and the namespace it belongs to.
- Additional content, like the body of a comment or a list of commits.
For comment rows, a short preview will be shown inline. If any images happen to be fetched within this preview, they will be shown as small thumbnails which will open the image in a new tab on click.
The behavior for each individual row will remain the same as it is today. In order to navigate to the related object, its ID will have to be clicked.
In the future, it may be interesting to make the whole row clickable in order to navigate to the associated object. Nevertheless, this would make it harder to tap on the individual links contained in the row on mobile devices, so we will need a solution for this tap target problem before implementing this behavior.
What does success look like, and how can we measure that?
- Improved session time and engagement with activity page(s) based on GitLab.com user activity.