Node-RED is a flow-based visual development tool that allows users with little to no coding experience to easily create JavaScript functions for wiring together hardware devices, online services and APIs as part of the Internet of Things.

It can be used for other applications outside of the Internet of Things world as well, like collecting information from http, websockets, tcp and more, and storing the data in a database or performing certain predefined actions with it.

Check out these examples: “Using Pushbullet to get notifications from Node-RED” and “Using Node-RED and MQTT to create earthquake alerts“.

Node-RED is an incredibly powerful and flexible tool that provides a browser-based editor which makes it easy to wire together a wide variety of nodes – icons that you simply drag to your work space and then edit accordingly.

A node is a block of code containing a JavaScript function that can do what you want it to do. You can use the nodes that are included by default, you can search in Node-RED’s repository and install new ones or you can write your own.  You can find tons of additional nodes or flows in the official Node-Red library.

The runtime is built on Node.js and that makes it ideal to use for projects where hardware and network resources are limited by taking advantage of its event-driven and non-blocking model, which made Node-RED gain a lot of popularity in the IoT world.

Once your application is ready, deploying it is as simple as clicking a button – “Deploy” – Node-RED creates the GUI for you taking out all the work required to code one.

Simply put, Node-RED allows you to easily create any application that you have in mind thru its simple web-based editor employing visual-based programming allowing you to see what your application is doing and how the components are working together instead of spending large amounts of time creating and understanding all the coding behind it.