Windmill Labs
Windmill

Trusted by 9,523 instances, including 300+ EE customers at scale:

ZoomZoomKahootInvesting.comCFA InstituteCFA InstituteAxiansAxiansPhotoroomPavePanther LabsNocd

Build any internal software, and run it on Windmill

Windmill lets you build scripts, workflows, apps, agents and data pipelines, and runs them on the fastest self-hostable orchestration engine.

reconcile_invoices.ts
import { listInvoices, ledgerEntries } from "./finance";
export async function main(
stripe: RT.Stripe,
ledger: RT.Postgresql,
since: string,
dry_run = false
) {
const invoices = await listInvoices(stripe, { since });
const booked = await ledgerEntries(ledger, since);
const missing = invoices.filter((i) => !booked.has(i.id));
return { checked: invoices.length, missing: missing.length };
}
/finance/reconcile_invoicesScript
stripeRT.Stripe
/finance/stripe
ledgerRT.Postgresql
/finance/ledger_db
sincestring
2026-09-01
dry_runboolean
Click Run to try it
Scripts
A function in any of 20+ languages becomes an API endpoint and a form. Windmill resolves its imports, locks versions at each deploy and installs from your private registries.
+11 languages →

In the Windmill UI or locally

Build with AI directly in the Windmill UI, or locally from your editor and coding agent with the Windmill CLI or MCP. All of it lands in the same workspace.

$npm install -g windmill-cli

Self-hosting? Deploy with Docker or Kubernetes first.

AI Sessions
Windmill
On-call escalationActing on/ops
Page the on-call engineer when the queue backs up, and escalate to the lead after 15 minutes.
Ask followup
/ops/oncall_escalation
On-call escalation
Building oncall_escalation

Scope what each team can access

Give each team its integrations, permissions, skills, MCP servers and custom tools, so its AI builds safely, with only the access it needs.

Data/data

Review before deploying to prod

Changes are built in a fork of the workspace, like a branch. A deployer reviews the diff and the CI results, deploys to staging then prod, and each version stays one click away from a rollback.

Fork the workspace
A fork copies the workspace, with its scripts, flows, apps, resources and data tables, into an isolated workspace on its own Git branch. Nothing done there touches staging.
AllScriptsFlowsAppsSearch Scripts, Flows & Apps
ops finance data
On-call escalation/ops/oncall_escalation Edit
Check queue depth/ops/check_queue_depth Edit
Revenue pipeline/data/revenue_nightly Edit
Support triage agent/support/triage_agent Edit
Payouts dashboard Raw/finance/payouts_dashboard Edit
Employee onboarding/ops/onboard_employee Edit
prod
staging
+ Workspace

See each run, and why it failed

Windmill is also the runtime your apps, workflows and agents run on, so observability comes built in: each run keeps its inputs, logs and result, and a failure alerts the team with everything needed to fix it.

Runs
Each run of each script, flow and app, filterable by status, path and time. A failure alerts its team on Slack, Teams or by email.
Runs
LiveWaiting for workers: 0AllWithin last 24 hours Filter runs...
DurationConcurrency
job duration (ms)
7 jobsDurationPathTriggered by
/data/revenue_nightly
Failed after 41.2sTag: data-heavy
Inputs
{ "day": "2026-09-30" }
Result
{ "error": "No active warehouse selected" }
LogsAssets
10:40:00 Extract Stripe: 1,204,331 rows
10:41:03 Transform in DuckDB: done
10:42:06 Load to Snowflake
error: No active warehouse selected
Alert sent to #data on Slack

Build on top of the fastest orchestrator in the industry

From a single-node VPS to 1,000-node Kubernetes clusters, auto-scale on demand or isolate critical tasks with dedicated worker groups.

See benchmarks
10 long tasks40 lightweight tasks

Strict enough for your platform team, invisible to the person building

Photoroom
“Windmill quickly became crucial at Photoroom. We self-hosted Windmill Enterprise Edition to run a large number of internal scripts and business-critical automations.”
Eliot Andres
Co-Founder & CTO, Photoroom
“At Pave, we self-host Windmill Enterprise Edition to run 100+ scripts and 15+ crons. Our Windmill deployment interacts with half a dozen data stores to power all kinds of business-critical tasks and automations across several teams.”
Lewis Ellis
Staff Platform Engineer, Pave
Pave
“Our platform per se is built entirely upon Windmill. It was one of the few products that allowed us the flexibility of integrating with our own third-party Python library and having a graphical user interface already pre-baked - that was the main selling point of Windmill for us.”
BJ Maldonado
Platform Manager, Panther Labs
Panther Labs
“At Investing.com, we use Windmill to orchestrate our AI workflows. The quick setup through Docker Compose and intuitive UI allowed us to get started immediately.”
Yonathan Adest
Chief Technology Officer, Investing.com
Investing.com
“We actually use Windmill's job engine to do a lot of the heavy lifting for us. We schedule future jobs into Windmill's job engine to handle some drip hydration tasks for our demo platform.”
Frederic Louks
Demo Platform Product Manager, Zoom
Zoom
“Currently, we employ 9 apps, 20 flows, and 63 scripts in our daily operations. They all serve as the foundation for essential tasks, allowing users to independently manage their activities according to their specific needs.”
Sindre Svendby
Software Engineer, Motimate
Motimate - a Kahoot! company

Build anything internal.
Run it all on Windmill.