n8n Alternatives, Judged by What Breaks in Production
Most people searching for n8n alternatives want one of three things: a licence they can build a commercial product on, a code-first engine instead of a canvas, or a hosted tool nobody has to maintain. Activepieces is the closest visual replacement, Windmill and Temporal are the code-first answers, and Zapier or Make are the right call when you do not want a server at all.
That is the short version. The reason this question keeps getting asked has less to do with n8n being bad and more to do with two specific things: its licence, and what happens to a canvas once a workflow passes about forty nodes.
Why people go looking for n8n alternatives in the first place
n8n is not open source in the OSI sense. It ships under the Sustainable Use License, which permits internal business use and modification but prohibits reselling it or hosting it as a service for third parties (n8n licensing docs). If you are an agency wanting to resell workflow automation as your own branded product, that clause is the whole problem, and no amount of feature comparison fixes it.
The second driver is structural. A canvas is excellent for fifteen nodes and awful for a hundred. There is no meaningful diff, code review is reading JSON, and branching logic that would be six lines in TypeScript becomes a spaghetti of IF nodes. Teams hit that wall around the point where a workflow becomes load-bearing.
Third is operational. Self-hosted n8n in default mode runs a single process, and once concurrent executions climb you need queue mode with Redis and separate workers (n8n queue mode docs). That is fine, it is documented, but it is a real ops job that people do not cost in when they choose self-hosting to save money.
None of those reasons is "n8n is obsolete". It is not. It is the default for good reason.
The n8n alternatives that are actually worth evaluating
| Tool | Model | Licence | Best when | Where it hurts |
|---|---|---|---|---|
| Activepieces | Visual, node-based | MIT core, enterprise features under a separate licence | You want n8n's shape with a permissive core you can embed | Smaller connector library, fewer edge-case nodes |
| Windmill | Code-first (TS, Python, Go, Bash) with generated UIs | AGPLv3 | Your logic belongs in real code and you want version control | Nobody non-technical will maintain it |
| Temporal | Durable execution engine, SDK only | MIT | Long-running, stateful processes that must survive a crash | Not a workflow builder; you write and deploy services |
| Kestra | Declarative YAML, event and schedule driven | Apache 2.0 | Data pipelines, orchestration, heavy scheduling | Weak for marketing-style app-to-app glue |
| Pipedream | Code steps on a hosted runtime | Proprietary, hosted | Fast serverless glue, huge auth library, no server to run | Hosted only; credit-based pricing at volume |
| Make | Visual, hosted | Proprietary | Moderate branching and a maintainer who thinks visually | Operations pricing punishes chatty loops |
| Zapier | Linear, hosted | Proprietary | Short flows that must be live this afternoon | Cost and limited control flow at any real complexity |
One note on the open source column, because the listicles blur it. Apache 2.0 (Kestra) and MIT (Activepieces core, Temporal) let you do essentially anything. AGPLv3 (Windmill) requires you to publish modifications if you offer it over a network. n8n's Sustainable Use License is not an open source licence at all. If you are building a product on top, read the actual text before you write a line.
What the comparison posts leave out
Every ranked list compares connector counts. None of them compare failure behaviour, which is the only thing that matters after month two.
Ask each candidate these four questions before you commit:
- What happens to an execution mid-run when the process restarts? n8n in queue mode will retry from the workflow start unless you designed idempotency in. Temporal replays event history and resumes at the exact step it reached. That difference is the entire argument for Temporal on anything that touches money or a payment provider.
- Where do failed records go? You need a dead letter path, not just a red node in an execution log. If the tool has no built-in concept of it, you are building one with a database table and a retry job.
- How does it handle a 429? Most connectors retry. Fewer respect
Retry-After. Almost none back off across a whole workflow when a single API starts throttling every step at once. - Can two people work on it at the same time? Git-backed tools (Windmill, Kestra, Temporal) say yes. Canvas tools say no, and you will discover this the day someone overwrites a colleague's edit.
That last set of questions is the same lens I apply to any automation build, and it is why most of what breaks in an automation project is error handling rather than the integration itself.
The honest cost picture across n8n alternatives
Self-hosting is not free, it is just billed differently. Self-hosted n8n and the self-hostable n8n alternatives charge nothing per execution, so the bill is a VPS plus whoever upgrades it. A small instance handling a few thousand executions a day is a $10 to $40 per month box. Add Redis and a second worker when queue mode becomes necessary.
Hosted tools price the opposite way. Zapier bills per task, and a five-step Zap firing on every webhook burns five tasks a time. Make bills per operation and counts every module call inside an iterator, which is why loop-heavy scenarios cost far more than the node count suggests (Make operations documentation). Pipedream bills credits by compute time rather than by step, which is cheaper for chatty flows and worse for slow ones.
The number that decides it is executions per month multiplied by steps per execution. Below roughly a few thousand executions a month, hosted wins on total cost of ownership because nobody is patching anything. Above that, self-hosted wins, provided a named person owns upgrades and backups.
How I actually choose between n8n alternatives on a build
My default is still self-hosted n8n for app-to-app work, because the connector coverage is the widest and the client can see what the system is doing. I move off it in three cases.
If the client is reselling the automation as part of their own product, Activepieces, because the licence permits it. If the workflow is really a program (retries across days, compensating transactions, state that must survive a deploy), Temporal, and the workflow lives in the application repo rather than a canvas. If the team is technical and the logic changes weekly, Windmill, because pull requests beat screenshots.
For voice and CRM glue where the branching is modest and the client wants to edit it themselves, Make is often the correct recommendation even though it is proprietary, and I will say so. The tools behind BidStrike and the other systems I run are chosen the same way: whatever survives a restart at 3am with the least explaining.
One migration warning. There is no clean importer between these tools. n8n workflow JSON does not map onto Activepieces flows or Kestra YAML, and anything claiming a one-click conversion is converting the trivial half. Budget a rebuild of the logic and reuse only the credentials and the data model. Migrations that go badly go badly on field mapping and auth, not on node layout, and the same rule holds when architecting the CRM layer underneath.
Frequently asked questions
What is the best free alternative to n8n?
Activepieces if you want the same visual node model with an MIT-licensed core you can self-host and embed commercially. Kestra if your work is scheduled data pipelines rather than app-to-app glue, since it is Apache 2.0 and YAML-defined. Both are genuinely free to run; your only cost is the server and whoever keeps it patched and backed up.
Is n8n obsolete now?
No. n8n has the widest connector library of any self-hostable workflow tool and remains the sensible default for most integration work. People leave for licence reasons, for code-first version control, or because a canvas stops scaling past a few dozen nodes. None of those make the tool obsolete, they just mark the point where a different shape fits better.
Which n8n alternatives are truly open source and self-hosted?
Activepieces (MIT core), Kestra (Apache 2.0), Windmill (AGPLv3) and Temporal (MIT) are all OSI-licensed and self-hostable. n8n itself ships under the Sustainable Use License, which allows internal use and modification but blocks reselling it or hosting it for third parties. If you plan to build a commercial product on top, read the licence text before choosing.
What replaced n8n for developers who want to write code?
Windmill and Temporal. Windmill runs TypeScript, Python, Go and Bash scripts as workflow steps and generates UIs from them, so logic lives in git and gets code-reviewed. Temporal is a durable execution engine rather than a builder: you write workflows as code in an SDK, and executions resume from the exact step they reached after a crash or deploy.
Is it worth migrating from n8n to another platform?
Only if you have a specific trigger: a licence blocking resale, a workflow too complex for a canvas, or an ops burden you no longer want. There is no reliable importer between these tools, so a migration means rebuilding the logic and re-authenticating every connection. If n8n is working and nobody is blocked, staying put is the correct decision.
If you are weighing n8n alternatives against a system that already exists and already half works, the useful conversation is about what breaks it, not which tool has more connectors. Book twenty minutes, show me the stack, and I will tell you whether a move is worth the rebuild or whether you should fix the three nodes that keep failing silently.
Want this built rather than explained?
I build these systems for a living: CRM architecture, API integration and AI automation that runs without a person babysitting it. Six are in production right now, and two are products of my own with the code public. If you have a process that is breaking, book a call and bring it. Twenty minutes, no pitch.