Windmill vs n8n
Pick Windmill if the people building the automations write code: scripts in Python, TypeScript, Go, Bash, SQL and more become webhooks, schedules, flows and internal UIs, under an AGPL-3.0 core, with unlimited executions in a free edition capped at 50 users — knowing the shipped Community image also contains proprietary code and the default compose stack is a multi-gigabyte, six-service deployment. Pick n8n if non-developers will build the automations or the work is connecting SaaS applications: one container on the 1 GB our n8n page lists (n8n publishes no minimum) with the larger application catalogue, under a Sustainable Use License that permits internal and personal use but not redistribution.
Side by side
Windmill and n8n both run workflows on a server you own, and that is roughly where the overlap stops. n8n is a no-code integration tool: a visual canvas, a catalogue of application nodes, credentials and executions managed for you. Windmill is a developer platform: you write scripts in Python, TypeScript, Go, Bash, SQL, PowerShell or Rust, and Windmill turns them into webhooks, schedules, multi-step flows and even internal UIs — its own positioning is "alternative to Retool, Pipedream, Superblocks", not to Zapier. Which one you want depends on whether the people building the automations would rather write code or drag nodes.
Code-first versus node-first
In Windmill, the unit of work is a script with typed inputs. The platform generates a form for it, runs it in a sandboxed worker, and lets you chain scripts into flows with branches, loops and retries — then build a small app on top if someone non-technical needs a button. Its worker model is explicitly sized for compute: the docs' rule of thumb is one worker per vCPU and 1–2 GB of RAM, and the default compose file starts three general workers plus a native one.
In n8n, the unit of work is a node from the library — a CRM, a chat tool, a spreadsheet, an AI model — wired to the next. You can drop into JavaScript inside a Code node, but the product's centre of gravity is the catalogue, and the appeal is that a non-developer can build a real integration without reading an API reference.
Licenses: both open-core, differently
Windmill's core is AGPL-3.0, a genuine OSI license, with some parts under Apache-2.0. Two things to read carefully: the Community Edition image you actually pull contains proprietary code alongside the open-source parts (the README says so, and grants free internal use of it), and the free edition has quotas — a maximum of 50 users, three workspaces, four permission groups, ten SSO users — while executions are unlimited. SAML/SCIM, audit logs (Enterprise on the pricing page; the docs give the Community Edition a 14-day retention against a year on Enterprise), autoscaling, concurrency limits, the forms/prompts/role-restriction layer of approval steps, external secret backends, agent workers and the staging/production deployment UI are Enterprise features.
n8n's Sustainable Use License is source-available rather than OSI: use and modify it for internal business or personal purposes, but do not redistribute it. Its Community edition withholds SSO (SAML, LDAP), projects, sharing, environments, external secrets, log streaming and Git version control; registering the free edition unlocks folders, debug-in-editor and custom execution data. No user cap is documented.
So Windmill is the one with an open-source license and a seat limit; n8n is the one with a restrictive license and no seat limit. Pick the constraint you can live with.
Footprint
This is not close. n8n runs as one container; the 1 GB on our n8n page
is this site's figure, since n8n publishes no minimum.
Windmill's default compose stack is a server, three workers and a native
worker each with a 2 GB memory limit, Postgres 18, an extras container and a
Caddy proxy that publishes ports 80 and 25. The 4 GB on Windmill's page
here is our figure: upstream's 1–2 GB-per-worker rule applied to those four
workers gives 4–8 GB and we list the low end — the project publishes no
single minimum, and a busy instance will want more. The .env you download
ships the database password changeme (it is also hard-coded on the db
service in docker-compose.yml, so change both or neither) and the first
login is admin@windmill.dev / changeme, which you should change on first
sign-in.
Pick Windmill if…
- Your automations are code you would rather write than draw, in more than one language.
- You want an AGPL-3.0 core and can live inside the free edition's 50-user cap.
- You need background jobs, internal tools and webhooks in one place — the Retool/Pipedream job, not the Zapier job.
Pick n8n if…
- Non-developers will build the automations.
- The work is connecting SaaS applications, and the node catalogue saves you the API reading.
- A single container is the right size and the Sustainable Use License's internal-use terms are no obstacle.
The honest trade-off
Windmill wins this comparison for developer teams: it does more per box — scripts, flows, schedules and UIs in any of several languages — under an AGPL core, and its free edition's quotas are generous for anything short of a company-wide platform. It loses for everyone else, which is most people searching for a Zapier replacement: it asks you to write code, it wants a multi-gigabyte compose stack, and its shipped image is not purely open-source either. n8n is the smaller, friendlier install with the bigger application catalogue; its license is the part to read twice.
Common questions
Windmill vs n8n — which should I self-host?
Windmill if your team writes code and wants scripts, flows, schedules and internal UIs in one platform under an AGPL-3.0 core; its free edition has unlimited executions and a 50-user cap. n8n if non-developers will build the automations or the job is connecting SaaS applications — it is one container on the 1 GB our n8n page lists (upstream publishes no minimum) with a much larger application catalogue, under a source-available license.
Is Windmill fully open source?
The core is AGPL-3.0 with some parts under Apache-2.0, but the README states that the Community Edition image you download contains proprietary code alongside the open-source parts, which you may use internally for free. SAML/SCIM, audit logs beyond a short Community retention window, autoscaling, the forms/prompts/role-restriction layer of approval steps and several other features are Enterprise-only.
How much server does Windmill need compared with n8n?
Considerably more. n8n publishes no minimum; the 1 GB on our n8n page is this site's figure for its single container. Windmill's default compose file runs three general workers and one native worker with a 2 GB memory limit each beside the server, Postgres and a Caddy proxy, and the docs' rule of thumb is one worker per vCPU with 1–2 GB of RAM — four workers at the low end is where the 4 GB on our Windmill page comes from. It is our figure, not an upstream minimum.
Paid link — we earn a commission if you shop through it.
Other comparisons with these apps
The two Zapier-shaped visual builders in this hub — an MIT core that is still pre-1.0 vs. the mature, source-available incumbent.
Two browser flow editors on Node.js that do different jobs — event and device plumbing under Apache-2.0 vs. SaaS-to-SaaS automation under a source-available license.
The multi-database web client from DBeaver vs. the PostgreSQL-only admin tool.