IBM Developer Blog

Follow the latest happenings with IBM Developer and stay in the know.

Battle-tested, open-sourced, and production-ready

You’ve probably heard of Node-RED. You know, that super awesome, browser-based, draw-the-flows, and connect-the-nodes tool for easily integrating IoT devices with applications? Yeah, that one.

Maybe you’ve considered using it, maybe not.

In this post, I’ll show you the top five reasons you should be using Node-RED in your applications. Right now.

#1 – Built on a battle-tested technology stack


At the core of Node-RED is Node.js, which (as you know) is a JavaScript runtime that boasts the largest ecosystem of open source components in the universe (okay, I added that last part, but it is the largest on Earth). So it’s mature, has an active community, and LOTS of people are using it.

Because it’s mature, and used so heavily, you can trust it to work. But don’t take my word for it. Ask PayPal. Or Netflix. Or Wal Mart (I could go on).


Okay, so Node.js means JavaScript, right? Sure, but that’s not a bad thing. Love it or hate it, JavaScript has been around FOREVER, and, let’s face it, it isn’t going anywhere.

I’ve used it (reluctantly at first, I admit), but despite its quirks, it works. Plus, it’s easy to learn and use, and it’s powerful. There are lots of reasons (click here for five) to use JavaScript.

Web Browsers

Is a web browser technically part of a technology stack? I dunno, maybe I’m taking creative liberties here. But I do so to make this point: writing GUIs is tough (especially good ones like the ones you and I write).

When you can combine a little markup (HTML/CSS), with a little code (JavaScript), and a dash of metadata (JSON) and get a really sharp looking user interface, then that’s worth mentioning.

Oh, and web browsers are ubiquitous. You like Safari? Great! Firefox? Awesome! Chromium? Opera? All are welcome (sigh, even you, Chrome).

#2 – JSON – way better than XML

What’s wrong with XML

I’m no fan of XML. XML is incredibly flexible, powerful, and expressive, but I don’t like XML because it can be so easily twisted and contorted into a huge steaming pile of hard-to-read application metadata.

When an application developer has fallen prey to the “let’s describe ALL our metadata in XML!” there is no talking them out of it. They are spellbound. Determined to turn the application configuration into a tangled mess (usually right before they leave the team, or worse, the company).

Better metadata

Node-RED uses JSON (that’s JavaScript Object Notation) to describe its metadata. No XML here. Can JSON be perverted? Sure, but IMHO not as easily, and is just plain easier to read than XML.

#3 – Visualize the (network) edge

Flow-based programming is cool

What the heck is “flow-based programming” (FBP)? Only a super cool way to visualize an application’s functionality. Created in the 1970s by J. Paul Morrison for a Canadian bank, FBP is a different way of thinking about programming that breaks the problem up into data, processes that operate on that data, and the network that connects processes together.

Processes are grouped together in a flow in order to accomplish an objective. Similarly, flows can be logically grouped together to accomplish higher-order objectives, and so on. Data in, data out.

And (no surprise) FBP lends itself well to visual programming. So you can draw code. Yes. Draw. Code. That runs. How cool is that?

Life on the Edge

Ah, the edge of the network. Yep, that’s where a lot of innovation happens. Why? Because that’s where a lot of the data is being created. Huge gobs of it. All the time. Data from sensors, cameras, and GPS data from mobile devices like phones and wearables. And don’t even get me started on all the data from self-driving cars (it’s coming, believe it).

Need to innovate using all that data? Well, my friend, that’s the “edge” and that’s where Node-RED shines.

How? Since Node-RED was designed and built by the IBM Emerging Technology Services team as a way to visualize sending and receiving Message Queue Telemetry Transport (MQTT) messages to and from hardware devices, connecting hardware (and their data streams) to applications is baked into Node-RED’s DNA. If you need to build a prototype to show off your idea, why not use one that was designed for the edge?

#4 It’s not a toy

So you’ve built a prototype in Node-RED and your customer is impressed. Now what?

Now you build on that prototype to create the finished product of course. But stay in Node-RED! Whether what you need to build is a single new function, a collection of new functionality, or an entire application from browser to database, Node-RED has you covered from prototype to production.

And if you can’t find a component to fit your needs from the thousands that are freely available, you can write your own!

Check out the Node-RED Starter in IBM Cloud, for example, that will put you on the path to building some serious functionality.

#5 – Not just for IoT

Node-RED allows you to create functionality by wiring together flows of data between nodes using a browser. And it has gained tremendous popularity in the IoT space, by modeling bits of application functionality between IoT devices like sensors, cameras, and wireless routers.

But it’s so much more than an IoT technology (if you’re feeling creative). There are BAJILLIONS of ready-made nodes from Don’t like those? Code your own!

The point is, a node is a block of code that can do pretty much whatever you want. Need to read in some data from Twitter? Check. Need to bump that tweet against a sentiment matcher to see if the tweet is happy/sad/indifferent? Check. Need to read in data from a web form? Check. Execute a serverless function running in OpenWhisk? Check.

You get my point. It’s SUPER flexible. And powerful.

Check out all the great Node-RED content on IBM Developer to discover your own reasons to start using Node-RED today.