Pluginable cross-platform software design for expo

I want to design a cross-platform (Android, iOS, and Web) plugin-able software that means everyone can easily develop a plugin for it and users can pick plugins from the marketplace and install it. Every plugin can:

  • share data in the back-end side with the core application
  • have a custom UI in Apps and Web that ideally using a standard UI-kit for consistency (for example Shopify polaris)

In the back-end, there are many best practices in software design like OAuth. but in the frontend, the problem is not straightforward:

  1. Is there any cross-platform UI-kit for react and react-native? for example using Expo we can build the code for android/ios and web but I can’t find any cross-platform UI-kit. (NativeBase, Elements or similar cross-platform UI-kits are only for Android and iOS)

  2. In the Frontend, how plugins can share UI using react and react-native (or ideally a cross-platform UI kit) somehow that render in the core dynamically (without needing any update, for example, the plugin provide an endpoint and return a react/native component and the core will render it)

Software architecture