AIFlowPost

Node-RED vs Windmill: Wiring or Scripting?

Updated 2026-10-27 · 1059 words

Node-RED vs Windmill: Wiring or Scripting? — AIFlowPost cover

This page may contain affiliate links. If you buy through them we may earn a commission at no extra cost to you.

Quick take: if you're wiring hardware, sensors, or real-time event streams, especially on low-power devices, Node-RED is the lighter, purpose-built tool and it isn't close. If the job is internal tooling, scheduled data jobs, or automation your team would rather write as a script than assemble node by node, Windmill's multi-language script model and auto-generated UI forms are the stronger foundation. We self-hosted both via Docker and built the same MQTT sensor alert and a scheduled data-sync job in each to see where the line between them actually falls.

What Node-RED and Windmill actually are

Node-RED is a flow-based visual programming tool originally built by IBM for wiring IoT devices, APIs, and online services together, contributed to the OpenJS Foundation in 2016 and maintained there since under the Apache 2.0 license. You drag nodes onto a canvas and wire them with lines representing data flow; its node registry leans heavily toward hardware protocols, MQTT, Modbus, serial, alongside general-purpose function nodes for custom JavaScript.

Windmill is a script-first automation and internal-tooling platform: you write scripts in Python, TypeScript, Go, Bash, or SQL, and Windmill turns each one into a runnable, versioned workflow step. Its standout feature is auto-generating a UI form directly from a script's input parameters, so a teammate can trigger a job through a simple form without touching code. Windmill's core is released under the AGPL-3.0 license, with a managed cloud option for teams that would rather not run the infrastructure themselves.

Comparison table

Node-RED Windmill
Core model Visual node canvas for event/hardware wiring Script-first automation (Python, TypeScript, Go, Bash, SQL)
License Apache 2.0 (fully open source) AGPL-3.0 (core)
Self-hosted cost Free Free
Cloud starter price None from the core project (third-party hosts exist) Starting around $10/month
Core strength IoT, hardware, event-driven flows Internal tooling, scheduled data jobs
Auto-generated UI forms No Yes, from script inputs
Custom logic Function nodes (JavaScript only) Full scripts in 5 languages
Minimum practical hardware Runs well on a Raspberry Pi 1-2GB RAM recommended for production
Best for Hardware wiring, real-time event flows Scripted automation, internal tools with a form

Setup and self-hosting

Both install in minutes with Docker, but the footprints diverge sharply once you're past a quick test. Node-RED is genuinely light: it's commonly run directly on a Raspberry Pi for home-automation and IoT projects, and a $5/month VPS handles it without strain. Windmill's worker-based architecture is built to scale concurrent script executions, which is a real advantage under load, but it asks for more baseline resources, 1-2GB of RAM is a reasonable floor for a production instance running more than a handful of jobs at once.

Neither tool removes the ops burden of self-hosting: TLS, backups, and keeping the runtime patched are on you either way. Node-RED has no official managed cloud tier from the core project, though third-party hosts like FlowFuse offer managed Node-RED. Windmill's own cloud plans start around $10/month if you'd rather skip server management entirely.

Building the same job in both

We wired an MQTT sensor alert in both tools. In Node-RED, this took about five minutes: an MQTT-in node, a switch node to filter on a threshold, and an HTTP-request node to hit a webhook, all first-class, purpose-built nodes. Windmill has no MQTT node at all; replicating the same alert meant writing a Python script using an MQTT client library, subscribing manually, and handling the connection lifecycle ourselves. It worked, but took closer to 20 minutes and required code Node-RED gives you as a drag-and-drop primitive.

The result flipped for a scheduled data-sync job: pull rows from a database, transform them, and push a summary to an external API on a cron schedule, then let a teammate trigger an ad-hoc re-sync for a specific date range through a simple form. In Windmill, this was a single Python script with a schedule trigger, and Windmill auto-generated a working input form from the script's date-range parameter with zero extra configuration. The same job in Node-RED meant a database node, a function node for the transform, and an HTTP-request node, workable on the scheduling side, but there's no equivalent to Windmill's auto-generated form; exposing this to a non-technical teammate would mean building a separate interface ourselves.

Pricing reality check

Self-hosting either tool costs only your server and your time, with no per-execution billing on either side. Node-RED's light footprint means a $5/month VPS, or hardware you already own, is genuinely sufficient for most IoT and event-driven use cases. Windmill is more comfortable on a $10-$20/month box once you're running it in production with multiple workers. If you'd rather not manage a server at all, Windmill's own cloud starts around $10/month; Node-RED's path to a similar hands-off setup runs through a third-party host rather than an official first-party plan.

When NOT to use Node-RED

Skip Node-RED if your actual workload is scripted internal tooling or scheduled data jobs that a teammate needs to trigger through a simple form. Its function nodes support JavaScript, but there's no equivalent to Windmill's multi-language script support or auto-generated UI, and building that interface yourself is real extra work Node-RED wasn't designed to remove.

When NOT to use Windmill

Skip Windmill if your actual need is wiring sensors, hardware protocols, or real-time event streams on minimal hardware. Node-RED's first-class MQTT, serial, and Modbus support, plus its tiny footprint on something like a Raspberry Pi, make it the better-fitted tool for that job, and running Windmill's heavier worker architecture for a task this lightweight is unnecessary overhead.

Which should you pick?

Choose Node-RED if you're building IoT, hardware, or real-time event-driven flows and want a tool that runs comfortably on minimal hardware. Choose Windmill for internal tooling, scheduled data jobs, or any automation where you'd rather write a script than wire a canvas, especially if a non-technical teammate needs a simple form to trigger it. If you land on Windmill, our full Windmill review covers its worker model and pricing tiers in more depth, and our step-by-step guide to self-hosting Windmill covers the Docker setup we used here. If Node-RED is the better fit, our Node-RED vs n8n comparison weighs it against a general business-automation platform if you're still narrowing the field.

Read the source docs before you commit either way: Node-RED publishes its full node documentation under the OpenJS Foundation, and Windmill covers its script runtime and self-hosting guide on its own site.

Frequently asked questions

Can Windmill handle hardware and IoT protocols like Node-RED does?

Not natively. Windmill has no built-in MQTT, serial, or Modbus nodes; you'd call those protocols from a script yourself, and there's no first-class hardware-wiring experience the way Node-RED's dedicated nodes provide. For IoT and sensor work, Node-RED remains the more purpose-built tool.

Can Node-RED replace Windmill for internal tools and scripted jobs?

Only partially. Node-RED's function nodes support custom JavaScript, but it has no equivalent to Windmill's auto-generated UI forms from script parameters, its multi-language script support (Python, TypeScript, Go, Bash, SQL), or its built-in version history per script. For a team that wants to script internal tools rather than wire them visually, Windmill is the more direct fit.

Which one is lighter to self-host?

Node-RED, by a wide margin. It runs reliably on a Raspberry Pi or a $5/month VPS with a small memory footprint. Windmill's worker-based architecture is heavier; a production instance is more comfortable with at least 1-2GB of RAM, especially once you're running multiple workers for concurrent jobs.

Are both of these tools fully open source?

Yes, with different licenses. Node-RED is Apache 2.0 under the OpenJS Foundation, a fully permissive, OSI-approved license. Windmill's core is AGPL-3.0, which is also OSI-approved open source but comes with copyleft obligations, if you modify and distribute a networked version of it, you generally need to share those modifications too. Neither license restricts free self-hosting for internal use.

↑ Back to top