Most teams leave n8n over its license, not any failing in the product, so the first thing to get straight is what you are actually replacing. The options here split by style. Node-RED is the closest to n8n's spirit - a browser-based, low-code flow editor for wiring devices, APIs, and services into event-driven automations. Windmill takes a code-first path, turning scripts in Python, TypeScript, Go, and more into jobs, workflows, and internal apps. If your workflows are mostly AI and LLM orchestration - prompts, retrieval over your own data, agents calling tools - Flowise and Dify fit that lane instead. Be honest about which half you use, because a general connector library and an AI-agent canvas are different products.
The tools differ in reach. Node-RED is a mature low-code flow editor with a large library of community nodes, and it runs anywhere from a Raspberry Pi to the cloud under the permissive Apache 2.0 license. Windmill is code-first, parsing your Python or TypeScript scripts into autogenerated UIs, flows, and webhooks, backed by Postgres and released under AGPLv3. On the AI side, Flowise is a visual canvas for agents and RAG over your own documents, also Apache 2.0, while Dify is broader still, bundling AI workflows, RAG pipelines, agent tools, a prompt IDE, and model management with an API for every app. Node-RED, Windmill, and Flowise carry standard open source licenses without n8n's source-available strings, and all four self-host so the automations run on your own infrastructure.
Whatever you choose, migrate on behavior rather than files. Treat n8n's workflow JSON export as documentation, not a portable package: rebuild each flow in the target system, re-enter credentials through its own secret store, and replace n8n-specific nodes with HTTP calls or native integrations. Run both systems in parallel, replay real payloads, and check that retries, waits, and webhook responses match before you cut over schedulers and endpoints.