Concept: DFX Dashboard

Hi Devs

I’d like to throw an idea out here and see where it lands.

Several weeks ago, @kpeacock and I were roadmapping the next few quarters when Kyle brought up the concept of a graphical user interface for DFX.

Imagine a native application that sits on your dock, that when launched, gives you the ability to configure dfx.json visually, call canisters with arguments that can be composed through a form-based UI, and gives you deeper control over your identity while allowing you to interoperate with Internet Identity. There are a number of other bells and whistles we could add, but as a minimum viable product, it would include the following capabilities:

  • ability to log in with Internet Identity
  • ability to interoperate Internet Identity with dfx identity
  • ability to compose canister arguments through a form and call a canister via the UI
  • ability to edit JSON configurations such as dfx.json

Is there some interest from the community to take such a project on? If so, I will happily work with our growth team to put together a bounty.

Would love to hear your thoughts.

Thanks!

11 Likes

Here are some of the bullet points we jotted down during our brainstorming session:

  • Native webframe-based application https://tauri.app/
  • Wraps CLI functionality of DFX with UI
  • Converts JSON to dfx arguments
  • Visualization of canisters on local replica, as well as those controlled by your principals
  • discoverability of dfx capabilities is low - this GUI can aid
  • simplifies cumbersome aspects of interacting with the dfx cli
  • standalone - this serves as a “DFX application” that users can use as an alternative to the terminal
  • Manages configuration and monitoring
  • integrated with dfx?
    • command “dfx dashboard” → downloads the gui app, launches it
      • Possibility for dfx to install GUI or vice-versa
  • provides quickstart experience
  • is the native app aspect necessary? why not just implement as a normal webapp?
    • Tauri allows for deployment to multiple environments (e.g. web / mac / windows)
    • native app could launch “dfx start” itself, whereas a webapp could not do this
  • native app vs browser app
    • reasons for having it be a native app:
      • if dfx is installed on system, native app can replace the terminal for a decent number of workflows. e.g. see the github desktop application
      • identity synchronization between CLI and UI
      • ability to click links that open the native app
      • professionalism / user experience is much higher
2 Likes

As someone new to the ecosystem and getting back into development after a long hiatus, I think it would be great. I may be doing it wrong and inefficient, but as I’m working through the tutorials, or making small changes to learn motoko, having to type “dfx start --background” “dfx deploy” “dfx stop” after incremental changes is painful.

I struggle visualizing canisters so that part would be a great help as well. Personally, any repetitive action that can be replaced by a button for a “noob” like myself would be very welcome. Ha ha!

@jwarner Probably just rerunning dfx deploy would be enough, in your case.

1 Like

Most of the work would presumably be in the js. E.g. doing visualization of more than a small number of networked components well is hard. At least it is if you care about the relationships between the components. Just providing a grid of icons representing canisters would work fine.

If this is built for a native app, presumably the js could still be lifted out and hosted by a canister.

The last time I checked Tauri, admittedly when Tauri was quite young, things such as pinch and zoom did not work; Tauri always returned just a single pointer coordinate. It might be worth testing that it supports the basic set of UI gestures needed for a given design. It probably does. But it’s worth checking. :slight_smile:

That’d be a great thing to have, I suggest adding it to: https://dx.internetcomputer.org/ so we can vote for it and give it more visibility.

1 Like
1 Like

I would like to see the UX/UI design on this

2 Likes

fwiw, we didn’t get this far. we stuck mostly to conceptual discussions around this project. I would love to see some UI mockups as well! that will be part of the bounty.

Hi, we have really loved the idea and want to create a proposal which includes technical scheme, deliverables and milestones for this concept. We will share the proposal as soon as possible. Thank you for this great idea.

2 Likes

Exciting, looking forward to seeing the proposal!

Hi guys, saw this bounty on Github and just came here to apply for it.
I’ve been playing around with the IC SDK and I think adding GUI it’s a great idea.
Please check my Gitcoin portfolio and especially the last bounty I made for the iExec team, (the links are in my application to this bounty on Github, since here are not allowed).
Looking forward to work with you guys.

1 Like

We have submitted a proposal for this bounty on forum, you can check on this link: Open BNT-7 - DFX Dashboard GUI - A native app - #45 by justmert