Overview
Discover what makes Node-RED powerful
Node‑RED is a **low‑code, event‑driven runtime** built on top of Node.js. At its core it exposes a browser‑based flow editor that compiles visual wiring into executable JavaScript objects. The engine itself is a lightweight, single‑process server that listens for HTTP/WebSocket requests and forwards them to the corresponding nodes. This architecture lets developers prototype quickly while still having full access to Node.js APIs, npm modules, and custom JavaScript code blocks.
Node‑based programming model
Extensible node library
Runtime APIs
Stateful flows
Overview
Node‑RED is a low‑code, event‑driven runtime built on top of Node.js. At its core it exposes a browser‑based flow editor that compiles visual wiring into executable JavaScript objects. The engine itself is a lightweight, single‑process server that listens for HTTP/WebSocket requests and forwards them to the corresponding nodes. This architecture lets developers prototype quickly while still having full access to Node.js APIs, npm modules, and custom JavaScript code blocks.
Key Features
- Node‑based programming model – Each node represents a discrete function (HTTP request, MQTT publish, JSON parse, etc.) and can be connected via wires that carry JavaScript objects.
- Extensible node library – Over 5,000 community‑maintained nodes exist, covering protocols (MQTT, HTTP, TCP), cloud services (AWS Lambda, Azure Functions), and device drivers (Arduino, Raspberry Pi GPIO).
- Runtime APIs – The editor exposes a RESTful API (
/flows,/nodes) and a WebSocket endpoint for programmatic flow deployment, status monitoring, and debugging. - Stateful flows – Nodes can maintain internal state or use the built‑in context stores (node, flow, global) which support Redis, MongoDB, or file‑based persistence.
Technical Stack
| Layer | Technology |
|---|---|
| Runtime | Node.js (v18+), Express‑like HTTP server, WebSocket |
| Editor | HTML5/React (custom UI), Redux for state, Monaco editor for JavaScript snippets |
| Persistence | JSON files (flows.json) by default; pluggable context stores (Redis, MongoDB) |
| Packaging | npm for node modules; Docker images available (nodered/node-red:latest) |
| Security | Optional HTTPS, basic auth, OAuth2 via custom nodes; supports TLS certificates |
The runtime is intentionally minimal to keep memory footprints under 50 MB on ARM devices, making it suitable for edge deployments such as Raspberry Pi or BeagleBone Black.
Deployment & Infrastructure
Node‑RED can run as a standalone process or inside Docker containers. The official image is optimized for Alpine Linux, exposing port 1880 and a health‑check endpoint. For production use, developers typically:
- Deploy behind an NGINX reverse proxy for TLS termination and path routing.
- Use a dedicated context store (Redis) to share state across multiple instances, enabling horizontal scaling.
- Leverage Docker Compose or Kubernetes manifests (Helm chart) for declarative deployment and rolling updates.
Because it is a single‑process Node.js application, horizontal scaling requires either clustering (Node’s cluster module) or multiple container instances with a shared context store.
Integration & Extensibility
Node‑RED’s plugin system is centered around npm packages that export node definitions. Each node declares its inputs/outputs, configuration UI, and JavaScript logic in a node.js file. Developers can:
- Create custom nodes by extending the base
RED.nodes.registerType. - Expose HTTP endpoints directly from the editor via
http in/http responsenodes. - Trigger flows from external services using webhooks or MQTT topics.
The editor also supports flow imports via JSON, allowing teams to version flows in Git and deploy them automatically.
Developer Experience
The documentation is organized into Getting Started, Flows, and Node Development sections, each with example code snippets and best‑practice guidelines. The community forum (Discourse) and Slack channel provide rapid support, while the GitHub repo’s issue tracker is actively maintained. The open‑source license (Apache 2.0) encourages commercial use without royalties.
Use Cases
- Home automation – Wiring sensors to actuators with minimal code, integrating Zigbee or Z-Wave via community nodes.
- Industrial IoT – Collecting OPC-UA data, transforming it with function nodes, and exposing dashboards.
- Edge analytics – Running on a Raspberry Pi to preprocess sensor data before sending it to cloud services.
- Rapid prototyping – Building MVPs for webhooks, chatbots, or REST APIs without writing boilerplate server code.
Advantages
- Speed of development: Visual wiring cuts boilerplate by ~70 %.
- Cross‑platform: Runs on Windows, macOS, Linux, and ARM.
- Extensibility: Thousands of community nodes reduce the need to write custom code for common protocols.
- Low barrier to entry: Non‑developers can contribute by dragging nodes, while seasoned JavaScript devs retain full control.
- Open‑source licensing: No vendor lock‑in, enabling self‑hosting on any infrastructure.
In summary, Node‑RED offers a robust, event‑driven runtime that blends visual programming with the full power of Node.js, making it a compelling choice for developers building IoT solutions across edge and cloud environments.
Open SourceReady to get started?
Join the community and start self-hosting Node-RED today
Related Apps in cloud-platforms
Home Assistant
Open-source smart home hub for automation and integration
Caddy
Secure, auto‑TLS web server for every site
Traefik
Dynamic reverse proxy and load balancer for microservices
Pi‑hole
Network‑wide ad blocking with your own DNS server
CasaOS
Your Personal Cloud OS for Docker-based home servers
AdGuard Home
Network‑wide ad and tracker blocker
Weekly Views
Repository Health
Information
Explore More Apps
Lura
High‑performance API Gateway builder and proxy generator
CollectiveAccess - Providence
Open-source collections cataloguing for museums and archives
Loomio
Collaborative decision-making for groups and organizations
Redash
Collaborative SQL dashboards for all data sources
sist2
Fast, incremental file search with web UI and OCR support
DebOps
Automate your Debian/Ubuntu data center with Ansible roles
