How does Node-RED compare to n8n.io?

I am a bit familiar with node graph editors for graphics and design, but have a little experience with such tools for automation. I found Node-RED and n8n that seem to be designed for this purpose and share a lot in common.

  • Both are from JavaScript ecosystem (n8n uses TypeScript)
  • Both are using some kind of Apache license (selling n8n is prohibited)
  • Both are having 11.1k stars on GitHub

image
image

Maybe somebody has experience with both projects to list pros and cons. Which project is better for which use case and why?

It drills down to your personal needs. I just quickly looked at the possible integrations and for me it was not enough what is available but it might be fully enough for other users. As example is MQTT. It seems you can only send out MQTT messages but not receive. The same for Telegram. Besides it seems totally missing support for Z-Wave and ZigBee. For me this is then a no-go

Maybe the most important core part is the community. For Node-RED it is simply fantastic, helpful in all aspects with a lot of experts hanging around

1 Like

n8n appears to be more focussed on being an IFTTT replacement with most of the nodes concentrated on connections to other cloud services.

                NR             n8n
Size         50-60MB        150-180MB
#nodes        2,966            150+

For me, the latest installation of n8n on Windows spectacularly failed to start:

C:\src
> n8n start
(node:14608) UnhandledPromiseRejectionWarning: DriverPackageNotInstalledError: SQLite package has not been found installed. Try to install it: npm install sqlite3 --save

Though I think that I've run it in the past so maybe it had some old files lying around? Nope, I deleted the old files and it still failed. This dev PC is a bit of a mess though so it might work for you.

Even so, the number of Promise warnings and deprecated dependencies was not comforting.

Indeed, had the same impression, more focussed on API/cloud sources/destinations in an "if this then that" manner. I looks heavily inspired by node-red, but quite limited.

Node-red can be seen as a glue for all kinds of processing/automation/logic/routing and is more advanced in terms of local sources/datastreams like udp/tcp/serial/mqtt/snmp/filesystem/http endpoints, powerful parsing tools and let's not forget (custom) dashboard for visualizing and control of flows.

I didn't notice how young n8n.io

image

Compared to Node-RED

image

n8n seems to be a very promising project, relatively new and already has a large community.
In its medium it is possible to see several articles written by the community to solve problems.
I think it is more like IFTTT, Zapier or Huginn, but in many ways it looks like node-red, being a good substitute in some situations.
What strikes me most is the development of centralized nodes, all of which are maintained by the main team, unlike node-red, which many nodes developed by the community end up being unsupported over time.

That is a 2-edged sword though. Node-RED is fully open source and the core has very limited full-time development. As with any open source tooling, you need to look for a balance.

For Node-RED, keeping the core lean helps to ensure long-term viability and stability. But it also lets it be very flexible.

As far as I can see, at least at the moment, the two are very different beasts and target different needs.

Worth noting as well that n8n is commercially restricted - important if you are looking to use it commercially. Node-RED is gifted by IBM to the JavaScript Foundation and so is guaranteed to remain fully open source. It carries a simple Apache 2 unrestricted license which is useful for commercial use as has been seen by the number of vendors choosing to embed it in commercial offerings.

3 Likes

I noticed the commercial restriction as well. Guess it is hard for indie developers to sustain themselves to support the software, while big companies like IBM seems to always have free resources for their products.

Big companies invest heavily in the future if they want to stay big, IBM are expert at that. Small organisations rarely have the funding for that unless they have an idea that attracts investment funding and then they generally have to focus on that idea to the exclusion of other innovation.

That giant organisations such as IBM and Microsoft are now investing in open source is a great change and benefits everyone. UK Government is getting better at this as well (in parts at least), with people like myself promoting the use of open source and open licensing and getting it enshrined in design manuals and standards.

Oh, and don't forget to move the admin (Editor) UI so that the root url is free.

Here are my settings, fully annotated:

/** By default, the Node-RED UI is available at http://localhost:1880/
     *  The following property can be used to specify a different root path.
     *  If set to false, this is disabled.
     *  WARNING: If left unset or set to a path that user paths sit beneath,
     *           any admin middleware such as the httpAdminMiddleware function
     *           will also run for those user paths.
     *           This can have unintended consequences.
     */
    httpAdminRoot: process.env.httpAdminRoot || '/red',

    /** Some nodes, such as HTTP In, can be used to listen for incoming http requests.
     *  By default, these are served relative to '/'. The following property
     *  can be used to specifiy a different root path. If set to false, this is
     *  disabled.
     */
    httpNodeRoot: process.env.httpNodeRoot || '/',

    /** The following property can be used in place of 'httpAdminRoot' and 'httpNodeRoot',
     *  to apply the same root to both parts. Defaults to '/'.
     */
    //httpRoot: process.env.httpRoot || '/',

    /** When httpAdminRoot is used to move the UI to a different root path, the
     *  following property can be used to identify a directory of static content
     *  that should be served at http://localhost:1880/.
     */
    httpStatic: process.env.httpStatic || path.join('.', 'public'),