
Node-RED
Low-code, flow-based tool to wire devices, APIs, and services using a browser editor and Node.js runtime; widely used for IoT, automation, and integrations.

Node-RED is a flow-based development tool for building event-driven applications by wiring together “nodes” in a browser-based editor. It provides a Node.js runtime that executes flows and integrates with devices, APIs, and online services via a large ecosystem of community-contributed nodes.
Key Features:
- Browser-based visual editor to create flows by connecting nodes (inputs, processing, outputs)
- Node.js runtime for executing event-driven flows, suitable for edge devices and servers
- Large palette/ecosystem of nodes (community “contrib” modules) to integrate protocols, services, and hardware
- Built-in support for common integration patterns: HTTP endpoints, WebSockets, TCP/UDP, file I/O, and scheduling
- Function nodes for custom logic in JavaScript plus reusable subflows for modularity
- Context storage (in-memory and pluggable persistent stores) for state across messages/flows
- Admin HTTP API for managing flows and runtime operations; supports projects mode for Git-backed flow versioning
- Extensible editor/runtime via plugins and custom nodes; packaging/distribution via npm
Use Cases:
- IoT and home automation: connect sensors/actuators via MQTT/HTTP and trigger actions
- API and system integration: glue internal services together, transform payloads, and route events
- Edge data collection: ingest, filter, and forward telemetry from gateways to databases/cloud services
Limitations and Considerations
- Visual flows can become difficult to maintain at scale without strong conventions, modular subflows, and version control practices.
- Security hardening (auth, TLS, network exposure) requires deliberate configuration; deployments should avoid exposing the editor publicly without protection.
Node-RED is a practical choice for rapid integration and automation where a visual, event-driven approach is preferred. Its extensible node ecosystem and JavaScript-based customization make it adaptable from lightweight Raspberry Pi deployments to larger integration workloads.