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.

Links / references

Edited Sep 29, 2021 by Hannah Sutor
Assignee Loading
Time tracking Loading