To quote Wikipedia:
Node-RED is a visual tool for wiring together hardware devices, APIs and online services – for wiring the Internet of Things.
The light-weight runtime is built on Node.js, taking full advantage of its event-driven, non-blocking model. This makes it ideal to run at the edge of the network on low-cost hardware such as the Raspberry Pi as well as in the cloud.
With over 120,000 modules in Node's package repository, it is easy to extend the range of palette nodes to add new capabilities.
The flows created in Node-RED are stored using JSON which can be easily imported and exported for sharing with others.
An online flow library allows you to share your best flows with the world.
Node-RED can be run on just about any platform and is available as a cloud service. There are many specialized IoT nodes (program pieces) available when running on the Raspberry Pi that allow for quick prototyping with minimal programming.