SOFTWARE BUYING DECISIONS

Windmill vs Kestra:
internal applications, declarative jobs and governance scope.

Compare Windmill and Kestra for internal operational tools, scheduled pipelines, self-hosting and the Enterprise controls a production rollout needs.

START WITH YOUR BUYING BRIEF

Start with the operator.
Prove the recovery path.

Windmill is a natural starting point when scripts need forms, internal apps and workflow execution in one platform. Kestra is a natural starting point when a team wants declarative orchestration across data, infrastructure and services. Both have free self-hosted editions and paid governance features. Select against the actual operator workflow and the failure-recovery requirements, not execution allowances alone.

Seven differences that change the shortlist

Windmill vs Kestra: plan and workflow boundaries
Buying questionWindmillKestra
Authoring emphasisScripts combined with flows and internal applicationsDeclarative YAML workflows with a synchronised guided editor
Operator experienceForms and apps built around existing scripts and flowsExecution UI; business apps and reusable inputs need edition checks
Task scopeMulti-language scripts and worker executionPlugin tasks and business logic across languages
Free software boundaryCommunity: unlimited executions with workspace, user and SSO capsOpen Source: unlimited flows and executions
Advanced governanceAudit logs and external secret backends require Enterprise scopeSSO, role-based control and audit logs are Enterprise capabilities
Paid cost modelSeats and compute configuration influence the quoteEnterprise annual per-instance pricing; Cloud usage needs a quote
Self-hosted responsibilityOperate workers, storage, deployment and upgradesOperate orchestration services, database, storage and upgrades

Four worked buying briefs

These are hypothetical scenarios with explicit assumptions. They do not establish equal capabilities, measured usability or a negotiated price.

Four hypothetical evaluation briefs; these tasks have not been performed
Buying briefWindmillKestra
Finance staff must run a controlled reconciliationBuild a form or app around the reconciliation script.Demonstrate the execution interface or quote the required app scope.
A data pipeline fails halfway throughExercise the flow’s retry and script behaviour with a controlled failure.Exercise task retries and the chosen recovery path on the same data.
Two teams need separated credentialsMap group, secret and audit requirements to Community or Enterprise.Map namespace, permissions and secret requirements to Open Source or Enterprise.
A daily process gains a seasonal burstQuote the actual developers, operators and worker layout.Quote the instance or Cloud workload with the burst assumptions.

Finance staff must run a controlled reconciliation

What does the non-developer operator see?

Windmill: Build a form or app around the reconciliation script.

Kestra: Demonstrate the execution interface or quote the required app scope.

Use read-only sample records first. The operator should recognise the selected period and output before any production write is allowed.

A data pipeline fails halfway through

Can the team recover without duplicating writes?

Windmill: Exercise the flow’s retry and script behaviour with a controlled failure.

Kestra: Exercise task retries and the chosen recovery path on the same data.

Make the sink record a unique batch identifier and verify rerun behaviour. Neither product makes arbitrary business code idempotent by default.

Two teams need separated credentials

Which edition contains the needed controls?

Windmill: Map group, secret and audit requirements to Community or Enterprise.

Kestra: Map namespace, permissions and secret requirements to Open Source or Enterprise.

Request a demonstrable separation: one team must not read or alter the other team’s credentials or job configuration.

A daily process gains a seasonal burst

What needs to scale and what is billed?

Windmill: Quote the actual developers, operators and worker layout.

Kestra: Quote the instance or Cloud workload with the burst assumptions.

Separate licence amounts from infrastructure consumption and downstream API charges; unlimited executions do not imply unlimited compute.

Design the human handover as carefully as the job

A scheduled pipeline and an internal app can run the same code while requiring very different acceptance tests. For a pipeline, write down when it should run, how lateness is detected and what output proves completion. For a staff-facing tool, specify the fields the operator can change, what a preview shows and the confirmation required before a write. Use the exact retained edition when evaluating those controls.

Then hand the process to someone other than its author. Ask them to identify the last successful run, explain a failed run and prepare a correction without revealing credentials. Observe any undocumented steps in a pilot; do not assume either product’s interface eliminates that training. Include a named escalation owner and a small operating guide in the purchase deliverables, particularly where a contractor built the first version.

Compare recovery controls and a complete operating bill

Create a synthetic run with three stages: read a file, transform records and write the approved result. Interrupt it after the second stage and establish which actions can safely repeat. Record input identifiers, the expected final state and who authorises a replay. This exercise is more informative than a claim about job throughput because it tests the organisation’s own recovery contract rather than a vendor benchmark.

Keep infrastructure and edition requirements on separate budget lines. List the people who build, execute or only view the process, then list the controls they require. Windmill’s configurable seats and compute and Kestra’s per-instance Enterprise arrangement are different units; do not derive a saving by comparing their entry labels. Obtain equivalent written scopes for audit retention, secrets, identity integration and support, plus the cloud resources the workload will actually consume.

Questions before you choose

Do unlimited executions make self-hosting cost-free?

No. They describe software allowance, not the database, workers, storage, network, maintenance or downstream service bill.

Are all production access controls included in the free editions?

No. Both publish edition boundaries. Compare the exact identity, audit, secrets and isolation requirements with the current feature matrix.

Is one product always better for non-developers?

No such usability finding is established here. Evaluate the actual form, app or execution workflow with its intended operator on the proposed edition.

Can a retry safely repeat every task?

Not automatically. The task code and connected system must handle repeat execution correctly. Define unique identifiers and an authorised replay process in the pilot.

Turn the comparison into your own evaluation

Use the same criteria and priorities for both products, keep unknowns unassessed and record the plan and evidence behind your ratings.

Build a Windmill vs Kestra scorecard →

Keep the assumptions with the figures

Use the date, billing cycle, units and limits with each example. Check current account terms before purchasing. Unverified prices and model costs stay unpriced.

Download the buying examples as JSON ↓

Share the comparison

Use these examples when discussing the shortlist with your team.