Open Source Alternative to Airplane for Internal Tools
Airplane is great for building internal tools. Windmill does it too, but makes it easier to deploy and maintain them at scale.
Although being a tool similar to Airplane, Windmill adopts radically different approaches.
Airplane is a developer platform to build internal UIs and workload automation.
Windmill is fully open source. This implies that Windmill can be self-hosted with just a few commands, providing cost-effective and secure solutions.
Windmill offers a clean slate, allowing you to fully explore its platform before committing to the product. Windmill's open-source nature ensures that the platform is tested, approved, and continuously enhanced to meet the community's needs.
Finally, Windmill provides and integrates into its platform a public Community Hub where users share useful and proven scripts, flows, and applications.
Airplane is a proprietary software and closed source.
Performance at scale & cold start
Given Airplane's architecture, tasks are run on fresh fargate containers. This has pros and cons. The biggest cons is that one is subject to the cold-start of Amazon fargate that routinely can go as high as 2 minutes.
Windmill's architecture is different and each task is run on the current fleet of worker (which you can auto-scale automatically) and hence do not suffer from cold start. Isolation and creating dedicated dependency environment is the secret sauce that makes Windmill the fastest execution runtime for scripts (10ms cold start).
Thus Airplane cannot run to the scale of millions of tasks because of this design choice and require a much costlier and heavier infrastructure than windmill. Windmill can run 26M tasks a month on a single worker costing 5$. Airplane does not provide figures on its average runtime and performance.
Also, Windmill has a transparent API, on which you could imagine launching 1m simulateously by API.
This inability to scale, inefficient architecture and high cold-start is the most common reasons for users to migrate from Airplane to Windmill.
Trust but verify: to ensure the performance of Windmill's workers and measure their capabilities, we provide a benchmarking tool. This tool allows you to benchmark the execution of jobs and flows, providing insights into the performance metrics.
Building and Deploying
Windmill's strength lies in its ability to run scripts without having to deal with separate dependency files. This is achieved by automatically parsing the imports and resolving the dependencies. Therefore, all dependencies can be handled from within the script.
Deployments in Windmill can be done from the web UI in a matter of seconds, or from Windmill's CLI. Before deployment and at any point, you can test what you are building directly from the editors.
The videos below show how to:
- manage dependencies
the same script on Windmill vs Airplane (all loading times are at 100% speed).
On Windmill, write and test your script from the editor. Deploy it with web UI and it's ready for running & sharing.
For Airplane, it implies:
- Creating the file from the web UI (or CLI).
- Editing it on a separate code editor.
- Testing on the web UI.
- Adding dependencies on a separate
- Deploying from terminal.
- Running the actual script on another web UI page.
Windmill embedds a web IDE and low-code builders to create endpoints, flows and apps.
Building scripts in Airplane involves transitioning from the web UI to a separate code editor and eventually employing the terminal.
The workflow engine of Airplane is built upon Temporal, which is incredibly complex. This complexity results in a lack of efficiency and intuitiveness.
Airplane also embeds an equivalent feature called Runbooks that allows to compose multiple tasks together. Airplanes's Runbooks are a good fit for small series of succint simple tasks executing one after each other.
Runbooks will hardly support complexity as the Airplane does not provide a graphical view, or built-in ways to create conditional branches or loops. At last, editing and deployment will be cumbersome since the low-code builders are highly limited and do not allow dynamically choosing the inputs & outputs of each step, or editing and writing scripts directly from the flow builder.
Windmill's Flow Editor allows you to compose steps together to build workflows and ETLs, represented as DAGs. As the flow editor has a dedicated web UI and relies on scripts, it is the perfect fit between code and low code.
Building apps in Airplane implies going 100% through code using React, with limited available components.
Windmill's App Editor works on a drap-and-drop basis, with code where it matters. If you prefer, you can also import apps in React/Vue/Svelte and link them to your scripts and flows.
Windmill has a transparent pricing policy, with clear steps for implementation.
Windmill is cheaper at scale and can be used for free at any scale thanks to its open source nature.
Windmill has dozens of integrations initiated by the community and approved by the Windmill team.
Anyone can create an integration with just a few clicks.
To conclude, Airplane is excellent for executing scripts within a familiar framework for developers.
Windmill goes a step further, allowing less technical profiles to develop scripts. This experience is complemented by Flow and App editors, as well as easier deployment and dependency management.