Get the top HN stories in your inbox every day.
rubenfiszel
rubenfiszel
Update: I GOT IN!!!
devoutsalsa
Hell yeah! I’m drinking a bottle of red wine to celebrate your victory.
bm-rf
Congrats! We currently use rundeck to ssh into servers to run python automations. This looks to be a much more elegant solution.
sam1r
Congrats! You are already on the front page, and your demo day is miles away. That is awesome.
EDIT: Months away - sorry, I am flying on spirit atm.
echelon
Congrats!! That's awesome! :D
When did you submit your application? And when did they notify you about the interview?
You applied as a solo founder? That's a huge stamp of approval.
sebmellen
Awesome! Would love to hear more about the business model you're thinking of. Can't wait for Deno JS/TS!
jamesmcintyre
Now you must share a detailed account of your interview! Congrats!
dvaun
Congratulations!
blooalien
Congrats!
raviparikh
Congrats on the (unintentional) launch and on getting into YC!
We’re working on something similar at https://www.airplane.dev/ - same scripts-to-apps approach, schedules, trigger from Slack, etc.
Would love to chat sometime and compare notes if you’re up for it - ravi@airplane.dev
rubenfiszel
Yes of course. I would lie if I said I was not aware of your existence. Your product and team is dope and I will reach out to you!
grn
What did you build the website with? It looks really nice and I’m looking for something I could use with my project. [1]
rubenfiszel
https://github.com/windmill-labs/windmilldocs
docusaurus + tailwindcss
poofsoda
Good luck with the interview!!
metadat
Does the script analysis support bash scripts?
philsnow
I twitched a little when I saw lists and dicts included as default arguments in one of the examples:
def main(
...,
obj: dict = {"even": "dicts"},
my_list: list = ["or", "lists!"],
...
has modern python made these less footgun-y? the issue being that the code looks like 'obj' and 'my_list' are as provided in the default arguments every time the function is called, but the defaults are instantiated once and they can be modified inside the function: def foo(msgs=["hello"]):
print(msgs)
msgs.append("world")
foo() # prints ['hello']
foo() # prints ['hello', 'world']
foo() # prints ['hello', 'world', 'world']
Nonetheless, introspecting on default arguments like that looks like a fine way to turn functions into UI elements if you're going to contrive that those functions aren't going to be re-entered multiple times in the same python runtime.animal_spirits
Nope, this is still a "feature" of python and will continue to be
thealistra
This could really use some better explaination with examples. I am a dev for 15 years and I have no idea what it does after a minute of looking at it
WorldMaker
I read it as a "functions" ("scripts") host similar to AWS Lambda or Azure Functions with a better overall UI especially for notebook/REPL-driven development.
I've been automating a lot of tasks in multiple languages including Python with Azure Functions last few years, and I find this tool interesting to some of my use cases (though not immediately applicable because of existing cloud commitments, as such things go). I have at times thought that it would be great if I had a "Notebook view" of the Python Functions in Azure (preferably with strong git integration) to make some Data Scientist workflows easier. I've also had times where it might be nice when a cache needs to be "kicked" or a cleanup process run if I had a simple automated GUI for certain Function invocations or queue message drops that I could point a Business Analyst to.
In the first use case, I'm aware that Azure offers Notebook workspaces and there is some flow between building a test Notebook environment and then eventually migrating some of the code into a Functions app; but it is definitely not a streamlined all-in-one product and instead requires piecing together a bunch of semi-related ones and hopping back and forth between multiple different Azure resources. It also doesn't help that there seem to be fork between "general Notebook environments" and "ML Notebook environments" that seems more artificial than natural and complicates standing anything up in the first place. (Which is to say currently we aren't really using any of Azure's Notebook tools because they are too complicated and divorced from the use cases we need them. Every now and then I circle back around to explore them and the complexity just makes me angry.) This tool seems to already have some better ideas to approach that workflow and I'm curious to watch it, at the very least if it encourages Microsoft to up their game in competition with it.
As for the other use case, I know Azure Functions has almost all of the reflection metadata it needs to offer better tools here even in Python and Typescript already, but its Code/Test tool is definitely underpowered compared to the metadata it already has. It would be interesting to see if this new project provides competitive fire there.
eatonphil
It makes sense to me (but maybe because I'm building something similar).
You write code and they host it for you and provide a GUI around your code. It's like a crazier (in a good way) version of Kibana or Grafana or Metabase. In Kibana/Grafana/Metabase they provide a hosting platform for queries -- any queries within your internal eng team. This provides a hosting platform for scripts.
Whether or not that is exactly what they are trying to do, it's what I'm trying to do. What I wish I'd had at many prior companies.
I can't find them now while trying to search but it also reminds me of some tools I've seen that generate a GUI from a description of a tool's command line flags.
mritchie712
Streamlit maybe?
eatonphil
Yeah that looks similar! I think I've seen open-source terminal GUI (TUI) wrappers too.
rubenfiszel
Yes for sure, I need to improve the docs! I have had issues explaining it in simple terms because it is a system that is quite obvious once you get it but confusing from a first look. I have aimed to make it consistent everywhere to reduce complexity.
Better and simpler docs will be my sole focus for the following weeks + JS/TS support.
I have some diagrams and a step-by-step explanation on the README: https://github.com/windmill-labs/windmill
But the step-by-step is missing the concepts of variables and resources. If you have any feedback i'd be glad to hear it. I will opensource the website EOD too.
bityard
To me, it looks like Rundeck with a much better UI.
scandox
They host "scripts" and "apps" that you can execute against "resources" (i.e. databases etc...). So basically a lightweight, online environment for running code without any deployment?
I suppose an example might be marketing has a DB of prospective customers and this would allow devs to quickly write scripts to clean it, apps to allow people to add to it and automated tasks to trigger events (eg. an email) based on certain metrics etc...
I guess it means being able to rapidly build fairly throwaway systems for internal use.
puchatek
So... Self-hosted AWS lambdas (but only for python)?
omarhaneef
To me it looked like a low-code tool to automate "processes" like Zapier/ifttt and so on. Basically a glue between apps with a little python thrown in for transformations.
umvi
Seems like a Python-based alternative to something like Google Apps Scripts
stronglikedan
I immediately recognized it as rules-based automation (RBA), but maybe because I work with those types of apps.
ryukafalz
This looks pretty neat! Once the FOSS self-hostable version is out I might try it out for my local hackerspace, it seems like it might be useful for those little things that are too small to warrant standing up infrastructure at our small scale.
rubenfiszel
If you're up to it, I can send you an email when it's ready to try, likely tomorrow. The Dockerfile is mostly working as is, you just need to setup the DB, pass the connection info and do some manual superadmin rows insertion. I will automate the process asap.
maneesh
I would love access! just tried to deploy and it threw me a docker authorization error.
rubenfiszel
You can always login with your github account for now: https://alpha.windmill.dev
I am not doing anything fancy for building the dockerfile: https://github.com/windmill-labs/windmill/blob/main/.github/...
Running the docker on the other hand require to pass a few env variables, among them the connection info to a PG instance. It also require to setup an user by editing directly the database and hashing by hand your password which is super inconvenient. I am working right now on making the process easier, did not expect self-host users so early.
acgourley
I'd use it for basic process automation, airtable data IO, triggering marketing campaigns or slack bots, etc.
It's a heavy weight feature request but if I could lean on it in the way I lean on Prefect.io now for spinning up cloud workers on demand I'd use it for a lot more.
jzig
It reminds me of a simpler version of Apache NiFi (https://nifi.apache.org/)
recov
So powerful and so ugly
abeppu
Given the name, and premise of creating flows of python scripts ... is this intended to make people think of Airflow? A lot of what we see in the demo video (on a scheduled basis run a sequence of steps which gather data, produce some summary statistics, share it to slack, parameters which can be defined when a run is triggered or from prior steps, etc etc) is very familiar to users of existing workflow systems.
The UI to create/author flows seems slick, but I also think that for important flows, teams will want to be able to review changes to flows, make cross-cutting updates to several flows when a popular script or connector is updated, etc, in which case being able to view/edit/diff flows as code is quite valuable.
rubenfiszel
Demo is a bit old (2 months ago), I need to reshoot it.
It has some resemblances with Airflow but one aim is to make it accessible to less technical users that can treat modules like blackbox. Similar to Zapier but the code is inspectable and editable at any point. At the core, it is a scheduler/orchestrator of script execution, so it's similar to Airflow in that sense, but the product is really not meant for the same usage.
I picked the name a bit randomly because it is retro and one of the first automation humans have created. I did not think too much about it but now I love it :)
debarshri
This looks very similar to airplane.dev, is that intended?
raviparikh
Agreed, it does look very similar to what we're building at https://www.airplane.dev/
However I've come across a few other similar products as well over the past year we've been building Airplane, and frequently things appear superficially similar but there's a difference in focus/use case/target customer/etc. For example, Airplane is focused on support, customer success or ops use cases (e.g. "I wrote a script to delete a user record / reset a 2fa token / etc, I can use Airplane to let the customer support team have access in a safe way"). Whereas I've seen other tools in this space target more of a "programmable Zapier" type use case (e.g. "For every new customer, I want to use a Python script to hit the Slack API and generate a custom notification.")
It'll be interesting to see how Windmill evolves over time.
debarshri
Thanks for the clarification! Also, recently I discovered retool workflows [1], something I think people would use ops, customer success flows too. In general, automation like these solves relevant problem in an org.
[1] https://docs.retool.com/docs/building-a-workflow-with-the-re...
metadat
Is airplane.dev fully OSS and self-hostable?
wmichelin
`import *` in the screenshot.
just poking fun, I understand that by no means should you wait for perfection before shipping. Congrats on getting to the front page!
rubenfiszel
Actually I wanted to point out that there is a pyright LSP server interacting with Monaco that would highlight those kinds of error. It is not that unintentional!
tegiddrone
Still trying to get my mind around it...
I can make python scripts with infinite potential but to invoke them I have to put them behind a CLI, webhook, cron, and then orchestrate the data into these python scripts.
So this would be like the orchestration glue? Write a script, have it conform to a schema and then Windmill can orchestrate it's execution and input/output... with a nice UI for manual invokation?
Kick ass
olah_1
I believe that Anvil is a competitor: https://anvil.works/
tomatowurst
very cool, did not know there was a market for python web products. constantly being gaslighted by frontend/backend.js crowd.
mvolfik
What I couldn't find in the docs is the following: is it only restricted to an entry-form > some script runs > notifies via service (slack?), or is it also possible to do something like airplane workbooks: a form, then a Python script runs an SQL query, then another form pre-populated with some data from the query, and then another script?
Get the top HN stories in your inbox every day.
Hello, author here. I did not plan to have a wide announcement today tbh. This is the repo: https://github.com/windmill-labs/windmill
I have my YC interview in 10 minutes and wanted to OSS it before. Agree it lacks a lot of polishing, but that will be done in about 2 weeks :)
JS/TS through Deno is coming in a week, I am currently working on a draft pull request for it.
Really happy to answer all the questions after my interview :)
(I host the demo on a small hetzner node, please be gentle to it, I will scale it up asap :))
PS: Since it's HN: The backend is all in Rust and the feature I am most proud of is automatic parameters and dependency inference for locking the dependency versions and generating the frontend of your app by analyzing the scripts using simple but surprisingly good heuristics :)