Inspiration

DevPouch is a sample desktop app built on top of the Tauri framework.

What it does

The app itself is a very minimal implementation of a wallet on the IC network, based on the identity that dfx uses to deploy canisters.

How we built it

DevPouch is built with React on the "front-end", and it is a very simple one page app. It does not use the agent-js library for communicating with the IC ecosystem, all the calls are being routed through the rust "backend"

Challenges we ran into

While Tauri is an awesome project with a ton of strong points, it is still young compared to Electron. I've prototyped some functionality that ended up being dropped due to platform glitches (e.g. the file drag & drop is buggy on Linux). Another pain point was that the automated github build for Windows errored out due to some SSL configuration on the build VM, so I had to chose only Linux and MacOS for the moment.

What we learned

Rust rocks?!

One of the key advantages of using Tauri, and the reason why I wanted to explore the ecosystem, is that we can reuse code very easily. The JS code can be written with zero knowledge about IC, crypto, web3, etc. With a React custom hook for example, the front-end developers have a straightforward experience, similar to using the Fetch API.

What's next for Dev-Pouch

I think there are a lot of cool things that can be developed on top of Tauri. I initially envisioned DevPouch as a GUI companion to dfx, and some potential features include:

  • Creating easy point & click experiences for creating new asset canisters, and drag&drop support for uploading files
  • Tracking & controlling canisters deployed on the IC (via APIs like icscan) - I had some functionality prototyped for this, but I had to scrap it due to time constraints.
  • Adding any open rust-based libraries that the community creates (like a easy-to-use backup library that allows you to get your canisters backed-up on your local machine)

Built With

Share this project:

Updates