Founder of Windmill here, and d-k-p answer is spot-on. If you want to manage your entire workflows as a typescript code, then trigger.dev would be preferable.
Windmill supports typescript, python, go and bash, and handle all the advanced features such as retries, approval steps, pre-made integrations to hundreds of API at the workflow level in a UI-based editor. Then for the steps, themselves. you would use either your IDE and sync to Windmill, or use our web IDE.