UIBUILDER Questionnaire - What's next?

Hi to all current and potential UIBUILDER users.

I have put together a short questionnaire about the focus of UIBUILDER, what is important and what developments should be prioritised.

It will remain permanently open and may change occasionally as things move on. You are free to update your answers or submit new ones. Responses are strictly private unless you want to share a contact with me. Please feel free to pass the link onto others who might wish to add their feedback.

I will share the summary of findings once some data has come in and will occasionally update this thread as things change.

1 Like

I am deferring providing input because at the moment I am not using the modern version of uibuilder. I have been using it from its early incarnations, but have spent a year or two focused on other projects. I wanted to ask one general question. Is it likely that it will reach a point where there are unlikely to be non-security related breaking changes or philosophical updates?

I ask, because the version I first worked with required me to learn quite a bit about Vue. Since then it looks like when I get started again, I will be able to accomplish most if not all of what I want using the built in capabilities. My one fear is if I build based on the current version, will there be a future change where any time devoted to maximizing my efficiency and effectiveness will become irrelevant in the way that much of my Vue work has become?

That being asked, I appreciate and greatly admire all that you have done with this and the many opportunities it enables.

UIBUILDER is not related to Vue or any other framework.
I have just finished my very complex ui-dashboard (7 routes) with just plain HTML/Javascript.
UIBUILDER gives you the ability to "talk" between your web App and Node Red. The way you build your web App is up to you.

My 2 cents.

Fabio

1 Like

Great question. Given its underlying nature of being tied to Node-RED and Node.js, I would suggest that it will never be totally free of breaking changes. Quickly checking the releases, I can see that the last 3 major versions (where breaking changes might be introduced) have come at about 1 year intervals. However, if I remember correctly, the last major release change (5->6) mostly only had potentially breaking changes and not many of those - they would only affect a few people.

Largely, the big breaking changes are over and the underlying architecture has settled down.

Below is the list of probable big changes for v7 when it finally appears (probably not until Node-RED v4 is released unless some other compatibility issue forces things).

There was indeed a time when my knowledge of the DOM and the capabilities of the DOM at the time meant that VueJS was integral to what I was trying to achieve. But that changed a long time back - I can't even remember when now. And with the introduction of the "new" client, the break with VueJS was completed. Even the older uibuilderfe client library only had a couple of minor Vue integrations for convenience.

Other than the new client library and some minor tweaks to the standard URL locations of endpoints, there really have been very few breaking changes over the years.

However, each major release does indicate a change to a newer version of Node.js as the base requirement - generally happening in line with the same change in Node-RED itself. Those will certainly continue to happen. Especially as any required 3rd-party node.js libraries also change. I'm afraid that this is an inevitable consequence of using node.js and browser technologies.

That is certainly my hope - HOWEVER, you won't be forced to, you can continue to use Vue if that is better for you.

To reiterate - your learning of Vue is NOT WASTED - all versions of UIBUILDER continue to support ANY front-end framework, I have yet to find one that doesn't work.

What is happening is the the browser DOM continues to improve and evolve. But it tends to do so in an evolutionary fashion rather than what can often happen with frameworks which is that you get sudden jump changes that require recoding things. This is one of several major reasons that UIBUILDER now focuses on the best use of the DOM. To help avoid big step changes. And to ensure that any learning you put into how to do things with UIBUILDER is learning that is easily applied to directly working with the DOM should you ever wish to do so in the future. You will not be locked into another framework - UIBUILDER is not a framework. It's UI handling capabilities are merely convenience tools that even out the quirks of working with the DOM.

So no, your investment in Vue can continue and will be able to continue in the future should you want that. But, if you would prefer to start to move away from Vue towards vanilla native HTML/CSS/JavaScript, you can do so comfortably.

And my aim is to always have new versions - even major ones - as backwards compatible as possible.

Probably breaking change list for v7

  • Minimum node.js v18
  • Minimum node-red v4
  • Removal of redundant uib-list node
  • Remove Pollyfills from uibuilder editor code (no longer needed now that browsers caught up some years ago)
  • Consider removing the css auto-load in the next major release since at least 1 person has hit a race condition. ref.
  • Switch to default of case sensitive URL's for ExpressJS. Socket.IO is already case sensitive but ExpressJS is not. This can cause issues as shown in Ref - will be optional, see next point.
  • Add URL case sensitivity flag.
  • Restrict onChange to only watch watched variables? (checking to make sure it doesn't start with _ or #)
  • Maybe the removal of the old front-end client - not yet decided which is why that question is included.

Thanks for the very thorough summary. It reinforces my plan to build my future dashboard on top of UIBuilder when I am ready for the next phase of my home automation journey. I will try to bookmark this survey and add my feedback once I am using it enough to have an opinion.

1 Like

I only mention VUE, because in the very early versions of UIBuilder, you largely needed a framework to take advantage of what UIBuilder was providing. I chose VUE at the time because it had the best (comprehensible by me) examples. I have been watching its evolution and recognize that it is less and less dependent on doing extensive front end framework development to make it useful.

1 Like

I do really understand, as that has been my path too. But now I moved my app from Vue to plain HTML/JS/CSS.