Create user service to persist settings across account
Problem to solve
~Manage is trying to improve the user experience by presenting users with usability improvements such as frequently visited projects/groups, sorting preferences, etc. However these features usually use localStorage
, which is only per-browser and per-device. We should persist these across the user account to be able to support a multi-browser and multi-device environment.
Target audience
-
Parker, Product Manager, https://design.gitlab.com/research/personas#persona-parker
-
Delaney, Development Team Lead, https://design.gitlab.com/research/personas#persona-delaney
-
Sasha, Software Developer, https://design.gitlab.com/research/personas#persona-sasha
-
Devon, DevOps Engineer, https://design.gitlab.com/research/personas#persona-devon
-
Sidney, Systems Administrator, https://design.gitlab.com/research/personas#persona-sidney
-
Sam, Security Analyst, https://design.gitlab.com/research/personas#persona-sam
Further details
Proposal
Ideally, we should try to implement a service that doesn't require such a strict schema. Of course, that could cause security implications by having to store arbitrary blobs of user preferences.
Items to be persisted:
List of recent projects List of recent groups (see https://gitlab.com/gitlab-org/gitlab/-/issues/339155#note_688232260)
Realistically, we may want to just hsve certain schemas, then. Such as "frequent items" and "sorting preference".
What does success look like, and how can we measure that?
Persistent user preferences across devices and browsers, instead of on one browser.