Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 65 additions & 0 deletions src/components/common/SchemaSoftwareApplication.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
interface Props {
name?: string
description?: string
url?: string
}

const { name, description, url } = Astro.props

const canonicalUrl =
url ?? new URL(Astro.url.pathname, Astro.site ?? "https://kestra.io").toString().replace(/\/$/, "")

const schema = {
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"@id": "https://kestra.io/#software",
"name": name ?? "Kestra",
"url": canonicalUrl,
"description":
description ??
"Open-source workflow orchestration platform for data pipelines, infrastructure automation, and AI workflows. YAML-native, language-agnostic, 1200+ plugins.",
"applicationCategory": "DeveloperApplication",
"applicationSubCategory": "Workflow Orchestration",
"operatingSystem": "Linux, macOS, Windows, Docker, Kubernetes",
"softwareVersion": "1.0",
"downloadUrl": "https://github.com/kestra-io/kestra",
"author": { "@id": "https://kestra.io/#organization" },
"publisher": { "@id": "https://kestra.io/#organization" },
"license": "https://www.apache.org/licenses/LICENSE-2.0",
"offers": [
{
"@type": "Offer",
"name": "Kestra Open Source",
"price": "0",
"priceCurrency": "USD",
"availability": "https://schema.org/InStock",
"url": "https://github.com/kestra-io/kestra",
},
{
"@type": "Offer",
"name": "Kestra Cloud",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"priceType": "https://schema.org/InvoicePrice",
"description": "Pay only for what you use",
},
"availability": "https://schema.org/InStock",
"url": "https://kestra.io/pricing",
},
{
"@type": "Offer",
"name": "Kestra Enterprise Edition",
"priceSpecification": {
"@type": "UnitPriceSpecification",
"priceType": "https://schema.org/InvoicePrice",
"description": "Annual subscription — contact sales",
},
"availability": "https://schema.org/InStock",
"url": "https://kestra.io/demo",
},
],
}
---

<script type="application/ld+json" set:html={JSON.stringify(schema)} />
8 changes: 8 additions & 0 deletions src/pages/enterprise/index.astro
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
import Layout from "~/components/layout.astro"
import SchemaSoftwareApplication from "~/components/common/SchemaSoftwareApplication.astro"

import Hero from "~/components/enterprise/Hero.vue"
import SeeHow from "~/components/common/SeeHow.astro"
Expand Down Expand Up @@ -39,6 +40,13 @@ const STATS = [
---

<Layout {title} {description} headerTheme="lightText">
<Fragment slot="head">
<SchemaSoftwareApplication
name="Kestra Enterprise Edition"
description="Kestra Enterprise is a workflow orchestration platform for engineering teams running mission-critical operations at scale. Built-in governance, enterprise security, SSO, RBAC, audit logs, and horizontal scalability. Self-hosted or managed."
url="https://kestra.io/enterprise"
/>
</Fragment>
<Hero client:load />
<div class="enterprise">
<ScrollSpy client:load />
Expand Down
7 changes: 7 additions & 0 deletions src/pages/features/index.astro
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
import Faq from "~/components/common/Faq.vue"
import Layout from "~/components/layout.astro"
import SchemaSoftwareApplication from "~/components/common/SchemaSoftwareApplication.astro"
import Run from "~/components/features/core/Run.astro"
import Stacked from "~/components/common/Stacked.astro"
import Intro from "~/components/features/core/Intro.astro"
Expand Down Expand Up @@ -49,6 +50,12 @@ const items = [
---

<Layout {title} {description} headerTheme="lightText">
<Fragment slot="head">
<SchemaSoftwareApplication
description="Kestra orchestrates data pipelines, infrastructure automation, and AI workflows. YAML-native, language-agnostic, 1200+ plugins. Built for teams that run critical operations at scale."
url="https://kestra.io/features"
/>
</Fragment>
<div class="core">
<Intro />
<Simple />
Expand Down
6 changes: 6 additions & 0 deletions src/pages/index.astro
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
import Layout from "~/components/layout.astro"
import SchemaSoftwareApplication from "~/components/common/SchemaSoftwareApplication.astro"
import Hero from "~/components/home/Hero.astro"
import Comparison from "~/components/home/Comparison.astro"
import Stacked from "~/components/common/Stacked.astro"
Expand All @@ -16,6 +17,11 @@ const totalPlugins = await fetchTotalPluginsCount()
---

<Layout headerTheme="darkHeader">
<Fragment slot="head">
<SchemaSoftwareApplication
url="https://kestra.io"
/>
</Fragment>
<div class="home-page">
<Hero />
<Comparison />
Expand Down
5 changes: 5 additions & 0 deletions src/pages/pricing/index.astro
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
---
import Layout from "~/components/layout.astro"
import SchemaSoftwareApplication from "~/components/common/SchemaSoftwareApplication.astro"
import Header from "~/components/price/Header.astro"
import HostSwitcher from "~/components/price/HostSwitcher.astro"
import PriceGrid from "~/components/price/PriceGrid.astro"
Expand Down Expand Up @@ -78,6 +79,10 @@ const pricingSchema = {
type="application/ld+json"
set:html={JSON.stringify(pricingSchema)}
/>
<SchemaSoftwareApplication
description="Compare Kestra plans. Start free and self-hosted with Open Source, scale with managed Cloud, or deploy Enterprise Edition for mission-critical workloads at scale."
url="https://kestra.io/pricing"
/>
</Fragment>
<div class="cont">
<Header>
Expand Down
Loading