n8n vs Node-RED is decided by what the flow talks to. Pick Node-RED for flows that sit next to devices and speak MQTT, Modbus, TCP or serial on a Raspberry Pi or gateway; it is Apache 2.0 and free. Pick n8n for flows that connect business apps, APIs and AI agents, with saved executions and stored credentials. Many setups run both: Node-RED at the edge, n8n behind it, joined by MQTT or a webhook.
n8n vs Node-RED comes down to what the flow talks to: pick Node-RED when it sits next to devices and speaks MQTT, Modbus, TCP or serial, and pick n8n when it connects business apps, APIs and AI models. They overlap on HTTP, webhooks and MQTT, which is why plenty of setups run both: Node-RED at the edge, n8n behind it.
A documentation-based comparison, not a benchmark: nothing here was speed-tested. Versions, licences, node lists and prices were checked on 11 October 2026 against nodered.org and its docs on supported Node.js versions, security and context, the Node-RED 5.0.8 release and its source, the npm registry entries for the packages named below, FlowFuse pricing, the n8n pricing page, n8n's licence FAQ and docs, and the node list in the source of n8n 2.42.6.
Both tools draw a flow as boxes joined by wires, and that resemblance hides how different they are. Node-RED is a small always-on program that pushes messages between nodes as events arrive. n8n is a workflow engine that starts a run when a trigger fires, saves what happened, and bills or counts by the run. This page gives you a decision table by job, the head-to-head facts, a map from the Node-RED palette to n8n nodes, and the places where Node-RED still wins. It is part of our n8n hub.
n8n vs Node-RED: which one for which job?
Find the job in the first column. If your project spans two rows with different answers, read that as a sign you need both tools, not a compromise.
| The job | Pick | Why |
|---|---|---|
| Read sensors or PLCs over Modbus, OPC UA, serial or raw TCP and UDP | Node-RED | TCP, UDP and WebSocket nodes are in its core; Modbus, OPC UA, Siemens S7 and serial are community packages. n8n 2.42.6 has no core node for any of them |
| Run on a Raspberry Pi or gateway inside the building | Node-RED | Installs straight onto Node.js with a script for Debian-based systems and keeps running with no internet |
| React to every message on a busy MQTT topic | Node-RED | Messages pass through an always-on flow. In n8n each message starts a full execution, which Cloud plans meter |
| Show an operator live gauges, charts and buttons | Node-RED | FlowFuse Dashboard adds UI nodes. n8n offers forms and a chat window, not dashboards |
| Sync a CRM, a spreadsheet, an inbox and a chat tool | n8n | App nodes with stored credentials and OAuth. In Node-RED each app is a community node or a raw HTTP call |
| Build an AI agent that calls tools and remembers a chat | n8n | AI Agent node with model, memory and tool sub-nodes, plus MCP client and server nodes |
| Scheduled reports, approvals and waits that last days | n8n | Schedule Trigger, a Wait node that parks the execution in the database, and a saved history of every run |
| Ship the engine inside a product you sell | Node-RED | Apache 2.0. The n8n licence does not let end users build workflows through your product without a commercial agreement |
| Turn a machine alarm into a ticket, a row and a message | Both | Node-RED filters at the edge and hands one event to n8n over MQTT or a webhook |
Placement follows from each project's own documentation, checked October 2026.
Node-RED vs n8n head to head
The rows that decide most projects are the unit of work, the protocols in core and the licence. Price rarely does: both can be run for the cost of a server.
| n8n | Node-RED | |
|---|---|---|
| Built for | Business workflows across apps, APIs and AI models | Event-driven flows next to devices and services |
| Licence | Sustainable Use License (source-available, fair-code) | Apache 2.0 (open source) |
| Steward | n8n, a commercial company | OpenJS Foundation; started at IBM in 2013 |
| Latest stable release | 2.42.6, released 9 October 2026 | 5.0.8, released 8 October 2026 |
| How you run it | n8n Cloud, or self-hosted with Docker | Node.js 22 or later on a PC, server, Raspberry Pi or in Docker |
| Unit of work | An execution: one trigger firing, one full run, saved in history | A message moving through a flow that is always on |
| Device protocols in core | MQTT, plus AMQP, Kafka, RabbitMQ and Redis triggers | MQTT, HTTP, WebSocket, TCP and UDP |
| Business apps | Hundreds of built-in app nodes with stored credentials | Community nodes from the Node-RED library, or HTTP requests |
| Custom code | Code node (JavaScript or Python) | Function node (JavaScript) |
| State between runs | Data tables; workflow static data | Node, flow and global context; in memory unless you enable file storage |
| Access control | User accounts built in; projects, roles and SSO on paid plans | Editor open by default; users and permissions set in the settings file |
| Price (checked October 2026) | Community Edition free to self-host; Cloud from €20 a month billed annually for 2,500 executions | Free. Managed hosting through FlowFuse is priced by quote |
A note on the version row. n8n's 3.0 breaking-changes page already describes 3.0 as released and says self-hosted n8n needs a Docker-based deployment, with npm installs no longer supported. On 11 October 2026 the newest stable release on GitHub, npm and Docker Hub was still 2.42.6, so that is the version compared here.
What Node-RED is built for
Node-RED calls itself "low-code programming for event-driven applications". It began as a side project at IBM in 2013, was open-sourced the same year, and is now an OpenJS Foundation project under Apache 2.0. Version 5.0.8 shipped on 8 October 2026; the 5.x line needs Node.js 22 or later and the project recommends Node 24.
A Node-RED flow is deployed once and then stays live. A message arrives from an MQTT topic, an HTTP endpoint or a timer, and passes from node to node as a msg object. There is no run to count and no quota to meter. That model suits device work, where readings arrive constantly and most of them need nothing more than a unit conversion and a threshold check.
- Protocols in the box. The 5.0.8 core palette has MQTT, HTTP, WebSocket, TCP and UDP nodes, next to function, switch, change, template, delay, trigger, filter and exec.
- Industrial and hardware packages. The Node-RED library, which nodered.org puts at over 5,000 nodes and flows, includes node-red-contrib-modbus (Modbus TCP, UDP and serial), node-red-contrib-opcua, node-red-contrib-s7 for Siemens PLCs, node-red-node-serialport and node-red-node-pi-gpio.
- Runs on small hardware. The Raspberry Pi guide installs it with one script on any Debian-based system and registers it as a service on port 1880. The same page notes that Node 24 has no 32-bit builds, so the oldest ARMv6 boards are out.
- Dashboards. FlowFuse Dashboard (the
@flowfuse/node-red-dashboardpackage, Apache 2.0) adds forms, buttons, gauges and charts. The older node-red-dashboard package is marked as no longer maintained on npm.
Its limits are the other side of being small. The docs say plainly that the editor is not secured by default, which "is only suitable if you are running on a trusted network"; you add users and permissions in the settings file. Context data lives in memory and is cleared on restart unless you switch on file storage. Git-backed projects have to be enabled in settings. And because there is no run, there is no list of past runs to open: you watch a flow through the Debug sidebar and node status.
Price, checked October 2026: Node-RED itself is free. If you want it hosted and managed for a team or a fleet, FlowFuse lists three plans (Edge, Hub and Fleet), each with a "Contact Us" button instead of a price.
What n8n is built for
n8n is workflow automation for the business side. Every workflow begins with a trigger, each firing is one execution, and each execution is saved with the data every node received and returned. You can open a failed run, see which node broke and retry it, and point every workflow at an error workflow that alerts you.
- Apps with stored credentials. The core package for 2.42.6 registers 444 nodes and triggers, most of them business apps, plus 125 AI nodes. Logins and API keys are saved once as credentials and reused.
- AI built in. The AI Agent node takes a chat model, memory and tools as sub-nodes, and MCP client and server nodes connect it to outside tools.
- Some device reach. The MQTT Trigger and MQTT nodes cover the broker; AMQP, Kafka, RabbitMQ and Redis triggers cover queues; a Home Assistant node covers smart-home hubs. There is no core TCP, UDP, WebSocket, serial or Modbus node.
- Locked down by default. Since n8n 2.0 the Execute Command and Local File Trigger nodes are disabled unless you turn them on, per the 2.0 breaking changes. Good for a shared server, awkward for a box that is meant to run shell commands.
Price, checked October 2026: the self-hosted Community Edition has no licence fee and no execution cap. n8n Cloud Starter is €20 a month billed annually for 2,500 executions and Pro is €50 for 10,000; the trial gives 1,000 executions with no card. Our n8n pricing guide has every tier, and what self-hosted n8n really costs covers the server side.
Pick n8n if, pick Node-RED if
- The flow connects SaaS apps, databases and APIs
- You want AI agents, chat memory and MCP tools
- You need a saved history of runs and failure alerts
- Approvals or waits can last hours or days
- Volume is events per day, not readings per second
- Non-developers must reconnect an app without code
- The flow reads sensors, PLCs or serial devices
- It must run on a Pi or gateway with no internet
- Messages arrive many times a second
- An operator needs a live dashboard
- You want an Apache 2.0 engine inside your product
- You are comfortable editing a settings file
n8n vs Node-RED for IoT: use both, in this order
For IoT the honest answer is rarely one or the other. Node-RED belongs beside the devices and n8n belongs beside the people. The join is an MQTT broker or a webhook, and the rule is that Node-RED sends events, not readings.
- 01Device or PLC
Publishes readings over MQTT, or exposes Modbus or OPC UA registers.
- 02MQTT broker
The meeting point. Both tools can subscribe to it.
- 03Node-RED at the edge
Polls registers, converts units, drops repeats and decides locally, with no round trip to the cloud.
- 04Hand-off
One MQTT publish or HTTP POST per event worth acting on, not per reading.
- 05n8n workflow
The MQTT Trigger or a Webhook starts an execution with the event as JSON.
- 06Business tools
A ticket, a spreadsheet row, a CRM note, a chat alert, or an AI summary of the shift.
On the n8n side, the MQTT Trigger takes a list of topics and has three options worth knowing: JSON Parse Body turns the payload into an object, Only Message drops the topic wrapper, and Parallel Processing is on by default. If you hand off by webhook instead, protect the URL; our n8n webhook guide covers header auth. For the wider picture, with Home Assistant, protocols and priced starter setups, see IoT automation in 2026.
Migration map: Node-RED palette to n8n nodes
If a Node-RED flow has drifted into business automation, calling CRMs and sending emails through HTTP nodes, it is a candidate for a move. This is the map. The left column is the Node-RED 5.0.8 core palette; the middle column uses the node names in n8n 2.42.6.
| Node-RED node | n8n equivalent | What changes |
|---|---|---|
| inject | Schedule Trigger, or Manual Trigger for a button press | A trigger starts a new execution; it cannot sit in the middle of a flow |
| http in + http response | Webhook + Respond to Webhook | Test and production URLs are separate; the production URL works once the workflow is published |
| http request | HTTP Request | Same job. Logins are stored once as credentials and reused |
| mqtt in / mqtt out | MQTT Trigger / MQTT | Broker details move into an MQTT credential; one execution per message received |
| function | Code (JavaScript or Python) | Return an array of items shaped { json: … } instead of a msg object |
| change | Edit Fields (Set) | Set, rename or drop fields, with expressions for computed values |
| switch | Switch, or If for two branches | Rules read fields on the item, not msg.payload |
| template | Edit Fields with an expression, or HTML (Generate HTML Template) | Mustache placeholders become n8n expressions |
| delay | Wait | Pauses for an interval, until a set time, or until a webhook call or form submission |
| filter (report by exception) | Remove Duplicates | Its Remove Items Processed in Previous Executions mode remembers values between runs |
| split / join / batch | Split Out / Aggregate / Loop Over Items | Items already travel as a list, so many loops disappear |
| csv, json, xml, html | Extract from File, Convert to File, XML, HTML | One node per format; JSON is native |
| file, file in, watch | Read/Write Files from Disk, Local File Trigger | Self-hosted only. Local File Trigger is disabled by default since n8n 2.0 |
| exec | Execute Command | Self-hosted only, and disabled by default since n8n 2.0 |
| catch | Error Trigger in an error workflow | Failures are handled per workflow, with the failed execution linked |
| link nodes and subflows | Execute Sub-workflow and its trigger | Shared logic lives in its own workflow |
| flow and global context | Data table, or workflow static data in a Code node | Static data is saved only by published, triggered runs, not test runs |
| debug | No node needed | Every node shows its input and output; past runs are in the Executions list |
| tcp, udp, websocket, serial, Modbus, OPC UA | No core node in n8n 2.42.6 | Keep these in Node-RED and hand off over MQTT or a webhook |
| Dashboard nodes | None | n8n has the Form Trigger and Chat Trigger, not gauges and charts |
The mental shift is from one msg to a list of items. A Node-RED Function node receives a message and returns a message. An n8n Code node receives every item from the previous node and returns an array of items, each with its data under json. Most rewrites are a few lines:
// Node-RED Function node
msg.payload = { celsius: (msg.payload.f - 32) * 5 / 9 };
return msg;
// n8n Code node, mode: Run Once for All Items
return $input.all().map(item => ({
json: { celsius: (item.json.f - 32) * 5 / 9 },
}));Both snippets follow each project's documented pattern; they were checked against the docs and not executed for this article.
- 1Pick a flow that is all HTTP, MQTT and timers
Leave anything with TCP, serial or Modbus nodes where it is.
- 2List its nodes against the map
Expected result: every node has an n8n equivalent, or you stop here.
- 3Create the credentials first
Broker, API keys and OAuth logins, so nodes can select them as you build.
- 4Rebuild from the trigger outward
Run each node as you add it and compare its output with the Debug sidebar in Node-RED.
- 5Run both side by side
Point n8n at a test topic or sheet. Expected result: the same output for a full day.
- 6Publish, then disable the old flow
Add an error workflow before you publish, and keep the exported Node-RED JSON as your rollback.
Where Node-RED still wins
A move to n8n is not an upgrade in every direction. These are the cases where staying put is the right call:
- It uses TCP, UDP, WebSocket, serial, Modbus, OPC UA or GPIO nodes
- It must keep working when the internet connection drops
- It handles several messages a second from one topic
- An operator relies on a FlowFuse Dashboard page
- It runs on a small board where you do not want to run Docker
- You redistribute it, or your customers edit flows inside your product
- It keeps fast-changing state in flow or global context
The licence item deserves a second look if you build for clients. Apache 2.0 places no limits on how Node-RED is used or resold. n8n's licence FAQ allows building and maintaining automations for clients on your own instance, and using n8n behind the scenes in your product, but not hosting it as a service where clients build workflows, white-labelling it, or letting end users configure workflows through your product.
Alternatives worth a look
- Home Assistant automations. For a home or a small shop, its own rules may cover the device side without Node-RED at all.
- Apache NiFi. When the job is moving large volumes of data between systems with back pressure and provenance, see n8n vs NiFi.
- Power Automate. If the business tools are Microsoft 365, read n8n vs Power Automate before choosing the n8n half of the pair.
- Other workflow tools. n8n alternatives compares twelve options, Node-RED included, on licence, hosting and price.
One more route opens up when the thing you are wiring together is something customers would log in to: a monitoring portal, an alert service, a small dashboard product. That is application work. Our AI SaaS Builder program has no Node-RED or n8n lessons; it covers the app itself, with Supabase for data, auth and realtime subscriptions, the Claude API for the AI feature, deployment on Vercel and Stripe billing.
n8n vs Node-RED: FAQ
Is Node-RED better than n8n?
Neither is better across the board. Node-RED is the stronger tool next to devices: its core palette has MQTT, TCP, UDP and WebSocket nodes, community packages add Modbus, OPC UA and serial, and it runs directly on a Raspberry Pi. n8n is the stronger tool for business automation: app nodes with stored credentials, an AI Agent node, saved execution history and error workflows. Choose by what the flow talks to.
Is n8n or Node-RED better for IoT?
Node-RED for the device side, n8n for what happens after. Node-RED reads sensors and PLCs, translates protocols and makes local decisions on an edge computer. n8n takes the events that matter, through its MQTT Trigger or a webhook, and turns them into tickets, spreadsheet rows, CRM notes and chat alerts. Most working IoT setups that reach business tools use both, joined by MQTT.
Can n8n replace Node-RED?
Only for flows built on HTTP, webhooks, schedules and MQTT. Those nodes exist on both sides and map one to one. Flows that use TCP, UDP, WebSocket, serial, Modbus or OPC UA have no core equivalent in n8n 2.42.6, and n8n has no dashboard nodes for gauges and charts. For those, keep Node-RED at the edge and pass events to n8n. Checked October 2026.
Is Node-RED free and open source?
Yes. Node-RED is released under the Apache 2.0 licence and is a project of the OpenJS Foundation, so you can run it, change it and ship it inside a product without a fee. n8n is source-available under its own Sustainable Use License: free to self-host for your own business, with limits on offering it to others as a service. Managed Node-RED from FlowFuse is priced by quote.
Does n8n support MQTT?
Yes. n8n has an MQTT Trigger node that starts a workflow when a message arrives on the topics you list, and an MQTT node that publishes a message to a topic with a chosen quality-of-service level and an optional retain flag. Both use an MQTT credential holding the protocol, host, port, client ID and SSL settings. Every message received starts one workflow execution.
Can I import a Node-RED flow into n8n?
No. Both tools save flows as JSON, but the formats are unrelated, and neither project documents an importer for the other. Plan to rebuild: map each Node-RED node to its n8n counterpart, move connection details into n8n credentials, and rewrite Function nodes as Code nodes that return items. Run the old flow and the new workflow side by side before you switch the device over.
Flows wired up? Build the product they feed.
When device events and automations turn into something customers log in to, AI SaaS Builder, included in All Access, covers the app side: a Supabase database with auth and realtime subscriptions, the Claude API for the part that explains the data, Vercel to deploy and Stripe to bill. It does not teach Node-RED or n8n. The other three programs, weekly coaching and the community come with the same subscription.
Not sure which side of the line your flow sits on?
Post the trigger, the devices and the apps it has to reach in the free Discord, and compare notes with people running n8n and Node-RED together.