I love this article and your elegant solution for a service.
Trey Eckels
1

Thank you! The reason for the interface/facade is to give the client a way to render the widget without exposing them to the dependencies required to render it. If we just provided the components, we would be assuming the client is already a React application and has React available on the window object. This pattern allows the widgets to render in any application without any additional dependencies.