Description
First, I want to begin by saying that Windmill is an amazing platform. Its support for defining tasks and flows in multiple languages right in the UI is fantastic. The ease of deployment, the excellent documentation, and the sheer engineering effort that went into this tool are all extraordinary. It truly feels like a product built by developers for developers.
As a student who is just beginning to understand enterprise-scale platform engineering, you can imagine my excitement when I stumbled upon Windmill while exploring Supabase integrations. My immediate thoughts were:
- “This is everything I’ve ever wanted from an orchestrator.”
- “This would be a great project to contribute to.”
- “This would be an awesome place to work.”
Having worked at enterprises and designed applications using tools like Ansible + AAP/Ansible Tower, Apache Airflow, and Databricks, I saw in Windmill the perfect orchestrator, particularly for small-team consulting projects where powerful orchestration is needed but managing a complex application stack is untenable.
However, after diving deeper into the documentation and spinning up a local instance, I was left feeling disappointed. The marketing emphasizes open-source principles, but the pricing model, licensing terms, and arbitrary feature restrictions paint a different picture—one that feels more like a bait-and-switch than a genuine commitment to FOSS.
Interestingly, if you read through the documentation on Windmill’s website, many comparisons to other platforms start with the claim that “Windmill is fully open source.” This feels disingenuous. It’s one thing to care about FOSS but need to build a sustainable business model. However, Windmill’s approach increasingly seems like a predatory attempt to leverage open-source sentiment for marketing while implementing restrictions that contradict its principles.
The Pricing Model
The pricing model for self-hosted deployments is perhaps the most egregious of all. From what the UI and documentation suggest, users must pay to use their own compute. If I am self-hosting Windmill and the workers are running on my infrastructure, why would I be charged based on the number of workers or their memory limits? This pricing structure seems designed to discourage self-hosting altogether.
In industries like finance and healthcare, where I have experience, strict regulatory requirements often mandate on-premises deployment or preclude fully managed services. This pricing model would make Windmill impossible to adopt in such environments. Enterprises will pay for SLA-backed support and custom deployments, but charging for the number of workers and memory usage on infrastructure they already own and maintain? That is a hard sell.
The Arbitrary Restrictions
Even with the above pricing model for EE, if CE weren’t full of arbitrary restrictions, it might be easier to justify. But it is.
Object Storage
I cannot connect to an S3 instance with more than 20 objects or upload files larger than 50MB. Why? This is a matter of rendering the result of a list_objects
call in the browser, not some competitive technical advantage. Users already pay for their storage infrastructure (AWS S3, MinIO, etc.), so why impose additional restrictions on simply using it?
Content Search
I noticed that embedding models are downloaded even in CE without the search feature enabled. Browsing the codebase confirmed these models are used for the search functionality. Not only is the computation happening locally, but the dependencies are already installed. Yet, you’re still not allowed to use it unless you pay for EE.
Codebases and Private Indexes
The FOSS version seemingly lacks support for private PyPI or NPM packages. If this means you’re prevented from installing from internal repositories (even with environment variables and proxies configured), this creates an immediate roadblock for most enterprises. Internal repositories are ubiquitous at scale, and restricting access to them seems arbitrary at best and another concerted effort to limit the usefulness of the platform without paying up at worst.
Alerts
The platform already supports event-driven workflows, yet it prohibits triggering an alert when a critical process fails without paying for EE. This undermines the usability of the platform for production-level workflows.
Final Thoughts
I want to acknowledge that, in truth, I don’t even need most of the paywalled features for my own use cases. I’m unlikely to have more than 10 users. I don’t need to browse object storage in the UI—I can already do that through Supabase or MinIO and still leverage tools like boto3
in my scripts, passing S3 arguments as strings. Not having Git sync only introduces a small inconvenience, and I could probably roll my own solution, just as you would with an orchestrator like Airflow.
However, the issue isn’t about the absence of these features for me—it’s the feeling of misalignment. The company presents itself as a supporter of open source, but the practices suggest it’s leveraging open-source sentiment without adhering to its principles. Instead of pitching Enterprise Edition with value added, the approach feels like an effort to push users away from Community Edition with value subtracted—and that’s what makes it so disheartening.
You don’t even have to be open source. If it said "Open core" or "Source available" from the start, I wouldn’t be writing this issue—I’d be writing code in my local Windmill deployment. The Business Source License (BSL) would work fine here. The Sustainable Use License would work fine here. The arbitrary handicaps would still suck, but at least it wouldn’t feel like a blatant attempt to masquerade as FOSS for goodwill.
I wanted to pitch Windmill for a couple projects, and we probably would have ended up paying for a license or support in the long term anyways, but when the first word on your website is "Open-source" and you're very blatantly not, it's both hard to trust the company or to imagine widespread adoption to the extent of platforms like Airflow. As it stands, I would feel much more confident using a platform like n8n that isn’t FOSS but doesn’t pretend to be, or something like Temporal that surpasses Airflow in convenience and performance even without a flashy web editor.
Open Source is—and should always be—more than just a marketing term.
Sincerely,
Apostoli
P.S.
I am totally open to being wrong. I hope I am. I just found the platform a few days ago and spun it up and it was felt more reminiscent of downloading a demo of a game on my PS3 or a Lite version of an app when I was a kid than a FOSS platform with optional enterprise grade features but as I said, I'm definitely young and naive. Maybe you guys have the best intentions and need to appease the VC, maybe there are technical reasons for these constraints that are beyond my understanding. I don't know.