2019 Node-RED Community Survey

Introduction

These are the results of our first ever community-wide survey.

We talk to lots of users through our interactions on slack, the forum and elsewhere. This gives us good insight on specific tasks our users are trying to achieve. But it is often in the context of them asking for advice or guidance on how to complete the task. This can give a misleading view on what users are actually doing; we don’t always get to hear about the users who are successfully doing things without the community’s help. Nor do we get the background context of the questions we do see.

The goal of this survey was to get a better overall picture of how and where Node-RED is being used, and whether that fitted with our own perceptions. It was also a goal to validate the priorities of the project’s future roadmap.

Summary

  • The survey received a good number of responses (871) from a reasonably wide cross section of the community
  • Whilst there were no major surprises in the results, it did reaffirm many of our perceptions.
  • Most respondents use Node-RED in a personal capacity, for home automation and similar tasks.
  • However, Node-RED is being used in production and there is a growing amount of commercial usage.
  • JavaScript is the prominent language used alongside Node-RED, but Python and Java are also well represented.
  • Devices are the most common platform for running Node-RED, with the Raspberry Pi way out in the lead.
  • Almost of third of respondents use separate ‘development’ and ‘production’ systems, however they do not have any automation to move between them. This was also reflected in the written comments looking for workflow improvements around version control, CI/CD integration testing and documentation to support these scenarios

You and Node-RED

A clear majority of the users we have daily contact with are using Node-RED in some sort of personal capacity and this is reflected in the survey responses.

But we don’t always get a sense of is the wider context that someone is using Node-RED in. This section sought to get a sense of that context.

As with many of the questions in the survey, respondents could pick all answers that applied to them. We did not further define the terms ‘in-production’ or ‘proof-of-concept’ and left it to the respondents’ own interpretation.

We then wanted to dig a little deeper in the non-personal scenarios - namely use in education and commercial/professional settings.

Broadly speaking, these results reflect our own impressions of how Node-RED is being used. At its core, we have lots of individual users, but there is an ever growing number of companies adopting Node-RED in various forms.

Educational Use

There’s a rich potential for Node-RED in educational settings, but it is not one we have dedicated much of the project’s resources to in the past.

These results show there are a handful of settings using Node-RED as part of their course material. We plan to follow up with those respondents to find out more details to see what else the project could do to support these activities.

Professional Use

This section was intended for those using Node-RED in professional settings. However many respondents completed this section regardless of how they responded to the previous question.

This gives us a good background view of the wider respondent set, which can also be filtered to just the ‘professional’ identifying set.

However, having done that filtering, the trends in the results were largely unchanged. The charts below reflect the complete response set.

Unsurprisingly, most respondents self-identify as Developers. But there is good representation across the whole range of roles.

There’s a natural correlation between use of Node-RED and JavaScript elsewhere in the technology stack. The high proportion of Python is also unsurprising - there are a small number of Python related nodes available in the library and does come up on the forum more so than other languages. We don’t do anything in the core of the project to support the python integration, but that may be something we want to review. For example, the available python-function nodes are not actively maintained and have fallen behind the core Function node in terms of available functionality.

You and Node-RED 2

Naming things is hard. It was only after we closed the survey and started compiling these results that I noticed we had two sections called the same thing. But no matter.

This shows we’ve managed to reach a good representation of experience with this survey.

There were no real surprises in our users experiences with these related technologies.

The relative inexperience around Docker, Serverless and Kubernetes is worth noting as we consider possible future plans around how we can help users manage deployments across larger scale installations.

The large proportion of Home Automation usages correlates strongly with the personal usage responses. Edge device logic is also worth noting.

How do you use Node-RED?

Respondents predominantly run Node-RED locally in some form, with Raspberry Pi 2/3 being the most popular. In the cloud arena, IBM Cloud is the most popular, reflecting the project’s heritage and that we provide a Starter Kits application in the IBM Cloud catalog.

The distribution of operating systems is a somewhat natural reflection of the types of devices being run on. The popularity of Windows 10 should be noted - we don’t routinely develop and test on Windows in the core of the project and rely on the community to feedback issues. That isn’t ideal and we need to find a way to address it.

An important thing to note here is the high proportion of ‘not sure’ responses - this implies a user base that is less interested in node.js itself and takes whatever it is given.

The range of responses here will help us identify where we need to provide more documentation and examples. A decent proportion of respondents who asked about version control were unaware of the Projects feature. We need to improve some of the Projects user experience and think about how we can enable it by default at some point.

A key requirement for the project will be to make it much easier for users to have a proper development workflow that can maintain separate development and production instances.

The following questions help us to identify what nodes are important to users.

Publishing Nodes

Publishing nodes is a key way the community contributes back. Many users have published one or two nodes, with a small number of users who have published more.

The reasons for publishing a node are fairly varied. The high proportion of respondents says they made a copy of an existing node is slightly surprising. We’d like to be able to dig into those responses a bit more to find out why a copy was needed.

Node-RED Community

Understanding how the community has engaged with the development activities of the project will help us towards our goal of getting more people contributing.

Many issues faced by users are more how-to type questions rather than quality issues in the code. That’s a good reflection of the code quality, but reflects less well on the documentation and learning resources we provide.

About You

Feedback

The survey asked respondents what three things they felt Node-RED was missing, as well as any other feedback they wanted to share. This resulted in 1475 comments of which 1166 were identified as feedback we can learn from. Those comments were then classified into a hierarchy of categories. The chart below shows the relative number of comments under each category - click on each one to see more details.

There are no immediate conclusions to draw from this, but these results will help us to shape on the roadmap for the future of the project.

Click a category to see more detail

Methodology

The survey was open for submissions for 45 days from March 12th to April 26th, 2019. It was publicised across all of our social channels - the forum, slack channel and Twitter account. It was also shared in the unofficial Node-RED Facebook group as well as amongst the Node-RED Japan User Group members.

In total, there were 871 responses.

No information was collected on how a respondent found out about the survey so we don’t know which were the more effective methods.

The questions were written and review by the core Node-RED team. The goal was to get a general picture of the Node-RED user community. Through the forum we see a lot of activity from the user community. But it tends to be users asking questions when they are stuck, so it doesn’t give us a good view of the wider community.

As this was the first time we’ve done such a survey, inspiration was sought from various, more established, tech community surveys. This helped identify the sorts of questions we could be asking, albeit tailored to Node-RED.