Windmill is a free, open-source developer platform for building internal tools, workflows, and scripts. It's like a self-hosted Retool + Zapier combined.
What Is Windmill?
Windmill lets you create scripts, workflows, and UIs that run on your infrastructure. Write in Python, TypeScript, Go, Bash, or SQL — Windmill handles scheduling, permissions, and the UI.
Key features:
- Scripts in Python, TypeScript, Go, Bash, SQL, GraphQL
- Visual workflow builder
- Auto-generated UIs for any script
- Scheduling (cron)
- Webhooks
- Approval flows
- Secret management
- Version control (Git sync)
- Audit logs
- Self-hostable
Quick Start
Docker
curl https://raw.githubusercontent.com/windmill-labs/windmill/main/docker-compose.yml \
-o docker-compose.yml
docker compose up -d
Open http://localhost:8000. Start building.
Cloud (free tier)
Sign up at app.windmill.dev.
Write a Script
# main.py — Windmill auto-generates UI inputs for function parameters
import requests
def main(url: str, timeout: int = 30):
"""Check if a website is up"""
response = requests.get(url, timeout=timeout)
return {
"status": response.status_code,
"response_time_ms": response.elapsed.total_seconds() * 1000,
"is_up": response.status_code == 200
}
Windmill automatically creates a form with url (text input) and timeout (number input). Non-developers can run it.
Build Workflows
Chain scripts visually:
Fetch Data (Python) → Transform (TypeScript) → IF condition → Save to DB (SQL)
→ Send Alert (Slack)
Auto-Generated UIs
Every script gets a free UI:
- Text inputs for strings
- Number inputs for integers
- File uploads for binary data
- Dropdowns for enums
- Date pickers for datetime
- Toggle for booleans
No frontend code needed.
Windmill vs Alternatives
| Feature | Retool | n8n | Windmill |
|---|---|---|---|
| Scripts | Limited | Code nodes | Full (Py/TS/Go/Bash/SQL) |
| Workflows | No | Yes | Yes |
| Auto UI | No | No | Yes |
| Self-host | Paid | Free | Free |
| Git sync | Limited | No | Yes |
| Approvals | Yes | No | Yes |
| Cost | $10+/user | $0 (self-host) | $0 (self-host) |
Scheduling
# Run every hour
0 * * * *
# Run daily at 9 AM
0 9 * * *
# Run every 5 minutes
*/5 * * * *
Set schedule in the UI. Windmill handles execution, retries, and logging.
Free Cloud Tier
| Feature | Free | Pro |
|---|---|---|
| Users | 1 | Unlimited |
| Executions | 1,000/month | 10K+ |
| Scripts | Unlimited | Unlimited |
| Workflows | Unlimited | Unlimited |
| Workers | 1 | Custom |
Who Uses Windmill?
With 11K+ GitHub stars:
- Ops teams building internal tools
- Data teams automating ETL pipelines
- Developers replacing cron jobs
- Companies wanting Retool alternative
Get Started
- Docker compose up
- Write a script in any language
- Get auto-generated UI
- Schedule it
Internal tools in minutes, not weeks.
Need web data for your workflows? Check out my web scraping tools on Apify — extract data from any website and pipe it into Windmill. Custom solutions: spinov001@gmail.com
Top comments (0)