By clicking “Accept All Cookies”, you agree to the storing of cookies on your device to enhance site navigation, analyze site usage, and assist in our marketing efforts. View our Privacy Policy for more information.
Spotlights

Windmill: Scripts to applications and workflows with minimal code

This interview is part of the Decibel OSS Spotlight series where we showcase founders of fast-growing community-led projects that are solving really unique problems and experiencing strong community adoption.

Sudip Chakrabarti spoke to Ruben Fiszel, creator of Windmill that instantly turns Python, Typescript, Go, and Bash scripts into applications and builds powerful long-running workflows and self-serving UIs in minutes.

Ruben shared with us his inspiration behind creating Windmill and how he is keeping up with the fast growth of the project.

Tell us a little bit about yourself, Ruben. Where were you born and what did you do until you started working on Windmill?

I was born and raised in Paris, and did my undergrad and graduate studies in CS at EPFL. Subsequently, I joined Stanford to do research in compilers, converting high-level languages like Scala all the way down to hardware in order to breach the limits of Moore’s law. My initial plan was to join academia, but I eventually came to realize that I enjoyed working on real-world applications far more than I did writing research papers. Also, I was broke; so, getting paid for what I enjoyed doing seemed like a great idea! I joined Palantir and stayed there for a couple of years eventually leading the developer tools team there. But, the itch to start my own company remained and, after a stint at a startup where I learned some valuable lessons in building a company, I started Windmill, the open source project and the company.

Ruben with his Masters thesis advisor Prof Kunle Olukotun from Stanford

What was your reason to start Windmill? Was there a personal need that you were trying to solve by creating this project?

I have been working on the Windmill idea for a long time - it started with my interest in programming languages and compilers. Programming languages are great abstractions for building complex applications and distributed systems. However, in reality we have a lot of small applications each of which does one thing really well but must be chained together to automate complex workflows and services. This is a particularly acute need for engineers who are building internal applications and tools that are too complex and time consuming to build from scratch with code while no/low-code tools are not powerful enough. I started Windmill to address that whitespace in the market. I wanted to build a platform that retained the powerful abstraction of programming languages without all the bells and whistles needed to build distributed systems, yet helped engineers move fast to deliver business value.

What were the early days of the project like, and what made you decide to open source Windmill and eventually start a company?

I started out as a solo founder, quit my job and started building Windmill. It took me four months to build the first prototype of Windmill which was a bare-bone version but showed its potential. It then took us another eight months to build a stable version, showing yet again that it takes way longer to perfect something than to create it. A turning point for me was getting accepted into the YC program. Originally, I hadn’t thought much about the YC program, but now that I have gone through it I recommend it highly to other founders, especially solo founders. As a solo founder, you lack a strong sparring partner for your ideas and the structure of the YC program could really help with that!

The core Windmill team - the first believers!

What is Windmill? What problem are you trying to solve with Windmill?

Windmill is an open-source developer platform to quickly build production-grade, multi-step internal apps, workflows and integrations from Python, Typescript, Go and Bash scripts. A typical enterprise has numerous scripts for atomic tasks - with Windmill, those scripts could be automatically converted into apps and chained together to build powerful workflows. An example of a workflow would be how an enterprise interacts with a user: send an onboarding email at sign up, monitor user activity, and trigger specific actions and communications based on usage pattern. Today, such workflows are implemented via complex platforms like Temporal that require extensive technical expertise and knowledge of distributed systems, limiting its usage to very senior engineers. Windmill instead allows users to build and run complex workflows via a low-code approach, thereby significantly lowering the technical barrier to use and bringing the power of workflows to everyone.

In the long run, we envision Windmill to be the uniform programming layer for enterprises to express their business logic that can be executed by computers. Programming languages play that role for distributed systems, but those are lower-level abstractions. Windmill could be the layer on top, augmented by recent advances in NLU/NLP, that can be used by users with little or no coding experience.

What made you decide to open source Windmill, especially given some of the alternatives to Windmill are closed source?

I have a deep conviction that all software should be open source. I have always been attracted to academia because of its core mission: to expand and share knowledge. I find open source to be the purest form of knowledge sharing - you are building software to accelerate innovation without expecting anything in return. In contrast, I had worked at Palantir which was an opaque company that I found frustrating. I felt that even from a commercial standpoint, Palantir had more to gain by being open about its strategy and software. So, instead of just preaching, I decided to practice what I believed in - I open sourced Windmill as soon as I had the first prototype built. Also, if you are building a product that you expect developers to use en masse, you must consider open sourcing it. Honestly, I feel lucky that most of the alternatives to Windmill continue to be proprietary, which IMHO is a missed opportunity and gets in the way of getting widely adopted.

You have a rapidly growing user community for Windmill. What are some of the things you are doing to make that happen?

At present, we are measuring the adoption of Windmill through proxies. We currently have 1.7k stars on Github and 20+ contributors, all with zero marketing. We are also seeing strong market pull from enterprises. We have designed Windmill to have completely open APIs; as a result, enterprises can pick and choose different pieces of our platform - either the whole platform, just the frontend, or only the scalable and very performant runtime - which has really helped our enterprise adoption. We are investing in two additional areas to drive adoption. First is the Windmill Hub where people share scripts that others can easily convert into internal applications via Windmill. The hub is great for SEO and draws people who are looking for solutions to their specific problems, leading to high conversion. Secondly, we are investing in composability so that people can choose between pre-made full workflows and specific parts they need from a library. With use cases for Windmill being varied, we believe composability will be a powerful driver for adoption.

Metrics showing the growth of the Windmill open-source project (via the Decibel OSS Terminal)

Given what you know now, is there anything you would have done differently?

Yes absolutely! First, I wish I had invested more of my own time from day one to create awareness for the project. As a technical founder, I am more comfortable building than I am in communicating to the external world. However, every open source project needs a creator who not only has a great vision but can also evangelize and bring the community along on the journey. That is something I am doing today, but wish I had started earlier. Second, as an engineer it is tempting to work on the most intellectually challenging thing even though it might do little do make the project better or easier to use. That is something I constantly check myself on so that I do not lose sight of creating value for the user community and building a great team of fellow contributors and creators.

Is there another open source project (besides the usual suspects) that you admire?

This might sound boring, but I am a big fan of Linux and the amazing community that Linus Torvalds has been able to create! He embodies the perfect profile of an open source visionary: someone who has a strong vision but also can bring the community together, and when needed can step in like a benevolent dictator. I also admire the projects that have made building complex distributed systems possible - e.g., Nomad, Kafka, Kubernetes, etc. These projects are all solving really complex problems and have raised the bar on what an open source project can accomplish. And because the code for all those projects are out in the open, people have a much better understanding of how to build scalable systems today.

What advice would you have for someone who is thinking of starting a new open-source project?

My primary advice to any open source founder would be to think about adoption from day one and make design decisions to facilitate that. For example, our decision to completely open our APIs has been a key driver behind our enterprise adoption. Even though Windmill is a platform, enterprises can still pick and choose specific pieces of it without having to go all in - that wouldn’t have been possible without our open API design. The other thing I would share is that, although the current market environment might look scary, there is a ton of strong investor interest out there, especially in open source companies. So, if you are motivated to build a great open source project and eventually a business, now is as good a time as any.