How to build an UI plugin architecture with meteor, react and npm modules?


#1

I need to build a modular application that can be assembled from plugins. Each deployment can be customized by choosing the right set of plugins and building a particular layout.

So I need:

  • a shell app
  • a collection of UI plugins that are npm modules
  • plugins can be mounted in menus, tabs or fixed points in UI
  • some plugins are capable to load other plugins (eg. as tabs)
  • a configuration file that describes how plugins are assembled together to build the application

Application start flow example:

    1. shell app is loaded
    1. shell app reads from configuration file the mount points
      – loads plugins in fixed points (eg. in a div on the front page)
      – creates menus and links to plugins
      – creates tabs and links to plugins
      – plugins that are loaded and have mount points will load or link to other plugins
  • user selects a menu
  • the linked plugin is loaded on screen

Can anyone provide some feedback on my approach and possible options?