Open dasanra opened 2 years ago
An idea for this could be something as:
1) Exposing the widgets url in the manifest.json (Can be a documented and predefined list of sizes for the devs to choose)
widgets: {
size1: "/widgets/widget1"
size2: "/widgets/widget2"
size3: "/?render=widget3"
}
So the safe-app developer indicates where the widget is in their domain
2) We show to the user the different widgets an application exposes (as we have them in the manifest, they can even provide a thumbnail). Similar to the new iOS system to choose the widgets.
3) We use the iframe for loading the widget the user want to use loading from the specified url exposed in the manifest
<iframe src="safe-app.domain.com/widgets/widget1" />
This should be very easy to do for the safe-app developers
I'm a little worried that if we follow the pattern of the Safe Apps themselves, which are a completely arbitrary 3rd-party HTML loaded in an iframe, we can easily overwhelm the Safe home page (Dashboard) with HTTP requests and re-renderings. There are also numerous security concerns related to loading full-blown external apps.
I propose a leaner approach where a widget exposes a single web hook that we pro-actively load and render ourselves with a pre-defined set of UI elements: https://www.notion.so/gnosis-safe/Dashboard-Widgets-API-874c034bf52c4b72b51fe20e95f5f2b3
Part 1: Define the problem
What problem are you trying to solve?
There are many Safe Apps that enrich the Safe capabilities. Problem is that this features are almost hidden, as the user should explicit know and investigate the app to use it's full potential.
What is your hypothesis?
We are relaying some enhanced features to third parties , as they already host services that allow to show advanced information, as historical balance, different pools information to be displayed in same place or even interacting with protocols. But safe users need to know beforehand this apps exists in order to go and open some of them.
If we can enable to extract some sections from this apps and display them as widgets in the main dashboard, we will be both, showing to the user more information that we don't aggregate and also give a shortcut in order to interact with external protocols that they may not know. It will both make easier and showcase the possibilities of the Safe directly from the home screen.
What value does this bring to our customer and/or our mission? What is the goal?
We can make the Safe Apps feel more integrated into our interface. Also we can shortcut some user actions or display some information without really needing to host the full services.
How do we measure it?
Interactions with this widgets. We may configure some of them by default but ideally users should be able to select from a couple different which enhanced functionality they prefer
Links:
// Include useful research, such as user tests, competitive analysis, metrics, or surveys.
Part 2: Shaping the problem
Problem Owner
// Who is responsible for leading the shaping process of this problem statement. Owner should be assigned directly after the Great Filter meeting. PM will assist.
Non Goal(s)
Solution
Solution 1
Overview Team couldn't agree into an unique way to face this problem statement. Still we would like to get a unique outcome from this proposal.
We would like to create few POCs checking easy ways of extracting information from Safe Apps that would aim developers to create small widgets based on apps that already exists.
Rough Scoping & Timeline We would like to create POCs based in some specific Safe Apps
Risk(s), Key Trade Offs & Decisions
Concept Mocks
Alternative solutions & ideas
Open Questions