Activepieces and Windmill against n8n: which self-hosted automation to choose
Table of contents
- Key takeaways
- What licence each one actually carries
- What the n8n licence really forbids
- Why the Windmill Community Edition is not AGPL
- The three side by side
- Visual graph or code: two different models
- How many integrations each one brings
- AI agents: where that feature lives
- What engine performance to expect
- What it costs to keep running
- What each project holds back for paying users
- Which one to choose in each scenario
- Frequently asked questions
- Can I use n8n in my company without paying for a licence?
- Is Activepieces genuinely open source?
- Which one uses fewest resources on a small server?
- Conclusion
- Sources
n8n is not open source: its Sustainable Use License limits you to your own internal business purposes and forbids charging people to access a hosted instance. Activepieces publishes its core under MIT but keeps agents, projects and API access outside it. Windmill compiles to AGPLv3 from source, yet the distributed Community Edition is not open.
Most self-hosted automation round-ups get wrong the one thing that actually decides the choice for a business: the licence. For a start, n8n is not open source in the OSI sense, Activepieces publishes its core under MIT, and Windmill splits its repository across three different licences. I read all three licence files word by word before writing this, then compared model, catalogue, engine and running cost. Installation is out of scope; that is what the self-hosted n8n guide is for.
Key takeaways
- n8n ships under the Sustainable Use License, a fair-code licence that allows your own internal business use and forbids charging people for access to an instance you host.
- The Activepieces core really is MIT, apart from the
packages/ee/directories, and it is the only one of the three you may resell or repackage without asking. - The Windmill Community Edition you pull from ghcr.io is not AGPLv3: it bundles proprietary code and its terms forbid modifying or wrapping it.
- The Activepieces API returned 761 pieces on 30 August 2026; n8n advertises 2,102 integrations in its directory and holds 202,836 GitHub stars.
- All three reserve single sign-on and audit logging for a paid tier, so a free licence on the code is not a free full product.
What licence each one actually carries
Start with the fact this category of article rarely states plainly. The LICENSE.md file on n8n’s master branch places the project under the Sustainable Use License version 1.0, with two extra carve-outs. Content on branches other than master is not licensed at all, and files carrying .ee. in the filename or .ee in the directory name require a paid n8n Enterprise licence.
Activepieces publishes everything outside packages/ee/ and packages/server/api/src/app/ee under the MIT Expat licence, the familiar one, with its explicit permission to sell copies.
Windmill is the tangled case. Its licence file splits the repository between Apache 2.0 (the language clients and the OpenAPI spec), AGPLv3 (backend/ and frontend/) and a commercial licence for code behind the enterprise compile flag.
What the n8n licence really forbids
The legal text is short and blunt: "You may use or modify the software only for your own internal business purposes or for non-commercial or personal use. You may distribute the software or provide it to others only if you do so free of charge for non-commercial purposes."
The n8n docs turn that into concrete examples. Not allowed: "White-labeling n8n and offering it to your customers for money" and "Hosting n8n and charging people money to access it". Allowed: syncing your own company’s data, building an n8n node for your product and, surprisingly, consulting. Building workflows, custom features or code that n8n executes for a client falls inside the licence.
In decision-making terms: if your company automates its own work, n8n poses no legal problem. If your product consists of giving a third party access to n8n for money, you need an agreement with n8n. The fair-code site puts the model plainly: software that "is commercially restricted by its authors".
Why the Windmill Community Edition is not AGPL
This is the correction most worth making. The claim in circulation is that Windmill’s community edition is AGPLv3, and that is not accurate. The licence file draws a line between two things.
What you compile yourself from source, without the enterprise flag, genuinely is AGPLv3: "The binary compilable from source code in this repository without the ‘enterprise’ feature flag is open-source under the AGPLv3 License terms and conditions".
What you pull from ghcr.io/windmill-labs/windmill is something else. In the licence’s own words, the Community Edition "includes proprietary and non-public code and features which are not open source", and Windmill Labs grants "a right to use all the features of the Community Edition for free without restrictions other than the limits and quotas set in the software and a right to distribute the community edition as is but not to sell, resell, serve as a managed service, modify or wrap under any form without an explicit agreement".
Note the irony: for a company that wants to modify or resell the tool, the official Windmill image is as restrictive as n8n, or more. The open route exists, but it runs through compiling the binary yourself.
The three side by side
Figures read on 30 August 2026 from the GitHub API and the official sites.
| n8n | Activepieces | Windmill | |
|---|---|---|---|
| Core licence | Sustainable Use License 1.0 (fair-code) | MIT Expat, except packages/ee/ |
AGPLv3 and Apache 2.0 in source; proprietary CE build |
| May you sell or host it for money? | not without an agreement | yes | only if you compile from source |
| Model | visual node graph | visual piece graph | code first, with a flow editor |
| Project language | TypeScript | TypeScript | Rust |
| Latest release | n8n@2.36.8, 2026-08-28 |
0.88.4-hotfix.1, 2026-08-25 |
v1.799.0, 2026-08-28 |
| GitHub stars | 202,836 | 24,108 | 17,720 |
| Repository created | June 2019 | December 2022 | May 2022 |
| Catalogue | 2,102 integrations in its directory | 761 pieces | no app catalogue; a script Hub |
| Database | SQLite by default, PostgreSQL supported | PostgreSQL and Redis | PostgreSQL 18 |
Visual graph or code: two different models
n8n and Activepieces share an idea: you drag nodes or pieces onto a canvas, wire them up and the engine walks the graph. Custom logic goes into a box. In n8n the Code node takes JavaScript on Node.js and Python. The docs warn that the Pyodide route is limited to "Packages included with Pyodide" and that "The Code node takes longer to process Python than JavaScript".
In Activepieces the pieces are, per the company’s own site, "open source TypeScript", so extending the catalogue means writing a TypeScript package.
Windmill inverts the relationship. The unit is the script, not the node, and the flow editor chains scripts together. Its docs sum up the reach: "Windmill supports scripts in TypeScript, Python, Go, PHP, Bash, C#, SQL and more", with Rust, Java, Ansible, R, Ruby, PowerShell and dbt on the longer list. If your team already writes Python or Go and dislikes debugging inside a box on a canvas, that difference is large.
How many integrations each one brings
The numbers are not comparable, and that is worth saying before putting them side by side. The n8n directory advertises 2,102 integrations while its own repository description says "400+ integrations": they count different things.
Activepieces publishes an auditable figure, because its catalogue API returns the full list. I queried it on 30 August 2026 and got 761 pieces, the same number the site displayed that day. The 755 doing the rounds in other comparisons is a July figure.
Windmill does not play this game. It has no application catalogue in the sense the other two do, but a Hub of shared scripts and flows plus language clients for talking to any API. That is consistent with its model: if you write code, integrating a new service is one HTTP request rather than a wait for someone to publish the piece.
AI agents: where that feature lives
All three have added agents, and this is where the small print bites. n8n includes agent nodes and a full AI category inside its directory, available in the Community edition. Windmill documents AI agents, sessions, MCP and a sandbox, with the heavy scaling parts reserved for Enterprise.
Activepieces is the surprise. Its core is MIT, yes, but the official answer on its pricing page marks the boundary without ambiguity: "Community Edition is open source, free forever, with no cap on runs, users, or flows. It’s the automation core on its own, so a fair amount sits outside it: Agents and Chat, Projects, API access, and the whole team and admin layer, meaning SSO, user roles, audit logs, secret managers, branding, and Git Sync". The most permissive licence of the three covers the smallest slice of the product.
What engine performance to expect
Windmill is the only one publishing numbers, and they need citing carefully because it runs them itself and they include neither n8n nor Activepieces. Its bench pits six orchestration engines against a Fibonacci workload.
In the long-running scenario (ten tasks, fibo(33)), Airflow took 54.668 seconds, Kestra 15.786, Prefect 15.489, Temporal 7.247, Hatchet 7.793 and Windmill 8.347. Windmill drops to 7.701 in dedicated-worker mode. In the lightweight forty-task scenario the gap explodes: Airflow 116.221 seconds against 4.383 for Windmill and 2.092 in dedicated mode.
What those figures really say is that Windmill’s Rust engine plays in the same league as Temporal and Hatchet, not that it is faster than n8n. For 95% of a small team’s flows, which fire a webhook every few minutes, the difference changes nothing.
What it costs to keep running
Operational cost diverges more than performance does. With n8n you start on a single container against SQLite, and production moves to PostgreSQL. Horizontal scaling means queue mode, which requires Redis, PostgreSQL and separate worker processes, all on the same n8n version and sharing one encryption key. Activepieces asks for PostgreSQL and Redis from day one in its reference compose.
Windmill is the heaviest. Its reference compose brings up six services: PostgreSQL 18, the server, standard workers, native workers, the language server and Caddy. It ships three worker replicas limited to 1 CPU and 2048 MB each, plus two native ones.
The sizing rule in its docs is explicit: "The rule of thumb is 1 worker per 1vCPU and 1-2 GB of RAM". On a four-core home server you feel that.
What each project holds back for paying users
| Feature | n8n Community | Activepieces CE | Windmill CE |
|---|---|---|---|
| Single sign-on (SAML, LDAP) | no | no | up to 10 users |
| Fine-grained roles and permissions | no | no | max 4 groups |
| Audit logs | no | no | no |
| Git synchronisation | no | no | up to 2 users |
| External secrets (Vault, KMS) | no | no | no |
| Separate projects or workspaces | no | no | 3 workspaces, 50 users |
| AI agents | yes | no | yes, with limits |
| Execution detail retention | yes | yes | 30 days |
| Included executions | unlimited | unlimited | unlimited |
Published prices: Activepieces charges 16 dollars a month on Plus, 166 on Team and from 36,000 a year to embed its builder in your product. Self-hosted Windmill Enterprise starts at 120 dollars a month, and its simulator quotes 170 a month for one developer with two workers. For its part n8n splits its features across Community, Registered Community (a free key adding folders and in-editor debugging), Business and Enterprise.
Which one to choose in each scenario
Homelab, one machine, just you. n8n, without hesitation. The huge catalogue saves you writing integrations, the single container with SQLite starts in a minute, and the fair-code licence never touches you while you automate your own things. If you are also building agents on your own models, it sits well next to Flowise or Dify.
Small team with more than one person editing the same flows. None of the three free editions divides permissions seriously here, so the question becomes which one hurts least to pay for. Windmill CE holds up to 50 users and 10 with single sign-on before pushing you to the till; n8n and Activepieces push you to a paid plan far sooner.
A company that must avoid licence risk. Activepieces. It is the only one of the three whose core you may read, modify, package and resell without asking. Accept the trade-off almost nobody mentions: agents, projects and API access all live outside that MIT part.
Engineers who want real code. Windmill. You write Python, Go or typed TypeScript, version it in Git, and get a Rust engine that performs like a serious orchestrator. Compile the binary without the enterprise flag if you also need the AGPLv3 guarantee, because the official image does not give it to you.
A visual agent builder above all else. None of the three is quite that; look at Langflow first and compare.
Frequently asked questions
Can I use n8n in my company without paying for a licence?
Yes, as long as the use is internal. The Sustainable Use License expressly permits using and modifying the software for your own company’s internal business purposes. The docs clarify that syncing data between your systems or offering consulting around n8n falls within it. What you cannot do is charge third parties for access to an instance you host.
Is Activepieces genuinely open source?
Its core is: everything outside packages/ee/ is under the MIT licence, which permits selling, sublicensing and modifying without restriction. The company itself acknowledges the community edition is "the automation core on its own" and that agents, projects, API access and the whole administration layer sit outside it.
Which one uses fewest resources on a small server?
n8n, by a wide margin. It starts as a single container against SQLite, while Activepieces needs PostgreSQL and Redis from the outset and Windmill’s reference compose brings up six services with three workers sized at 2 GB each. On a four-core home server, that difference decides more than any feature table.
Conclusion
The choice is not settled by integration counts but by two linked questions: what you are going to do with the tool, and what its licence lets you do.
If you automate your own work, n8n wins on catalogue and community, and its restrictive licence never touches you. If you are building a product on top, Activepieces is the only door open without permission, with the small print that its MIT part is narrower than the headline suggests. And if your team writes code, Windmill gives you a serious engine in exchange for six containers and for compiling it yourself if you want the AGPLv3 guarantee. La versión en español de este artículo está en Activepieces y Windmill frente a n8n.
Sources
- n8n, LICENSE.md carrying the Sustainable Use License
- n8n Docs, Sustainable use license
- faircode.io, the fair-code model defined
- Windmill, the repository LICENSE file
- Activepieces, pricing page and FAQ
- Windmill, pricing and feature comparison table
- Windmill, Python benchmark results
- n8n, integrations directory
Source code
Access all the source code for this post on GitHub.
View on GitHub