I’ve been following the engaging discussion on the forum titled “Developer Experience must be our #1 Priority”, and I couldn’t agree more.
I’d like to emphasize the importance of enhancing the Frontend Developer Experience: I think that the main target is to fight all the frustrations that UI devs have on entering the ecosystem by understanding and building everything from scratch, to connecting their UI App with the blockchain network, and providing a seemless front-end experience; Mainly to reduce the complexity of building a UI App, in polkadot using all fracture information around the web and the minimum documentation and examples;
Just a suggestion
In order to reduce our efforts on building apps, reuse the existing code and at the same time provide some guidence/docs on “how things work” we have been working on a side pet-project, with @ross (Ross Bulat), for the past few months called Polkadot Cloud - a library and platform for developing and publishing assets for Polkadot dapps. It was identified and conceptualised as a need, almost 2 years ago, started under the name “Dashboard UI” almost a year ago, and finally converted to today’s Polkadot Cloud;
The idea was this: instead of forcing developers to build everything from scratch, in order to make their UI App communicate with the blockchain network and/or integrate online or offline wallets, we can provide a stepping stone with tools and resources needed to streamline the process and allow the developers, go from zero to PoC in no-time;
It is designed to serve as a repository, hosting a wide array of assets, including data sources, graphical elements, fully functional components, and what we refer to as “recipes”, that app developers can effortlessly integrate into their codebases - but at the same time it is not meant to replace other Components solutions (such as MaterialUI, Ant.Design, Bootstrap etc etc)
“What is what”, when it come to packages:
Core
- Core styles and themes for Polkadot dapps that other packages can utilise to implement the supported UI components in their respective frameworks;
Assets
- Data sources and graphical assets for key ecosystem elements, such as web extension wallets and validator operators;
Utils
- Common utility functions to aid in Polkadot dapp development;
React
:
Components
- Functional React components for Polkadot dapps.
"Recipes"
- A combination of functional React components, utils, assets for structuring a reusable block, ready to plug’n’play in any JS/TS-ready dApp;
Providers and hooks
- Reusable react providers that bring with few lines of code full functionality to a dApp (e.g. Connect Extension Provider).
It is meant to be Javascript-framework agnostic:
@polkadot-cloud/react
: Functional React components for Polkadot dapps.
in the future what can be added are other famous frameworks, re-using the existing Javascript utils, assets, SCSS classes: e.g. @polkadot-cloud/vue
, @polkadot-cloud/angular
etc;
It is also planned and aimed for this to be API agnostic, meaning that components can be used with PolkadotJS API or the newest Polkadot API, a custom API or even without;
Note:
It’s important to clarify that this initiative is not meant to be a one-way library. Instead, it serves as a conduit for gathering reusable solutions and sharing them with the broader community and ecosystem, effectively functioning as a reference and documentation hub. The goal is to promote reusability and collaboration within the ecosystem.
This is meant to inspire and invite UI developers within the ecosystem to actively participate. You’re encouraged to develop your own components, hooks, providers, and what we fondly call “recipes.” You can then submit these as Pull Requests (PRs) in Polkadot Cloud’s repository. By doing so, you’ll be contributing to a collective pool of resources that benefits everyone. This open-source, collaborative approach is at the heart of the mission, and we look forward to seeing the community’s innovative contributions.
Goals
“Polkadot Cloud aims to fill a void in the Polkadot app developer space by providing high quality, well-maintained, critical assets for app developers.”
It should simplify the lives of UI developers and contributing to a more robust, unified and user-friendly developer experience within the Polkadot ecosystem.
The goals of Polkadot Cloud are as follows:
- To provide a go-to platform / hub for Polkadot front-end assets, data, services, components, recipes to serve the Polkadot app-developer community.
- To obliterate the narrative of Polkadot having bad UX.
- To increase the quality of Polkadot apps ecosystem-wide.
- To expedite the creation of quality Polkadot apps.
- To provide some standard flows / behaviours for key features, like connecting to wallets and signing transactions.
The “Dream”:
One day a dev will be able to puzzle together Polkadot Cloud
“recipes” and utils to create in few hours a prototype idea or a PoC;
Some facts:
- The app, npm package structure and the majority of components have been onboarded in only 2-3 months - we’ve rapidly developed this concept in a very short period of time;
- Polkadot Staking Dashboard and PolkaGate already using some of these tools;
- Repository have already a couple of forks already and for what its worth - our core package has 3k weekly downloads;
Feedback and collaboration are highly welcome, and we look forward to seeing how this project can benefit the Polkadot community.