// @bun
// src/components/docs/comparison/ComparisonWindmillPage.tsx
import { jsx, jsxs } from "react/jsx-runtime";
function ComparisonWindmillPage() {
  return /* @__PURE__ */ jsxs("div", {
    className: "space-y-8",
    children: [
      /* @__PURE__ */ jsxs("div", {
        className: "space-y-4",
        children: [
          /* @__PURE__ */ jsx("h1", {
            className: "text-4xl font-bold",
            children: "Windmill"
          }),
          /* @__PURE__ */ jsxs("p", {
            className: "text-muted-foreground",
            children: [
              "Windmill is an open-source platform that turns",
              " ",
              /* @__PURE__ */ jsx("strong", {
                children: "scripts"
              }),
              " into endpoints, workflows and UIs. It seeks to remove boilerplate by generating interfaces and workflows around existing code"
            ]
          })
        ]
      }),
      /* @__PURE__ */ jsxs("div", {
        className: "space-y-4",
        children: [
          /* @__PURE__ */ jsx("h2", {
            className: "text-2xl font-bold",
            children: "Platform features"
          }),
          /* @__PURE__ */ jsxs("ul", {
            className: "text-muted-foreground space-y-3",
            children: [
              /* @__PURE__ */ jsxs("li", {
                children: [
                  /* @__PURE__ */ jsx("strong", {
                    children: "Script-driven model."
                  }),
                  " Write scripts in TypeScript, Python, Go, PHP, Bash, C#, SQL or Rust; Windmill infers dependencies, creates lockfiles and JSON schemas, then serves minimal UIs automatically"
                ]
              }),
              /* @__PURE__ */ jsxs("li", {
                children: [
                  /* @__PURE__ */ jsx("strong", {
                    children: "Visual flow editor."
                  }),
                  " Compose scripts into workflows with retries, error handling, loops, branching, suspending flows and approval steps"
                ]
              }),
              /* @__PURE__ */ jsxs("li", {
                children: [
                  /* @__PURE__ */ jsx("strong", {
                    children: "Low-code UI builder."
                  }),
                  " Build dashboards and admin panels using inline scripts and trigger flows from the UI"
                ]
              }),
              /* @__PURE__ */ jsxs("li", {
                children: [
                  /* @__PURE__ */ jsx("strong", {
                    children: "Enterprise readiness."
                  }),
                  " Features include RBAC permissions, secret management, OAuth handling, CLI/git sync, scheduling and webhooks"
                ]
              }),
              /* @__PURE__ */ jsxs("li", {
                children: [
                  /* @__PURE__ */ jsx("strong", {
                    children: "Use cases."
                  }),
                  " Deploy scripts as webhooks or cron jobs; create \u201Capplicative workflows\u201D combining external APIs; build ETLs and interactive dashboards"
                ]
              }),
              /* @__PURE__ */ jsxs("li", {
                children: [
                  /* @__PURE__ */ jsx("strong", {
                    children: "Open source & self-hosting."
                  }),
                  " Windmill emphasises an open-source codebase and self-hosting options"
                ]
              })
            ]
          })
        ]
      }),
      /* @__PURE__ */ jsxs("div", {
        className: "space-y-4",
        children: [
          /* @__PURE__ */ jsx("h2", {
            className: "text-2xl font-bold",
            children: "Comparison with ContractSpec"
          }),
          /* @__PURE__ */ jsx("div", {
            className: "border-border/50 overflow-x-auto rounded-lg border",
            children: /* @__PURE__ */ jsxs("table", {
              className: "w-full text-left text-sm",
              children: [
                /* @__PURE__ */ jsx("thead", {
                  className: "bg-card/50",
                  children: /* @__PURE__ */ jsxs("tr", {
                    className: "border-border/50 border-b",
                    children: [
                      /* @__PURE__ */ jsx("th", {
                        className: "px-4 py-3 font-semibold",
                        children: "Feature"
                      }),
                      /* @__PURE__ */ jsx("th", {
                        className: "px-4 py-3 font-semibold",
                        children: "Windmill"
                      }),
                      /* @__PURE__ */ jsx("th", {
                        className: "px-4 py-3 font-semibold",
                        children: "ContractSpec"
                      })
                    ]
                  })
                }),
                /* @__PURE__ */ jsxs("tbody", {
                  className: "divide-border/50 divide-y",
                  children: [
                    /* @__PURE__ */ jsxs("tr", {
                      children: [
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: /* @__PURE__ */ jsx("strong", {
                            children: "Entry model"
                          })
                        }),
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: "Write scripts; platform auto-generates UI and workflows"
                        }),
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: "Define typed specs (Capabilities, DataViews, Workflows, Policies); compiler outputs back-end, front-end and forms."
                        })
                      ]
                    }),
                    /* @__PURE__ */ jsxs("tr", {
                      children: [
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: /* @__PURE__ */ jsx("strong", {
                            children: "Language support"
                          })
                        }),
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: "20+ languages via embedded runtimes"
                        }),
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: "Uses TypeScript/JavaScript for providers; supports other back-ends through capability providers."
                        })
                      ]
                    }),
                    /* @__PURE__ */ jsxs("tr", {
                      children: [
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: /* @__PURE__ */ jsx("strong", {
                            children: "UI generation"
                          })
                        }),
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: "Minimal UI forms from script parameters; low-code app builder"
                        }),
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: "Generates full web and mobile UIs from specs; user layouts can be customised via signed overlays."
                        })
                      ]
                    }),
                    /* @__PURE__ */ jsxs("tr", {
                      children: [
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: /* @__PURE__ */ jsx("strong", {
                            children: "Policy & personalization"
                          })
                        }),
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: "RBAC and secret management; no per-user overlay concept"
                        }),
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: "Built-in policy engine enforcing ABAC/PII on every render/mutate; overlays allow safe per-user customisation."
                        })
                      ]
                    }),
                    /* @__PURE__ */ jsxs("tr", {
                      children: [
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: /* @__PURE__ */ jsx("strong", {
                            children: "Open source"
                          })
                        }),
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: "Fully open source and self-hostable"
                        }),
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: "Closed-source core (SDK is open); offers hosted and on-prem modes."
                        })
                      ]
                    }),
                    /* @__PURE__ */ jsxs("tr", {
                      children: [
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: /* @__PURE__ */ jsx("strong", {
                            children: "Ideal for"
                          })
                        }),
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: "Teams wanting to expose scripts as APIs, workflows or dashboards without heavy infrastructure."
                        }),
                        /* @__PURE__ */ jsx("td", {
                          className: "px-4 py-3 align-top",
                          children: "Teams needing a spec-driven platform that generates code and UI, enforces policies and lets non-technical users tailor the experience."
                        })
                      ]
                    })
                  ]
                })
              ]
            })
          }),
          /* @__PURE__ */ jsxs("p", {
            className: "text-muted-foreground",
            children: [
              "Windmill excels at converting scripts into workflows and admin panels. ContractSpec takes a ",
              /* @__PURE__ */ jsx("strong", {
                children: "spec-first"
              }),
              " approach, generating the entire stack and enforcing policies, making it suitable for long-lived applications that must evolve safely."
            ]
          })
        ]
      })
    ]
  });
}
export {
  ComparisonWindmillPage
};
