Library/framework agnostic in Custom Renderers

We’re using the Angular version of JSONforms right now and override JSONFormsControl to get a custom renderer working. In our use case we’re going to let 3rd parties provide controls, so we would prefer to be agnostic about whether they write them using React, Angular, etc. Looking at micro front-end concepts to be agnostic about components, but was curious whether this had been already considered by others looking at custom renderers? Our worry is we later want to switch to React, or the latest new thing, but have 3rd parties whose custom renderers are tied to Angular still.

[original thread by Steve Brain]

Hi @steve-brain(steve-brain). You can define your own API, for example based on Web Components or Vanilla JS, write your custom renderers in that API and then integrate them with the binding of your choice. In that case you could reuse the same custom renderers wherever you want. Of course you will always need some wrapper which performs the connection between the custom renderer and the binding.

For forms this is usually not worth it. How complex must that custom renderer be that it would be less effort to write it generically plus a custom binding to JSON Forms plus solving the problem that it should fit to the remaining UI. Very likely this custom renderer should be outside of a form anyway.

Even when you consider a whole renderer set we don’t think that this is the way to go. Which is why we offer three different binding sets plus four different renderer sets instead of writing them generically and trying to bind them to the different UI frameworks.

For the non-UI parts it definitely makes sense, which is why we can reuse the non-ui @jsonforms/core package in all binding and renderer sets.

Overall you will have to decide the question which web technology to use anyway, independent of JSON Forms.