{
  "slug": "zapier-to-windmill",
  "title": "Zapier Team to self-hosted Windmill",
  "summary": "Windmill is automation for people who would rather write a function than drag a box. That suits some teams and rules out others.",
  "publishable": true,
  "block_reason": null,
  "freshness": {
    "state": "fresh",
    "publishable": true,
    "oldest_input_days": 46.5,
    "problems": []
  },
  "incumbent": {
    "vendor": "Zapier",
    "vendor_id": "zapier",
    "plan": "Team",
    "plan_id": "team",
    "amount": 69,
    "period": "month",
    "per_seat": false,
    "billed": "annual",
    "seats": 1,
    "quote": "Team Starting from $69 /month",
    "caveat": "Entry tier; rises with task volume.",
    "source_url": "https://zapier.com/pricing",
    "verified_at": "2026-10-19",
    "needs_reverification": false
  },
  "alternative": {
    "name": "Windmill (self-hosted)",
    "repo": "windmill-labs/windmill",
    "project": {
      "full_name": "windmill-labs/windmill",
      "url": "https://github.com/windmill-labs/windmill",
      "homepage": "https://windmill.dev",
      "description": "Open-source developer platform to power your entire infra and turn scripts into webhooks, workflows and UIs. Fastest workflow engine (13x vs Airflow). Open-source alternative to Retool and Temporal.",
      "stars": 18218,
      "forks": 1124,
      "open_issues": 864,
      "license": null,
      "archived": false,
      "pushed_at": "2026-10-19T10:53:46Z",
      "days_since_push": 0,
      "latest_release": {
        "tag": "v1.841.0",
        "published_at": "2026-10-18T23:53:51Z",
        "url": "https://github.com/windmill-labs/windmill/releases/tag/v1.841.0"
      },
      "days_since_release": 0,
      "health": "active",
      "recommended": true,
      "verified_at": "2026-10-19T10:54:00.217Z"
    },
    "box": {
      "provider": "Vultr",
      "name": "vc2-2c-4gb",
      "id": "vultr:vc2-2c-4gb",
      "vcpu": 2,
      "ram_gb": 4,
      "disk_gb": 80,
      "bandwidth_tb": 3,
      "monthly_usd": 20,
      "url": "https://www.vultr.com/pricing/",
      "verified_at": "2026-10-19T10:53:42.716Z"
    },
    "storage": {
      "id": "backblaze-b2",
      "name": "Backblaze B2",
      "usd_per_gb_month": 0.00695,
      "egress": "free up to 3x stored volume per month, then $0.01/GB",
      "pricing_url": "https://www.backblaze.com/cloud-storage/pricing",
      "quote": "the amount of data stored per byte-hour over the last month at a rate of $6.95/TB/30-day",
      "verified_at": "2026-09-03",
      "verified_by": "human",
      "affiliate": true,
      "gb": 25,
      "monthly_usd": 0.17
    },
    "requirements": {
      "ram_gb": 4,
      "vcpu": 2,
      "disk_gb": 40
    },
    "box_alternatives": [
      {
        "provider": "Vultr",
        "name": "vc2-2c-4gb",
        "monthly_usd": 20,
        "vcpu": 2,
        "ram_gb": 4,
        "disk_gb": 80,
        "url": "https://www.vultr.com/pricing/",
        "chosen": true
      },
      {
        "provider": "Linode",
        "name": "Linode 4GB",
        "monthly_usd": 24,
        "vcpu": 2,
        "ram_gb": 4,
        "disk_gb": 80,
        "url": "https://www.linode.com/pricing/",
        "chosen": false
      },
      {
        "provider": "DigitalOcean",
        "name": "2 vCPU · 4 GB",
        "monthly_usd": 24,
        "vcpu": 2,
        "ram_gb": 4,
        "disk_gb": 80,
        "url": "https://www.digitalocean.com/pricing/droplets",
        "chosen": false
      }
    ],
    "migration_hours": 14,
    "maintenance_hours_per_month": 0.75
  },
  "result": {
    "computable": true,
    "inputs": {
      "seats": 1,
      "horizon_months": 36,
      "hourly_rate": 50
    },
    "incumbent": {
      "cash_monthly": 69,
      "time_monthly": 0,
      "monthly": 69,
      "one_time": 0,
      "annual": 828
    },
    "alternative": {
      "cash_monthly": 20.17,
      "time_monthly": 37.5,
      "monthly": 57.67,
      "one_time": 700,
      "cash_one_time": 0,
      "time_one_time": 700,
      "annual": 692.09
    },
    "delta": {
      "monthly": 11.33,
      "upfront_to_switch": 700,
      "annual": 135.92
    },
    "break_even_month": 62,
    "break_even_hourly_rate": 42.87,
    "totals": {
      "at_12_months": {
        "incumbent": 828,
        "alternative": 1392.09
      },
      "at_36_months": {
        "incumbent": 2484,
        "alternative": 2776.26
      },
      "at_horizon": {
        "incumbent": 2484,
        "alternative": 2776.26
      }
    },
    "savings": {
      "year_1": -564.09,
      "year_3": -292.26,
      "at_horizon": -292.26
    },
    "verdict": "stay"
  },
  "managed": null,
  "curve": [
    {
      "month": 0,
      "incumbent": 0,
      "alternative": 700
    },
    {
      "month": 1,
      "incumbent": 69,
      "alternative": 757.67
    },
    {
      "month": 2,
      "incumbent": 138,
      "alternative": 815.34
    },
    {
      "month": 3,
      "incumbent": 207,
      "alternative": 873.01
    },
    {
      "month": 4,
      "incumbent": 276,
      "alternative": 930.68
    },
    {
      "month": 5,
      "incumbent": 345,
      "alternative": 988.35
    },
    {
      "month": 6,
      "incumbent": 414,
      "alternative": 1046.02
    },
    {
      "month": 7,
      "incumbent": 483,
      "alternative": 1103.69
    },
    {
      "month": 8,
      "incumbent": 552,
      "alternative": 1161.36
    },
    {
      "month": 9,
      "incumbent": 621,
      "alternative": 1219.03
    },
    {
      "month": 10,
      "incumbent": 690,
      "alternative": 1276.7
    },
    {
      "month": 11,
      "incumbent": 759,
      "alternative": 1334.37
    },
    {
      "month": 12,
      "incumbent": 828,
      "alternative": 1392.04
    },
    {
      "month": 13,
      "incumbent": 897,
      "alternative": 1449.71
    },
    {
      "month": 14,
      "incumbent": 966,
      "alternative": 1507.38
    },
    {
      "month": 15,
      "incumbent": 1035,
      "alternative": 1565.05
    },
    {
      "month": 16,
      "incumbent": 1104,
      "alternative": 1622.72
    },
    {
      "month": 17,
      "incumbent": 1173,
      "alternative": 1680.39
    },
    {
      "month": 18,
      "incumbent": 1242,
      "alternative": 1738.06
    },
    {
      "month": 19,
      "incumbent": 1311,
      "alternative": 1795.73
    },
    {
      "month": 20,
      "incumbent": 1380,
      "alternative": 1853.4
    },
    {
      "month": 21,
      "incumbent": 1449,
      "alternative": 1911.07
    },
    {
      "month": 22,
      "incumbent": 1518,
      "alternative": 1968.74
    },
    {
      "month": 23,
      "incumbent": 1587,
      "alternative": 2026.41
    },
    {
      "month": 24,
      "incumbent": 1656,
      "alternative": 2084.08
    },
    {
      "month": 25,
      "incumbent": 1725,
      "alternative": 2141.75
    },
    {
      "month": 26,
      "incumbent": 1794,
      "alternative": 2199.42
    },
    {
      "month": 27,
      "incumbent": 1863,
      "alternative": 2257.09
    },
    {
      "month": 28,
      "incumbent": 1932,
      "alternative": 2314.76
    },
    {
      "month": 29,
      "incumbent": 2001,
      "alternative": 2372.43
    },
    {
      "month": 30,
      "incumbent": 2070,
      "alternative": 2430.1
    },
    {
      "month": 31,
      "incumbent": 2139,
      "alternative": 2487.77
    },
    {
      "month": 32,
      "incumbent": 2208,
      "alternative": 2545.44
    },
    {
      "month": 33,
      "incumbent": 2277,
      "alternative": 2603.11
    },
    {
      "month": 34,
      "incumbent": 2346,
      "alternative": 2660.78
    },
    {
      "month": 35,
      "incumbent": 2415,
      "alternative": 2718.45
    },
    {
      "month": 36,
      "incumbent": 2484,
      "alternative": 2776.12
    }
  ],
  "sensitivity": [
    {
      "hourly_rate": 0,
      "verdict": "switch",
      "break_even_month": 0,
      "savings_at_horizon": 1757.75
    },
    {
      "hourly_rate": 25,
      "verdict": "switch",
      "break_even_month": 12,
      "savings_at_horizon": 732.74
    },
    {
      "hourly_rate": 50,
      "verdict": "stay",
      "break_even_month": 62,
      "savings_at_horizon": -292.26
    },
    {
      "hourly_rate": 75,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -1317.26
    },
    {
      "hourly_rate": 100,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -2342.26
    },
    {
      "hourly_rate": 150,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -4392.25
    },
    {
      "hourly_rate": 200,
      "verdict": "stay",
      "break_even_month": null,
      "savings_at_horizon": -6442.25
    }
  ],
  "tradeoffs": {
    "you_lose": [
      "Zapier's catalogue of prebuilt integrations, which is the actual product",
      "Non-technical colleagues being able to build their own workflows",
      "Someone else fixing an integration when a vendor changes their API"
    ],
    "you_gain": [
      "Scripts in TypeScript, Python, Go or Bash with proper version control",
      "Genuinely fast execution — this is a Rust runtime, not a hosted queue",
      "Unmetered runs, which is the whole argument"
    ]
  },
  "caveats": [
    "This is the least like-for-like swap on the site. If the people building your automations are not programmers, Windmill is not a Zapier replacement and the arithmetic is beside the point.",
    "The 14-hour estimate assumes you are comfortable writing the integrations yourself. There is no importer.",
    "Windmill's licence is not one GitHub recognises automatically, and some features are enterprise-gated. Check before committing."
  ],
  "category": "automation",
  "updated_at": "2026-10-19"
}