Skip to content
This repository has been archived by the owner on Dec 4, 2024. It is now read-only.

There is no way to show Safe Apps information extract in dashboard (Safe Apps Widgets) #92

Open
dasanra opened this issue May 5, 2022 · 2 comments

Comments

@dasanra
Copy link

dasanra commented May 5, 2022

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)

  • Create many widgets at once

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

  • Small trading widget from Uniswap - 1inch or any other DEX
  • Widget to show balance timeline from Zerion
    App developers could define a route in the manifest.json where they provide a simplified view te be used as a Safe Widget. They could provide even more than 1 widget.
    We would also enable a way of adding widget without the need of a full Safe App

Risk(s), Key Trade Offs & Decisions

  • It could happen that after this problem statement we couldn't get a final way of creating this widgets. Also as it's an investigation topic, we could run out of time during 1 roadmap cycle.
  • We need a simple way to create this kind of integration, as external developers are not willing to do regular checks on integrations
  • Depending in the final decision there may be dependency with backend, as if Safe Apps developers provide routes for widgets in manifest we need a way to index and extract this. Still the POC should be possible.
  • We will need to create lots of new documentation so community members could create widgets
  • During this process we would like to sync with external teams to get feedback on how this feature sounds to them

Concept Mocks

Alternative solutions & ideas

Open Questions

@yagopv
Copy link
Member

yagopv commented May 16, 2022

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

  1. 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.

  2. 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

@katspaugh
Copy link
Member

katspaugh commented Jun 8, 2022

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

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants