Windmill, Huginn, Activepieces, Node-RED and Kestra next to n8n: which open-source tool replaces n8n for your case, and which does not.
n8n is the default answer for visual self-hosted automation — and for many cases it stays the right one. But "visual workflows" hides very different ideas: scripts-first platforms, event agents, IoT flow editors and declarative orchestrators. All six below run on the same VPS, so the real question is which mental model matches yours.
| Tool | Model | Best for | Watch out |
|---|---|---|---|
| n8n | Node graph, 400+ integrations | General automation with a polished UI | Heaviest of the six; ~2 GB RAM |
| Windmill | Scripts first (Python/TS/SQL), flows as code | Devs who'd rather write than drag | Weaker no-code story for non-devs |
| Huginn | Agents watching events, scraping, email/SMS | Data pipelines: watch a page, react downstream | Older Ruby stack, UI feels dated |
| Activepieces | No-code builder, MIT-licensed pieces | Simple team automations, clean onboarding | Younger ecosystem than n8n |
| Node-RED | Flow editor for messages and hardware | IoT, MQTT gateways, home automation | Thin on SaaS APIs; pack your own |
| Kestra | Declarative YAML flows + UI, JVM | Scheduled jobs, backfills, orchestration at scale | JVM wants 4–8 GB; more ops, less glue |
Two to four gigabytes of RAM covers n8n, Windmill, Huginn, Activepieces and Node-RED for a small team — Core VPS 4 (€12/mo) or Core VPS 6 NVMe (€18/mo) if the database shares the box. Kestra's JVM wants 4–8 GB. Install patterns are the same everywhere: docker compose + Caddy — the n8n guide is a working template you can copy tool for tool.
No. In n8n the unit is a node with config; in Windmill the unit is a function you write — flows compose functions, and the UI can generate them from a prompt. Teams coming from n8n miss the huge integration library; teams coming from scripts miss nothing.
There is no universal converter. n8n exports JSON workflows; Windmill and Kestra import from prompt/code differently; Huginn and Node-RED are different abstractions altogether. Practical path: export the JSON as a spec, recreate the five workflows that matter, retire the long tail. Budget an afternoon, not a sprint.