Redesign Activity Dashboard
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.
Solution for first iteration
The page content will be constrained by the
limited width container.
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.
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).