Windmill vs Retool
Eight questions teams ask during a bake-off, with an honest answer on each one for where Windmill or Retool is the better pick.

- 01What you can buildWhich solution fits for your specific use case
- 02TargetWho the platform is built for
- 03Build experienceHow you build on each platform
- 04IntegrationsHow the platform integrates with your existing stack
- 05Migration & lock-inHow hard to get in, how hard to get out
- 06Enterprise requirementsAudit logs, observability, security, performance
- 07Licensing & pricingOpen source, pricing, self-hosting
- 08VerdictThe verdict
An open-source workflow engine and developer platform to build and orchestrate all your internal software: scripts, workflows, data pipelines, AI agents and internal apps. Made for engineers who want full code flexibility and local dev experience, both to build internal software and to manage the underlying infrastructure.
Retool in one sentenceA proprietary low-code platform for internal apps: drag-and-drop canvas, large component library, JavaScript queries on top of your databases and APIs, and AI-assisted app generation. Workflows and AI Agents are adjacent products on the same canvas.
Which internal software can you build and orchestrate?
Windmill centralizes scripts, workflows, data pipelines, full-code apps, AI agents and operator UIs on a single runtime, with shared resources, auth and observability. Retool is app-builder first, with Workflows and Agents layered on the same visual canvas. Strong for internal apps. Narrower for scripts-as-APIs, heavy data pipelines and code-first automations.
| Primitive | Retool | |
|---|---|---|
Drag-and-drop dashboards and admin tools with a built-in component library | ||
Custom dashboards and admin tools built in React or Svelte | ||
Chain steps into flows with branching, retries and approval steps | ||
Standalone functions exposed as APIs, webhooks or cron jobs with their own UI | ||
ETL, syncs and scheduled data jobs with parallel branches | Partial | |
Build agents that call tools, branch on outputs and run as workflows | ||
Isolated environments with persistent volumes for running agents | ||
Cron jobs with retries, error handling and alerting |
Who is each platform built for?
Windmill is built for developer-led teams where engineers own the platform end-to-end. Retool is built for developers and low-code engineers who want a polished visual canvas for internal tools, with JavaScript and SQL for the glue logic.
RetoolPrimary audience
Developer-led teams. Engineers own the platform end-to-end: code, Git, local dev, workspace forks, code review, CI/CD, AI coding tools, infrastructure as code.
RetoolDevelopers and low-code engineers building internal tools. The canvas-first UX is designed for people who think visually and write short JavaScript or SQL for glue logic. Common audience: full-stack devs, data engineers, ops engineers, technical PMs.
How non-developers participate
Non-developers consume through auto-generated UIs, custom apps and an operator role. They can build simple apps with AI assistance, but authoring scripts and flows still involves writing code.
RetoolThe drag-and-drop app canvas is approachable for non-developers who can read a bit of JavaScript. Deeper flows and Workflows still require real code, so a purely no-code user hits a ceiling fast.
How do you build on each platform?
Windmill is code-first: scripts are real files in any of 20+ languages, runnable locally, and the whole workspace lives in Git. Retool is canvas-first: apps and workflows are built visually in a web IDE against live data, with JavaScript and SQL for glue code. Great for getting started fast, harder to treat like application code.
Build apps directly in the Windmill UI: a built-in IDE where the frontend wires to backend scripts and flows as runnables, with AI-assisted generation and one-click deploy with versioning.
RetoolAuthoring
Build scripts in 20+ languages in a dedicated script editor. Each script is a standalone primitive with its own UI, API endpoint and scheduler, no visual canvas required to run. The app builder gives you both a drag-and-drop canvas and a full-code React or Svelte option. Any public or private package is a first-class import with automatic dependency resolution.
RetoolAuthoring happens on a visual canvas. Apps are built by dragging components and wiring them to queries (REST, SQL, JS transformers). Workflows use a separate canvas with blocks for code, queries, loops and branches. Code blocks accept JavaScript; Workflow code blocks also accept Python. App definitions live in Retool's database, not as files in your repo by default.
Local dev & IDE
Full-code apps are real React or Svelte source trees in your repo: edit in VS Code, run a local dev server for hot-reload preview, and deploy via the CLI or Git sync. The backend scripts and flows that power your apps are authored the same way: edit and test locally with the VS Code extension, then wire them into the app as runnables. Native language tooling and AI coding tools (Claude Code, Codex) work against real source files, not a canvas.
RetoolA Retool CLI (Labs / educational) can scaffold apps, manage Retool DB, list and export apps, and create custom components from the command line. It is not a local-dev loop: editing pages still happens in Retool's web IDE against live data, the CLI does not run apps locally, and canvas changes do not round-trip through it. Query code is edited inline; longer JavaScript or Python lives in the canvas editor. No offline mode.
Language runtimes
TypeScript (Deno, Bun, Node.js), Python, Go, Bash, SQL, PowerShell, PHP, Rust and more (20+ languages total). Any npm, PyPI, Go, Maven or Cargo package is a first-class import with automatic dependency resolution.
RetoolJavaScript for transformers, query post-processing and component event handlers. Python and SQL for backend queries. Additional languages require wrapping in a Retool Workflow or an external service call.
Data handling
First-class data tables with SQL queries, versioning and a browse / edit UI as a persistent primitive separate from apps, plus native S3 integration for large payloads, files and persistent storage across scripts, flows and apps.
RetoolRetool Database is a hosted Postgres for app-backing data with a browse / edit UI, available on Free and above with row caps that scale by tier. External databases connect as Resources. Files and large binary data go through the File component and the AWS S3 resource.
Resources & secrets
Resources (typed JSON for credentials, connection info, configs) and Variables (individual secrets) are first-class and reusable across scripts, flows and apps. They're encrypted at rest, scoped via folders and groups for access control, and versioned in Git. External secret backends (Vault, AWS Secrets Manager) are Enterprise only.
RetoolResources (database and API connections) and environment variables are configured at the organization level. Values are encrypted at rest and not visible in app code. External secret managers (AWS Secrets Manager, Vault) are Enterprise only.
Git & CI
Full IaC: scripts, flows, apps, resources, variables, secrets, schedules, folders, groups and permissions are all files in Git, deployed via the CLI and Git sync. Internal tooling runs like application code: PRs, reviews, rollbacks, CI/CD. Git sync is free for up to 2 users; beyond that is Enterprise only.
RetoolRetool Source Control syncs apps, workflows, resources and themes to GitHub, GitLab, Bitbucket, AWS CodeCommit or Azure Repos via pull requests. It is listed as Enterprise only on the pricing page. Lower tiers rely on App Release Versions inside Retool itself.
How does the platform integrate with your existing stack?
Windmill treats any public package (npm, PyPI, Go or Maven) or your own as a first-class import, so the effective integration catalog is the package ecosystems themselves. Retool ships 100+ polished connectors for the most common databases and SaaS tools. Easier out of the box for mainstream stacks. Tighter ceiling for the long tail.
Type `import stripe` in the script editor and run. Windmill detects the import, resolves the version and pins it in a per-script lockfile automatically. No venv, no pip install, no restart: the platform manages dependencies for you.
RetoolConnecting out
Any npm, PyPI, Go or Maven package is a first-class import with automatic per-script dependency resolution and lockfiles, and no plugin layer in between: you call the vendor's real SDK with full type inference and auto-completion in the editor. 50+ pre-built resource types cover common databases (Postgres, Snowflake, BigQuery), SaaS (Slack, Stripe, GitHub, Notion, OpenAI) and infrastructure (S3, Redis, Kafka): paste an API key into a typed form and the resource is shared across scripts, flows and apps, encrypted at rest. A community Hub has reusable scripts and flows for common tasks.
Retool80+ pre-built connectors for databases (Postgres, MySQL, Snowflake, BigQuery), SaaS (Salesforce, Stripe, HubSpot, Slack, Zendesk, Jira) and AI providers (OpenAI, Anthropic, Google Gemini). For anything not in the catalog, you fall back to a generic REST or GraphQL resource or a JavaScript code block.
Receiving events
Native triggers for HTTP, cron, Kafka, NATS, Postgres CDC, SQS, MQTT, SMTP and WebSocket. Each trigger is a typed primitive in the UI: configure topic, subject or path, attach it to a script or flow, and Windmill handles the connection, replay and consumer-group state. Every script also gets an HTTP endpoint and a webhook URL for free, so most receive paths need zero glue code.
RetoolThree trigger types on Workflows: Scheduled (cron), Webhook, and Query (BETA, polls a database or SaaS query for new rows). Event-driven triggers beyond that (Kafka consumers, CDC, queue consumers) require polling workarounds or an external event bridge.
Extending
A new integration is just a script with a new import. No plugin release cycle to wait on. Custom UI components can be added as React components.
RetoolCustom components exist but are limited compared to writing a standalone React app. Custom auth, custom connectors and advanced integrations often require dropping to a generic REST resource with hand-rolled JavaScript transformers.
How hard to get in, and how hard to get out?
Windmill keeps switching cost low. Step code is standard TS, Python, Go, Bash or SQL that runs anywhere, including after you leave Windmill. Retool has higher lock-in: apps are stored in a proprietary canvas format, and Git export is an Enterprise feature that still produces Retool-specific files.
RetoolGetting in
Paste a function body into the script editor, Windmill infers args, generates a UI, handles dependencies. Drag-and-drop apps, triggers, schedules and variables migrate one by one. No learning curve around a proprietary canvas format.
RetoolFast if you already think in terms of drag-and-drop apps wired to queries. Common CRUD UIs over a database can be live in under an hour. Migrating existing code-based internal tools usually means redrawing the UI component by component, since there is no import from React, HTML or other app formats.
Getting out
Step logic is already standard code (TS, Python, Go, Bash, SQL) that runs anywhere. The CLI exports the full workspace as plain files. What you lose leaving Windmill is the runtime, not the step code.
RetoolRetool apps are stored in a proprietary canvas format. With Source Control enabled (Enterprise only), apps and workflows sync to Git as JSON, but the format is Retool-specific and not portable to another platform without a rewrite. JavaScript and SQL inside queries are portable; the visual layout and component bindings are not.
Audit logs, observability, security, performance
Both cover the enterprise basics. The difference is where those features sit on the price sheet. Windmill ships RBAC, SSO (up to 10 users), encrypted secrets and multi-workspace isolation in the free self-hosted core. Retool gates custom SSO, Git sync, independent workspaces and self-hosting behind Enterprise, with RBAC and audit logs starting at Business.
RetoolObservability
Real-time streaming logs, per-run inputs / outputs / duration, built-in worker queue metrics and a Prometheus exporter. Trace ID on every job.
RetoolWorkflow run logs with per-block timings and I/O. App-level usage analytics and query history. No native Prometheus exporter. OpenTelemetry export is available on self-hosted Enterprise deployments.
Audit logs
Full trail of who ran / edited / deployed what. Extended retention is Enterprise only.
RetoolAudit logs track user and admin activity. Available on the Business plan and above, not on Free or Team.
Security
SOC 2 Type II compliant. RBAC, SSO (up to 10 users), encrypted secrets at rest and sandboxed script execution in open source. Uncapped SSO, audit logs and advanced access controls (SCIM, SAML) are Enterprise only.
RetoolSOC 2 Type II, HIPAA and ISO 27001 compliant. Rich RBAC is on Business and above. Custom SSO (SAML, OpenID), SCIM, custom branding and independent workspaces are all Enterprise only. Google SSO is available on lower tiers.
Multi-tenancy & isolation
Multiple isolated workspaces on the same instance, each with their own users, resources, secrets and access controls. Free tier is capped at 3 workspaces; unlimited is Enterprise only.
RetoolIndependent workspaces (Retool's term for isolated tenants) are Enterprise only. Lower tiers share a single space. Environments (dev / staging / prod) for resources are available from Team upward.
Performance
~10ms cold starts. Dedicated-worker mode Enterprise only keeps runtimes and dependencies pre-warmed. Published benchmarks against other orchestrators.
RetoolPerformance is dominated by query and rendering time in apps, and by block startup in Workflows. No published performance benchmarks. Workflow runs are capped at 5,000/month on Team and Business. Higher volumes require Enterprise.
Open source, pricing, and self-hosting?
Windmill is open source (AGPLv3 core), free to self-host at any scale, with public per-seat and per-worker Enterprise pricing. Retool is proprietary and closed-source, priced per user. Self-hosting and most governance features require an Enterprise contract.
RetoolOpen-source license
AGPLv3 core, free and unlimited self-hosted. Enterprise features (SSO, dedicated workers, audit logs, external secret backends) ship in a separate proprietary codebase. Managed cloud available.
RetoolProprietary and closed-source. There is no open-source edition. Self-hosting is Enterprise only. Free, Team and Business plans are cloud-only.
Enterprise pricing
Public per-seat and per-worker pricing on the pricing page, starting at $120/month. Enterprise adds SSO, audit logs, dedicated workers, advanced worker groups.
RetoolPer-user pricing: builders at €9/Team, €46/Business, custom on Enterprise. End users at €5/Team, €14/Business. External-user tier available on Business+. Enterprise pricing not public. A sales conversation is required for custom SSO, Git sync, self-hosting and independent workspaces.
The verdict
Windmill and Retool answer the internal-app question with two different stances. Retool is a proprietary SaaS with a polished visual canvas, where apps, queries and component bindings live in Retool's database; authoring is browser-against-live-data, with a CLI in Labs for scaffolding. Windmill is an open-source AGPLv3 platform where apps are real React or Svelte source trees in your repo, scripts and flows are files in Git, and the whole workspace runs on infrastructure you control.
Retool can be a good fit if your internal-tool need is a drag-and-drop dashboard on top of a database or SaaS API, your team is comfortable authoring inside the canvas, and a proprietary runtime is acceptable. The component library is broader and more mature than Windmill's, the visual editor is more refined for non-developer authors, and AI-assisted app generation lands quickly on mainstream patterns.
Windmill matches the same low-code surface and adds a full-code React or Svelte option that Retool does not offer, with a real local-dev loop: edit apps and the backend scripts and flows that power them in your IDE, with native language tooling and AI coding tools working against real source files, then deploy via the CLI or whole-workspace Git sync. The runtime scope is wider too: the same platform that runs your apps also powers workflow orchestration, data pipelines, scripts as standalone APIs and AI agents, with shared auth, secrets and observability across all of them. The core is AGPLv3 and free to self-host without an Enterprise contract, and Enterprise pricing is published upfront on the pricing page.
The switching cost is also asymmetric. Retool apps live in a proprietary canvas format with no official export, so leaving Retool means rebuilding each app component-by-component, with queries and event handlers rewritten against another runtime. Windmill apps and scripts are plain source files in Git, so the per-app rewrite cost is much smaller, and the Git history travels with you. If you're deciding between the two, the fastest way to judge is to spend an afternoon in each.
Frequently asked questions
Build your internal platform on Windmill
Scripts, flows, apps, and infrastructure in one place.