Creating entire web applications inside a single subflow

Hi everyone :slight_smile:

I've been using Node-RED for some years already and I got curious about one of the directions of the project. I've been working on a web application created inside Node-RED as a subflow. The final result ended up being just one subflow like the following:

Screenshot from 2020-07-31 23-33-59

Basically, all frontend and backend of this web application is stored inside this subflow and it has only one outside parameter that is the name of the page used. In this case, this node runs an app on http://localhost:1880/apiname. If I copy this node and change its parameter it'll create a completely new instance of my application on a different page. Each application with its own files.

Inside this subflow I got a diagram that's always increasing its size:

One of the limitations I've started feeling with creating a web application inside a subflow is that I don't have a git version control for specific subflows... I know I can use the projects feature for enabling a version control of all my flows at once and that feature is great for me while I'm working on this project just by myself. However, when different people want to participate with new features it's not very straightforward to synchronize those changes (except if I convince people to create an entire instance of Node-RED only to develop this one subflow). Has anyone here in the community ever crossed with this problem as well? Is there a workaround for this issue? Or creating entire web applications inside a subflow is not the intended purpose of this functionality? :thinking:

I'd like to know if the idea of having a version control feature for individual subflows is something that has already been considered or if that's not really how subflows should be being used. My main issue by now is just that I don't have an easy solution for how I could share my app with other people who can contribute to coding (at least not in an easy way).

The current thinking is a design around exportable subflows (see https://github.com/node-red/designs/tree/master/designs/exportable-subflow )

This would let you build your subflows as individual projects under git control, and then export them, and import to a larger project as required.

1 Like

I see... Seeing your link I understood that this design feature is yet to be implemented, is that right? Are those design documentation features all the features that are going to be implemented on the next Node-RED version?

The designs in the node-red/designs repo are all things being looked at. That does not mean they will arrive in the next release.

In this instance, the exportable subflows feature is something that will be in the next release in some form. Still need to review the PR and refine the details.

1 Like