Custom UI Component Questions/Suggestions

I’m currently looking into the new Custom Component feature. Very promising! I’m interested in contributing components to the marketplace, but have some question related to this:

  1. How would I deliver documentation to my component users? There is a description field for components, but this is certainly not enough to document.

  2. How would I manage component versions? I do not see an option for this. Versions should be first class citizens of components. At least there should be a prominent version attribute. More advanced, it could be possible to maintain different codelines. This is required if you introduce breaking changes by a new major version, and still you need to deliver (security) fixes to existing consumers of the previous version. A workaround will be of course to technically create a new component for the new major version, but this will pollute your marketplace.

  3. Please provide an API to deploy a component project, like I can do it with API services. This opens up the option to leverage common development tools, like IDEs and Git.

  4. For my component, I’m seeing a button “Publish to Marketplace”. I’m afraid of pressing this, because I don’t know what happens then. Is it then immediately visible to everybody? Can I test installations before publishing it. How will monetization work?

Thanks for now :slightly_smiling_face:
Regards,

1 Like

Hello @Klaas_Klever

Thank you for these great questions!
I’m going to answer one by one, see the answers below:

You are right, the component description just describes the component with more details but it’s not suitable for providing docs for a component. So at this moment, we create a README.md file in a component root and in the feature we are going to display the doc in the UI. Currently, we are experimenting with different formats to find the best one, you can check them here ui-builder-library/components at main · Backendless/ui-builder-library · GitHub

Versioning is a quite complicated issue in no-code env.
For now, we consider not having versions and for breaking changes create a new Component Product, but it might be changed in the future/

At this moment there is no such API, however, we are planning to integrate something for the development of a custom component in your IDE and immediately see the changes in the Page Preview.
I believe, in the feature, we will enable the ability to publish custom components using CLI.
Unfortunately, for now, you need to move them manually.

The publishing process works the same way as it works for API_Services/Email_Templates/Blueprints/etc.

  1. you publish your product
  2. at this moment only our review team can see the new product
  3. the team reviews it and then approves or rejects the product
  4. finally the product is available for everyone

Monetization is in the design stage, we are considering a few payment systems and we are working on the main flows

Would that mean, that I, as a component provider, will need to provide documentation via an external web page (like Github)? Or will the documentation be integrated into the UI-Builder UI?

Yes. Versioning is complicated. But as a component provider, I need ways to manage these. I’m ok with a new component if there are breaking changes. However, if someone has adopted my component, there need to be a way for him to update this component. Assume, I have to deliver an important security fix. To enable this, there must be a version attached to my component, which the consumer of my component can compare to the version which she is currently running. Optimally, the flow is as follows:

  1. I’m initially publishing my component to the marketplace with version 1.0.0
  2. A consumer is subscribing/installing/adopting (not sure how this works) my component
  3. I’m doing fixes
  4. I’m republishing my component as version 1.0.1
  5. The consumer gets informed that there is a new version for my component
  6. The consumer can decide to update his current version to the new one

Does this makes sense?

yes, the README.md file will be integrated into the UIBuiilder

1 Like

yes, definitely!

There is will be an ability to update already installed component to the latest version from the marketplace

1 Like