I was thinking of starting a new dashboard project improving from the previous one (actually a complete rewrite from ground up).
- keep the same structure with widgets represented as nodes in node-red only in the new version, the layout would be edited directly in the dashboard. So no more groups/tabs defined in the nodes config, but created on the dashboard in edit mode and move/resize/etc.
- The main goal is to load as fast as possible and keep the bundle sizes to a minimum. Everything will be lazy loaded (except the base set of widgets button/switch/etc.) only when it's needed and visible, events will flow only for the widgets that are visible. The CSS will be kept to a minimum (meaning no bootstrap or material or big libs with lots of unused things).
- support for themes from the start (probably using CSS variables)
- frontend widgets will be defined using custom elements that need to respect a simple contract. Nodes will define what bundles (styles/scripts) a widget needs and what element should be used. Each widget should have read/write access to the state and send/receive messages with the backend.
- add support for push notifications. Meaning you can push messages (from node-red) that appear directly on the phone without installing an app. This will make it easier to get real time important notifications from your node-red.
- since widgets (including their bundles) are loaded only when needed on the frontend, it should be possible to create a compatibility layer with the existing angularjs template node so that if someone uses a template node, a special bundle that include the angularjs compiler will be loaded and used... This is without impacting the other users.
- external node-red plugins will be able to define their own widgets for the new dashboard
- possibility to define multiple dashboards in node-red (with configuration objects, on different ports) so no reuse of the node-red http router.
What do you guys think? Anyone interested? What other features would you like?