From 1010006e4aac97e2e9a64b29065ce590b80711cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nenad=20Mali=C4=87?= <4789424+nenadmalic@users.noreply.github.com> Date: Tue, 23 Jun 2026 17:40:35 +0200 Subject: [PATCH 1/5] feat: redesign customer story cards, detail template & stories section - New Card, FeaturedCarousel, Sidebar and KpiRotator components - Redesigned story detail template (KPIs, pull-quote, MDC body) - Add per-story logo icons (icon.svg) and update story content - Fix story bodies rendering blank: flatten logoIcon to .src in the detail route so the StoryDetail island can hydrate - Industry badges + sidebar-logo styling tuned for light/dark and image backgrounds --- src/components/MDCParserAndRenderer.vue | 32 +- src/components/stories/Card.vue | 58 +- src/components/stories/FeaturedCarousel.vue | 503 ++++++++++++++++++ src/components/stories/KpiRotator.vue | 142 +++++ src/components/stories/Sidebar.vue | 6 +- src/components/stories/StoriesList.vue | 4 +- src/components/stories/StoryGallery.astro | 277 +--------- src/content.config.ts | 2 + .../index.md | 3 +- .../index.md | 3 +- .../index.md | 3 +- .../index.md | 3 +- .../index.md | 3 +- .../index.md | 3 +- .../icon.svg | 7 + .../index.md | 4 +- .../icon.svg | 10 + .../index.md | 4 +- .../icon.svg | 50 ++ .../index.md | 4 +- .../icon.svg | 28 + .../index.md | 4 +- .../index.md | 3 +- .../index.md | 3 +- .../index.md | 3 +- .../icon.svg | 3 + .../index.md | 4 +- .../icon.svg | 14 + .../index.md | 4 +- .../government-soc-team/index.md | 3 +- .../index.md | 3 +- .../icon.svg | 9 + .../index.md | 4 +- .../index.md | 3 +- .../icon.svg | 9 + .../index.md | 4 +- .../index.md | 3 +- .../icon.svg | 3 + .../index.md | 4 +- .../index.md | 3 +- .../index.md | 3 +- .../scaling-big-data-operations/icon.svg | 5 + .../scaling-big-data-operations/index.md | 4 +- .../index.md | 5 +- .../logo.svg | 2 +- .../index.md | 3 +- .../icon.svg | 9 + .../index.md | 4 +- .../icon.svg | 10 + .../index.md | 4 +- src/pages/customers/[slug].astro | 2 + src/pages/customers/index.astro | 10 +- src/type.d.ts | 2 + 53 files changed, 955 insertions(+), 343 deletions(-) create mode 100644 src/components/stories/FeaturedCarousel.vue create mode 100644 src/components/stories/KpiRotator.vue create mode 100644 src/contents/customer-stories/building-a-government-grade-orchestration-control-plane-with-kestra/icon.svg create mode 100644 src/contents/customer-stories/clever-cloud-offloading-terabytes-of-data-with-kestra-every-month/icon.svg create mode 100644 src/contents/customer-stories/cleverconnect-enhances-hr-integration-platform-with-kestra/icon.svg create mode 100644 src/contents/customer-stories/copines-de-voyage-enhancing-travel-experiences-through-advanced-data-orchestration-with-kestra/icon.svg create mode 100644 src/contents/customer-stories/gorgias-using-declarative-data-engineering-orchestration-with-kestra/icon.svg create mode 100644 src/contents/customer-stories/governed-self-service-cloud-automation-in-regulated-environments-with-kestra/icon.svg create mode 100644 src/contents/customer-stories/modernizing-mission-critical-e-commerce-integrations-with-kestra/icon.svg create mode 100644 src/contents/customer-stories/ntico-manage-geospatial-data-operations-with-kestra/icon.svg create mode 100644 src/contents/customer-stories/quadis-drives-innovation-transforming-car-retail-operations-with-kestra/icon.svg create mode 100644 src/contents/customer-stories/scaling-big-data-operations/icon.svg create mode 100644 src/contents/customer-stories/sopht-scales-its-green-itops-platform-with-kestra/icon.svg create mode 100644 src/contents/customer-stories/when-your-api-writes-its-own-docs-with-kestra/icon.svg diff --git a/src/components/MDCParserAndRenderer.vue b/src/components/MDCParserAndRenderer.vue index 24e5398d3d6..f55d2171405 100644 --- a/src/components/MDCParserAndRenderer.vue +++ b/src/components/MDCParserAndRenderer.vue @@ -6,6 +6,9 @@ :key="content" class="mdc-renderer" /> +
+ MDC parse error: {{ parseError }} +
@@ -18,13 +21,25 @@ }>() const docAst = ref() + const parseError = ref() async function parseContent() { - const parse = await getMDCParser() - if (!props.content) { - throw new Error("No content provided to MDCParserAndRenderer.vue") + try { + const parse = await getMDCParser() + if (!props.content) { + throw new Error("No content provided to MDCParserAndRenderer.vue") + } + const result = await parse(props.content) + if (!result?.body) { + parseError.value = `Parser returned empty body. AST keys: ${Object.keys(result ?? {}).join(", ")}` + console.error("[MDCParserAndRenderer] empty body:", result) + } else { + docAst.value = result + } + } catch (e: any) { + parseError.value = e?.message ?? String(e) + console.error("[MDCParserAndRenderer] parse failed:", e) } - docAst.value = await parse(props.content) } onMounted(async () => { @@ -79,6 +94,15 @@ } } + .parse-error { + background: #fee; + border: 1px solid #f88; + border-radius: 0.5rem; + padding: 1rem; + color: #c00; + font-size: 0.875rem; + } + .skeleton { display: inline-block; position: relative; diff --git a/src/components/stories/Card.vue b/src/components/stories/Card.vue index 3ab272d867a..2966ae1d399 100644 --- a/src/components/stories/Card.vue +++ b/src/components/stories/Card.vue @@ -5,8 +5,8 @@
-
-
- {{ kpi.value }} - {{ kpi.label }} -
-
+

+ {{ story.useCase }} +

+ + -
@@ -171,199 +113,6 @@ const overflowCount = featuredStory.tasks.length - maxPlugins } } - .featured-story { - display: grid; - grid-template-columns: 1fr 1fr; - gap: 1rem; - min-height: 420px; - - @include media-breakpoint-down(md) { - grid-template-columns: 1fr; - } - } - - .featured-image-col { - border-radius: 1rem; - border: 1px solid var(--ks-border-secondary); - overflow: hidden; - - img { - width: 100%; - height: 100%; - object-fit: cover; - display: block; - } - } - - .featured-info-col { - background: var(--ks-background-secondary); - padding: 1.5rem; - display: flex; - flex-direction: column; - gap: 0; - border-radius: 1rem; - border: 1px solid var(--ks-border-secondary); - } - - .featured-header { - display: flex; - align-items: center; - gap: 1rem; - margin-bottom: 1.5rem; - } - - .featured-logo { - width: 3.25rem; - height: 3.25rem; - border-radius: 0.625rem; - background: #0d0d0d; - flex-shrink: 0; - display: flex; - align-items: center; - justify-content: center; - overflow: hidden; - - img { - width: 100%; - height: 100%; - object-fit: contain; - padding: 6px; - } - } - - .featured-initial { - font-size: 1.25rem; - font-weight: 700; - color: #8b5cf6; - line-height: 1; - } - - .featured-company { - font-size: 1.125rem; - font-weight: 700; - color: var(--ks-content-primary); - line-height: 1.25; - } - - .featured-quote { - margin: 0 0 1.75rem; - padding: 0; - - p { - font-size: clamp(1rem, 1.5vw, 1.25rem); - font-weight: 500; - color: var(--ks-content-primary); - line-height: 1.5; - margin: 0 0 0.75rem; - } - - cite { - font-size: 0.8125rem; - color: var(--ks-content-tertiary); - font-style: normal; - } - } - - .featured-kpis { - display: grid; - grid-template-columns: repeat(2, 1fr); - border-top: 1px solid var(--ks-border-secondary); - border-bottom: 1px solid var(--ks-border-secondary); - margin-bottom: 1.5rem; - } - - .featured-kpi { - display: flex; - flex-direction: column; - gap: 0.2rem; - padding: 1rem 0; - - &:nth-child(odd) { - padding-right: 1.5rem; - } - - .kpi-value { - font-size: 1.25rem; - font-weight: 700; - color: var(--ks-content-primary); - line-height: 1.3; - } - - .kpi-label { - font-size: 0.8125rem; - color: var(--ks-content-secondary); - line-height: 1.4; - } - } - - .featured-plugins { - display: flex; - align-items: center; - gap: 0.75rem; - margin-bottom: 1.5rem; - } - - .plugins-label { - font-size: 0.8125rem; - color: var(--ks-content-tertiary); - white-space: nowrap; - } - - .plugins-icons { - display: flex; - gap: 0.375rem; - align-items: center; - flex-wrap: wrap; - } - - .plugin-icon-wrap { - width: 2rem; - height: 2rem; - border-radius: 0.375rem; - border: 1px solid var(--ks-border-secondary); - background: var(--ks-background-body); - display: flex; - align-items: center; - justify-content: center; - padding: 0.25rem; - - img { - width: 100%; - height: 100%; - object-fit: contain; - } - } - - .plugin-overflow { - width: 2rem; - height: 2rem; - border-radius: 0.375rem; - border: 1px solid var(--ks-border-secondary); - background: var(--ks-background-body); - display: flex; - align-items: center; - justify-content: center; - font-size: 0.6875rem; - font-weight: 600; - color: var(--ks-content-tertiary); - } - - .featured-industry { - align-self: flex-end; - margin-top: -1rem; - margin-right: -1rem; - margin-bottom: 0.75rem; - font-size: 0.625rem; - font-weight: 600; - color: var(--ks-content-link); - background: rgba(99, 27, 255, 0.08); - border: 1px solid rgba(99, 27, 255, 0.15); - border-radius: 999px; - padding: 0.2rem 0.625rem; - white-space: nowrap; - line-height: 1.5; - } - .logo-bar-outer { border-top: 1px solid rgba(255, 255, 255, 0.07); padding: 2rem 1rem; diff --git a/src/content.config.ts b/src/content.config.ts index 5126930b59f..2b7af778cd8 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -135,6 +135,7 @@ export const collections = { featuredImage: image(), logo: image().optional(), logoDark: image().optional(), + logoIcon: image().optional(), rank: z.number(), tasks: z.array(z.string()), kpi1: z.string(), @@ -154,6 +155,7 @@ export const collections = { intro: z.string().optional(), deployment: z.string().optional(), useCase: z.string().optional(), + useCaseShort: z.string().optional(), companySize: z.string().optional(), cta: z.string().optional(), }), diff --git a/src/contents/customer-stories/a-solopreneurs-journey-how-networklessons-leverage-kestra-to-automate-his-business/index.md b/src/contents/customer-stories/a-solopreneurs-journey-how-networklessons-leverage-kestra-to-automate-his-business/index.md index 63e7dc0205c..1c9eedcc7bb 100644 --- a/src/contents/customer-stories/a-solopreneurs-journey-how-networklessons-leverage-kestra-to-automate-his-business/index.md +++ b/src/contents/customer-stories/a-solopreneurs-journey-how-networklessons-leverage-kestra-to-automate-his-business/index.md @@ -40,7 +40,8 @@ companySize: "1–50" solution: Educational platform that offers network lessons focused on Cisco technologies tagline: Online learning platform for Cisco network certifications companyName: NetworkLessons -useCase: Business Automation +useCase: Consolidating AWS Lambda functions, ChatGPT, and Zendesk into one platform as a one-man Cisco training business +useCaseShort: Business Automation cta: "What would change if you could automate your entire content and business workflow as a solo operator—without a dedicated engineering team?" --- diff --git a/src/contents/customer-stories/airpaz-optimizes-travel-data-workflows-with-kestra/index.md b/src/contents/customer-stories/airpaz-optimizes-travel-data-workflows-with-kestra/index.md index 56bc733a51f..2e6f44dfa3d 100644 --- a/src/contents/customer-stories/airpaz-optimizes-travel-data-workflows-with-kestra/index.md +++ b/src/contents/customer-stories/airpaz-optimizes-travel-data-workflows-with-kestra/index.md @@ -35,7 +35,8 @@ companySize: "51–500" solution: Flights and Hotels booking solution tagline: Online travel platform for flight and hotel bookings companyName: Airpaz -useCase: Data Orchestration +useCase: Cutting manual data processing by 70% while connecting 10 sources for a Southeast Asia flight and hotel booking platform +useCaseShort: Data Orchestration cta: "What would change if your travel data workflows ran smarter—automating the complex pipelines that power bookings, pricing, and experiences?" --- diff --git a/src/contents/customer-stories/amdocs-delivers-integration-environments-as-a-service-with-kestra/index.md b/src/contents/customer-stories/amdocs-delivers-integration-environments-as-a-service-with-kestra/index.md index 5f9300f0426..8711930d969 100644 --- a/src/contents/customer-stories/amdocs-delivers-integration-environments-as-a-service-with-kestra/index.md +++ b/src/contents/customer-stories/amdocs-delivers-integration-environments-as-a-service-with-kestra/index.md @@ -32,7 +32,8 @@ companySize: "5,000+" solution: Infrastructure Orchestration & Environment-as-a-Service tagline: Global provider of software and services for communications and media companies companyName: Amdocs -useCase: IT Automation +useCase: Delivering fully provisioned, deployed, and validated integration environments on demand, shrinking wait times from days to hours +useCaseShort: IT Automation cta: "What would change if your developers could request a fully provisioned, deployed, and validated environment with one click — instead of spending days assembling it by hand?" --- diff --git a/src/contents/customer-stories/apple-ml-team-orchestrates-large-scale-data-pipelines-with-kestra/index.md b/src/contents/customer-stories/apple-ml-team-orchestrates-large-scale-data-pipelines-with-kestra/index.md index ab0045a8cb3..5b210353e61 100644 --- a/src/contents/customer-stories/apple-ml-team-orchestrates-large-scale-data-pipelines-with-kestra/index.md +++ b/src/contents/customer-stories/apple-ml-team-orchestrates-large-scale-data-pipelines-with-kestra/index.md @@ -33,7 +33,8 @@ companySize: "5,000+" solution: Apple is a global technology leader whose services, including the App Store, Apple Music, and device ecosystems, generate some of the world's largest data volumes, processed daily by a 200-engineer ML team. tagline: Global technology company behind iPhone, Mac, and the world's largest app marketplace companyName: Apple -useCase: Data Orchestration +useCase: Replacing Airflow for 200 ML engineers running massive ETL workloads across the App Store, Apple Music, and device data +useCaseShort: Data Orchestration cta: "What would change if your ML data pipelines processed at massive scale, orchestrating complex ETL workloads between your data warehouse and ML platform with declarative simplicity?" --- diff --git a/src/contents/customer-stories/boosted-productivity-slashed-costs-and-accelerated-delivery/index.md b/src/contents/customer-stories/boosted-productivity-slashed-costs-and-accelerated-delivery/index.md index 5361d26f884..8180d94f156 100644 --- a/src/contents/customer-stories/boosted-productivity-slashed-costs-and-accelerated-delivery/index.md +++ b/src/contents/customer-stories/boosted-productivity-slashed-costs-and-accelerated-delivery/index.md @@ -35,7 +35,8 @@ companySize: "< 100" solution: Foundation Data is a technology company that powers marketing analytics and digital advertising intelligence for automotive dealerships across the United States. They handle the data infrastructure behind OEM integrations, dbt transformations, BigQuery analytics, and Looker dashboards for over 2,800 dealership clients. tagline: Data and analytics partner for automotive dealerships companyName: Foundation Data -useCase: Data Orchestration +useCase: Replacing SuperMetrics, Prefect, and dbt Cloud with one platform to cut toolchain costs 90% and serve 2,800 automotive dealerships +useCaseShort: Data Orchestration deployment: Kestra Cloud intro: "Foundation Data serves over 2,800 automotive dealerships across the United States. One engineer runs the entire data stack. That ratio became possible because of two decisions made early in the company's life as an independent entity: commit to Infrastructure as Code from day one, and find an orchestrator that could run Go. Both pointed to Kestra." cta: "What would change if one engineer could orchestrate 50+ pipelines, serve 2,800 clients, and still have time to innovate?" diff --git a/src/contents/customer-stories/bouygues-immobilier-platform-orchestrate-its-marketing-data-with-kestra/index.md b/src/contents/customer-stories/bouygues-immobilier-platform-orchestrate-its-marketing-data-with-kestra/index.md index 8565166ee76..34bae6aca05 100644 --- a/src/contents/customer-stories/bouygues-immobilier-platform-orchestrate-its-marketing-data-with-kestra/index.md +++ b/src/contents/customer-stories/bouygues-immobilier-platform-orchestrate-its-marketing-data-with-kestra/index.md @@ -39,7 +39,8 @@ companySize: "51–500" solution: "Solution for real-esrate investment " tagline: Leading French real estate developer and property investor companyName: "" -useCase: Data Orchestration +useCase: Orchestrating a modern data stack with dbt, BigQuery, and Hightouch to double conversion rates for a real estate investment platform +useCaseShort: Data Orchestration cta: "What would change if your marketing data pipelines ran automatically—keeping every campaign fed with fresh, accurate data?" --- diff --git a/src/contents/customer-stories/building-a-government-grade-orchestration-control-plane-with-kestra/icon.svg b/src/contents/customer-stories/building-a-government-grade-orchestration-control-plane-with-kestra/icon.svg new file mode 100644 index 00000000000..6a9aafe15ba --- /dev/null +++ b/src/contents/customer-stories/building-a-government-grade-orchestration-control-plane-with-kestra/icon.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/contents/customer-stories/building-a-government-grade-orchestration-control-plane-with-kestra/index.md b/src/contents/customer-stories/building-a-government-grade-orchestration-control-plane-with-kestra/index.md index 41daca5771d..9b03447cdfe 100644 --- a/src/contents/customer-stories/building-a-government-grade-orchestration-control-plane-with-kestra/index.md +++ b/src/contents/customer-stories/building-a-government-grade-orchestration-control-plane-with-kestra/index.md @@ -8,6 +8,7 @@ heroImage: ./hero.jpg featuredImage: ./hero.jpg logo: ./logo.svg logoDark: ./logo-dark.svg +logoIcon: ./icon.svg tasks: - io.kestra.plugin.ee.kubernetes.runner.Kubernetes - io.kestra.plugin.kafka.Trigger @@ -35,7 +36,8 @@ companySize: "501–5,000" solution: Build a government-grade cloud service portal tagline: Government-owned IT service provider for German public administration companyName: Dataport -useCase: IT Automation +useCase: Building a fully self-hosted, auditable private-cloud control plane for Germany's public-sector IT services provider Dataport +useCaseShort: Infrastructure Orchestration cta: "What would change if your public-sector cloud automation ran through a self-hosted orchestration control plane, built for governance, visibility, and scale?" --- diff --git a/src/contents/customer-stories/clever-cloud-offloading-terabytes-of-data-with-kestra-every-month/icon.svg b/src/contents/customer-stories/clever-cloud-offloading-terabytes-of-data-with-kestra-every-month/icon.svg new file mode 100644 index 00000000000..db1ddca5a1b --- /dev/null +++ b/src/contents/customer-stories/clever-cloud-offloading-terabytes-of-data-with-kestra-every-month/icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/contents/customer-stories/clever-cloud-offloading-terabytes-of-data-with-kestra-every-month/index.md b/src/contents/customer-stories/clever-cloud-offloading-terabytes-of-data-with-kestra-every-month/index.md index 25a08d1000f..3a8978cef63 100644 --- a/src/contents/customer-stories/clever-cloud-offloading-terabytes-of-data-with-kestra-every-month/index.md +++ b/src/contents/customer-stories/clever-cloud-offloading-terabytes-of-data-with-kestra-every-month/index.md @@ -12,6 +12,7 @@ heroImage: ./hero.jpg featuredImage: ./hero.jpg logo: ./logo.svg logoDark: ./logo-dark.svg +logoIcon: ./icon.svg tasks: - io.kestra.plugin.core.http.Request - io.kestra.plugin.core.flow.Subflow @@ -38,7 +39,8 @@ companySize: "51–500" solution: Clever Cloud is an IT Automation platform to manage all the ops work while you focus on your business value tagline: European cloud provider and IT automation platform companyName: "" -useCase: IT Automation +useCase: Automating 20TB of weekly monitoring data offloading for a European PaaS provider, reducing manual tasks by 80% +useCaseShort: Infrastructure Orchestration cta: "What would change if your cloud data offloading ran at scale—processing terabytes reliably, every month, without manual intervention?" --- diff --git a/src/contents/customer-stories/cleverconnect-enhances-hr-integration-platform-with-kestra/icon.svg b/src/contents/customer-stories/cleverconnect-enhances-hr-integration-platform-with-kestra/icon.svg new file mode 100644 index 00000000000..50092fdf678 --- /dev/null +++ b/src/contents/customer-stories/cleverconnect-enhances-hr-integration-platform-with-kestra/icon.svg @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/contents/customer-stories/cleverconnect-enhances-hr-integration-platform-with-kestra/index.md b/src/contents/customer-stories/cleverconnect-enhances-hr-integration-platform-with-kestra/index.md index d279eb375dd..50b8c5a7c54 100644 --- a/src/contents/customer-stories/cleverconnect-enhances-hr-integration-platform-with-kestra/index.md +++ b/src/contents/customer-stories/cleverconnect-enhances-hr-integration-platform-with-kestra/index.md @@ -12,6 +12,7 @@ heroImage: ./hero.jpg featuredImage: ./hero.jpg logo: ./logo.svg logoDark: ./logo-dark.svg +logoIcon: ./icon.svg tasks: - io.kestra.plugin.mongodb.Load - io.kestra.plugin.kubernetes.PodCreate @@ -36,7 +37,8 @@ companySize: "51–500" solution: Leading HR tech company focused on AI-driven recruitment solutions. tagline: AI-driven recruitment and talent management platform companyName: CleverConnect -useCase: Business Automation +useCase: Accelerating connector development 10x to build hundreds of HR system integrations for an AI-driven recruitment platform +useCaseShort: Business Automation cta: "What would change if your HR integration workflows were fully automated—scaling with your business without added engineering overhead?" --- diff --git a/src/contents/customer-stories/copines-de-voyage-enhancing-travel-experiences-through-advanced-data-orchestration-with-kestra/icon.svg b/src/contents/customer-stories/copines-de-voyage-enhancing-travel-experiences-through-advanced-data-orchestration-with-kestra/icon.svg new file mode 100644 index 00000000000..628426bfcd0 --- /dev/null +++ b/src/contents/customer-stories/copines-de-voyage-enhancing-travel-experiences-through-advanced-data-orchestration-with-kestra/icon.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/contents/customer-stories/copines-de-voyage-enhancing-travel-experiences-through-advanced-data-orchestration-with-kestra/index.md b/src/contents/customer-stories/copines-de-voyage-enhancing-travel-experiences-through-advanced-data-orchestration-with-kestra/index.md index 8b0445f6d74..e19a23c3253 100644 --- a/src/contents/customer-stories/copines-de-voyage-enhancing-travel-experiences-through-advanced-data-orchestration-with-kestra/index.md +++ b/src/contents/customer-stories/copines-de-voyage-enhancing-travel-experiences-through-advanced-data-orchestration-with-kestra/index.md @@ -13,6 +13,7 @@ metaDescription: This is the story of how Copines De Voyage, an exclusively heroImage: ./hero.jpg featuredImage: ./hero.jpg logo: ./logo.svg +logoIcon: ./icon.svg tasks: - io.kestra.plugin.dbt.cloud.TriggerRun - io.kestra.plugin.jdbc.mysql.Query @@ -37,7 +38,8 @@ companySize: "1–50" solution: Exclusive travel agency for women only. tagline: Exclusive travel agency for women companyName: Copines de Voyage -useCase: Data Orchestration +useCase: Replacing legacy PHP cron jobs with dbt and BigQuery pipelines for a women-only travel agency, doubling team efficiency +useCaseShort: Data Orchestration cta: "What would change if your travel data pipelines ran end-to-end automatically—delivering better experiences for every traveler?" --- diff --git a/src/contents/customer-stories/datamesh-at-scale-increased-its-data-production-by-900percent/index.md b/src/contents/customer-stories/datamesh-at-scale-increased-its-data-production-by-900percent/index.md index 097ea901a3f..abb7a945429 100644 --- a/src/contents/customer-stories/datamesh-at-scale-increased-its-data-production-by-900percent/index.md +++ b/src/contents/customer-stories/datamesh-at-scale-increased-its-data-production-by-900percent/index.md @@ -33,7 +33,8 @@ companySize: "5,000+" solution: Leroy Merlin France is the French subsidiary of ADEO Group, one of the world's largest home improvement and gardening retailers. Their data platform team orchestrates hundreds of pipelines across multiple engineering squads, underpinning product analytics, customer data, and retail operations for 80,000+ employees and 140 stores across France. tagline: Global home improvement and gardening retailer companyName: Leroy Merlin France -useCase: Data Orchestration +useCase: Replacing Airflow to build a self-service data mesh serving 250+ engineers across 140 stores +useCaseShort: Data Orchestration deployment: Self-hosted (Kubernetes) intro: "Leroy Merlin France, a subsidiary of ADEO Group managing data operations for 80,000+ employees across 140 stores, needed to replace a fragmented legacy scheduling stack and a failing Airflow deployment with a platform that could support self-service data engineering at scale. Starting in May 2020, they built a full DataOps lifecycle on Kestra: GitOps deployment, a custom ingest plugin, Enterprise RBAC, and a Data Mesh architecture where individual squads publish their own data products. Today the platform orchestrates 5,000+ flows, serves 250+ active engineers, and has been a cornerstone of LMFR's data operations for over six years." cta: "What would change if your data mesh produced 9× more data, automating the pipelines that power your entire retail operation?" diff --git a/src/contents/customer-stories/displayce-optimized-workflow-orchestration-and-enhanced-data-management/index.md b/src/contents/customer-stories/displayce-optimized-workflow-orchestration-and-enhanced-data-management/index.md index 7a2e21c520b..ed6cf6ecf32 100644 --- a/src/contents/customer-stories/displayce-optimized-workflow-orchestration-and-enhanced-data-management/index.md +++ b/src/contents/customer-stories/displayce-optimized-workflow-orchestration-and-enhanced-data-management/index.md @@ -40,7 +40,8 @@ companySize: "51–500" solution: Displayce optimises the purchase, impact and quality of digital out-of-home campaigns on over 1 million digital screens worldwide. tagline: Digital out-of-home advertising platform across 1 million+ screens worldwide companyName: Displayce -useCase: Data Orchestration +useCase: Cutting processing time 40% by centralizing orchestration across dbt, ClickHouse, and S3 for a digital out-of-home ad platform covering 1M+ screens +useCaseShort: Data Orchestration cta: "What would change if your advertising data workflows ran faster—orchestrated automatically across every campaign and digital screen?" --- diff --git a/src/contents/customer-stories/erp-transformation-smarter-faster-fully-automated/index.md b/src/contents/customer-stories/erp-transformation-smarter-faster-fully-automated/index.md index ac5eb249a83..2362ff46e85 100644 --- a/src/contents/customer-stories/erp-transformation-smarter-faster-fully-automated/index.md +++ b/src/contents/customer-stories/erp-transformation-smarter-faster-fully-automated/index.md @@ -41,7 +41,8 @@ companySize: "5,000+" solution: Fila has evolved into a global sportswear brand, known for its high-quality and stylish clothing and accessories. tagline: Global sportswear brand with a century-long legacy companyName: Fila -useCase: Business Automation +useCase: Orchestrating ERP and supply chain workflows across 70+ countries during a global IT transformation +useCaseShort: Business Automation cta: "What would change if your ERP processes were fully automated—transforming months of manual work into streamlined, end-to-end flows?" --- diff --git a/src/contents/customer-stories/gorgias-using-declarative-data-engineering-orchestration-with-kestra/icon.svg b/src/contents/customer-stories/gorgias-using-declarative-data-engineering-orchestration-with-kestra/icon.svg new file mode 100644 index 00000000000..ddc0a557164 --- /dev/null +++ b/src/contents/customer-stories/gorgias-using-declarative-data-engineering-orchestration-with-kestra/icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/contents/customer-stories/gorgias-using-declarative-data-engineering-orchestration-with-kestra/index.md b/src/contents/customer-stories/gorgias-using-declarative-data-engineering-orchestration-with-kestra/index.md index 44ae9d5eeb7..0480ec77b7c 100644 --- a/src/contents/customer-stories/gorgias-using-declarative-data-engineering-orchestration-with-kestra/index.md +++ b/src/contents/customer-stories/gorgias-using-declarative-data-engineering-orchestration-with-kestra/index.md @@ -13,6 +13,7 @@ featured: true featuredImage: ./hero.png logo: ./logo.svg logoDark: ./logo-dark.svg +logoIcon: ./icon.svg tasks: - io.kestra.plugin.airbyte.connections.Sync - io.kestra.plugin.dbt.cloud.TriggerRun @@ -38,7 +39,8 @@ companySize: "51–500" solution: Gorgias is the leading AI customer experience platform for ecommerce stores. Trusted by over 15000 merchants worldwide. tagline: Leading AI customer experience platform for ecommerce brands companyName: Gorgias -useCase: Data Orchestration +useCase: Unifying data ingestion, dbt transformations, and reverse-ETL in a declarative IaC stack +useCaseShort: Data Orchestration cta: "What would change if your CI/CD pipelines and data workflows were unified in a single orchestration platform—shipping faster with full visibility?" --- diff --git a/src/contents/customer-stories/governed-self-service-cloud-automation-in-regulated-environments-with-kestra/icon.svg b/src/contents/customer-stories/governed-self-service-cloud-automation-in-regulated-environments-with-kestra/icon.svg new file mode 100644 index 00000000000..60c9f626f06 --- /dev/null +++ b/src/contents/customer-stories/governed-self-service-cloud-automation-in-regulated-environments-with-kestra/icon.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/src/contents/customer-stories/governed-self-service-cloud-automation-in-regulated-environments-with-kestra/index.md b/src/contents/customer-stories/governed-self-service-cloud-automation-in-regulated-environments-with-kestra/index.md index f60e25b948f..76c992d0a69 100644 --- a/src/contents/customer-stories/governed-self-service-cloud-automation-in-regulated-environments-with-kestra/index.md +++ b/src/contents/customer-stories/governed-self-service-cloud-automation-in-regulated-environments-with-kestra/index.md @@ -11,6 +11,7 @@ heroImage: ./hero.jpg featuredImage: ./hero.jpg logo: ./logo.svg logoDark: ./logo-dark.svg +logoIcon: ./icon.svg tasks: - io.kestra.plugin.terraform.cli.TerraformCLI - io.kestra.plugin.scripts.shell.Script @@ -35,7 +36,8 @@ companySize: "501–5,000" solution: Regulated Cloud Platform for Banking and Insurance Customers tagline: Cloud platform provider for regulated banking and insurance industries companyName: Software Provider -useCase: IT Automation +useCase: Turning ad-hoc Terraform scripts into auditable, least-privilege self-service automation across three isolated environments for banking and insurance customers +useCaseShort: Infrastructure Orchestration cta: "What would change if your regulated-industry clients could self-serve cloud automation—with full governance and compliance built into every flow?" --- diff --git a/src/contents/customer-stories/government-soc-team/index.md b/src/contents/customer-stories/government-soc-team/index.md index ecb635972c4..8b6facf81f6 100644 --- a/src/contents/customer-stories/government-soc-team/index.md +++ b/src/contents/customer-stories/government-soc-team/index.md @@ -39,7 +39,8 @@ tagline: European government IT provider managing SOC operations across multiple companyName: Government IT Provider intro: A European government IT services provider managing security operations across multiple German federal states needed to replace Palo Alto XSOAR after the vendor shifted new capabilities primarily to its cloud offering. With citizen data that cannot touch a commercial cloud by law, the SOC team evaluated five alternatives — purpose-built SOARs included — and selected Kestra. They built 100+ security workflows on top of it, covering the full alert lifecycle with no cloud dependencies. deployment: Self-hosted · Docker Compose · On-prem -useCase: Security Automation +useCase: Replacing Palo Alto XSOAR with 100+ fully self-hosted SOC alert workflows serving 6 German federal states with zero cloud dependencies +useCaseShort: Security Automation cta: What would change if your security operations ran on a platform built to stay on-prem — actively developed, open source at its core, and fully under your control? --- diff --git a/src/contents/customer-stories/htch-building-the-best-architect-collaborative-web-tool-with-kestra/index.md b/src/contents/customer-stories/htch-building-the-best-architect-collaborative-web-tool-with-kestra/index.md index 2d49e8b5155..b6dbe0b28b8 100644 --- a/src/contents/customer-stories/htch-building-the-best-architect-collaborative-web-tool-with-kestra/index.md +++ b/src/contents/customer-stories/htch-building-the-best-architect-collaborative-web-tool-with-kestra/index.md @@ -34,7 +34,8 @@ companySize: "1–50" solution: Modelisation tool for architects tagline: Collaborative architectural modeling and design tool companyName: HTCH -useCase: Business Automation +useCase: Orchestrating Kafka events, S3 uploads, and 3D file transformations for a collaborative architectural design web platform +useCaseShort: Business Automation cta: "What would change if your SaaS platform's backend workflows were fully orchestrated—deployments, data flows, and integrations running automatically?" --- diff --git a/src/contents/customer-stories/modernizing-mission-critical-e-commerce-integrations-with-kestra/icon.svg b/src/contents/customer-stories/modernizing-mission-critical-e-commerce-integrations-with-kestra/icon.svg new file mode 100644 index 00000000000..d98ae587bad --- /dev/null +++ b/src/contents/customer-stories/modernizing-mission-critical-e-commerce-integrations-with-kestra/icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/contents/customer-stories/modernizing-mission-critical-e-commerce-integrations-with-kestra/index.md b/src/contents/customer-stories/modernizing-mission-critical-e-commerce-integrations-with-kestra/index.md index 12a55a79503..b5e7b38a7d9 100644 --- a/src/contents/customer-stories/modernizing-mission-critical-e-commerce-integrations-with-kestra/index.md +++ b/src/contents/customer-stories/modernizing-mission-critical-e-commerce-integrations-with-kestra/index.md @@ -9,6 +9,7 @@ featured: false featuredImage: ./hero.png logo: ./logo.svg logoDark: ./logo-dark.svg +logoIcon: ./icon.svg tasks: - io.kestra.plugin.core.trigger.Webhook - io.kestra.plugin.core.http.Request @@ -34,7 +35,8 @@ companySize: "< 100" solution: Víssimo Group is the holding company behind Evino (Brazil's largest digital wine e-tailer) and Grand Cru (premium physical wine retail). Together they run mission-critical commerce integrations, ERP synchronization, and BI pipelines across Magento, SAP, and a shared data platform serving both brands. tagline: Brazil's leading premium wine e-commerce and retail group companyName: Víssimo Group -useCase: E-commerce Orchestration +useCase: Consolidating an iPaaS and AWS Lambdas onto one platform to cut costs 90% and run Brazil's premium wine group's first zero-incident Black Friday +useCaseShort: E-commerce Orchestration deployment: Kestra OSS (self-hosted) intro: "Víssimo Group runs two premium wine brands in Brazil, Evino and Grand Cru, on a shared integration and data backbone spanning e-commerce platforms, ERPs, and BI. That backbone had grown organically: an iPaaS for commerce integrations, AWS Lambdas for BI pipelines, and scattered scripts filling the gaps. Under peak load it showed its limits. A 2024 FinOps review confirmed the structural problem. Víssimo consolidated both tool layers onto Kestra, cutting BI costs by 40%, reducing integration spend to roughly 10% of previous iPaaS levels, and running its first zero-incident Black Friday." cta: "What would change if your most critical e-commerce flows were observable, replayable, and governed from a single platform?" diff --git a/src/contents/customer-stories/modernizing-mission-critical-workflows-in-a-highly-regulated-environment/index.md b/src/contents/customer-stories/modernizing-mission-critical-workflows-in-a-highly-regulated-environment/index.md index 6508356c092..c9914cd284f 100644 --- a/src/contents/customer-stories/modernizing-mission-critical-workflows-in-a-highly-regulated-environment/index.md +++ b/src/contents/customer-stories/modernizing-mission-critical-workflows-in-a-highly-regulated-environment/index.md @@ -34,7 +34,8 @@ companySize: "501–5,000" solution: Pharmacy Retail tagline: Leading pharmacy retail chain operating in a highly regulated market companyName: Pharmacy Retailer -useCase: IT Automation +useCase: Replacing a 30-year-old legacy integration platform to modernize 50+ critical workflows across 400+ on-prem pharmacies +useCaseShort: IT Automation cta: "What would change if your mission-critical healthcare workflows ran reliably—meeting compliance requirements without the operational overhead?" --- diff --git a/src/contents/customer-stories/ntico-manage-geospatial-data-operations-with-kestra/icon.svg b/src/contents/customer-stories/ntico-manage-geospatial-data-operations-with-kestra/icon.svg new file mode 100644 index 00000000000..d3eae14ecd3 --- /dev/null +++ b/src/contents/customer-stories/ntico-manage-geospatial-data-operations-with-kestra/icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/contents/customer-stories/ntico-manage-geospatial-data-operations-with-kestra/index.md b/src/contents/customer-stories/ntico-manage-geospatial-data-operations-with-kestra/index.md index f9536bb898e..8bf060072c8 100644 --- a/src/contents/customer-stories/ntico-manage-geospatial-data-operations-with-kestra/index.md +++ b/src/contents/customer-stories/ntico-manage-geospatial-data-operations-with-kestra/index.md @@ -12,6 +12,7 @@ heroImage: ./hero.jpg featuredImage: ./hero.jpg logo: ./logo.svg logoDark: ./logo-dark.svg +logoIcon: ./icon.svg tasks: - io.kestra.plugin.aws.athena.Query - io.kestra.plugin.aws.s3.CreateBucket @@ -36,7 +37,8 @@ companySize: "51–500" solution: Geospatial Data tagline: Geospatial data consulting and system integration companyName: Ntico -useCase: Data Orchestration +useCase: Orchestrating 250+ geospatial datasets from satellite imagery and public APIs for a housing intelligence platform, cutting processing costs 50% +useCaseShort: Data Orchestration cta: "What would change if your geospatial data operations were fully orchestrated—automated end-to-end, without the integration complexity?" --- diff --git a/src/contents/customer-stories/orchestrating-cybersecurity-for-100-users-and-billions-of-rows/index.md b/src/contents/customer-stories/orchestrating-cybersecurity-for-100-users-and-billions-of-rows/index.md index 63cc8362bee..f7942b45d13 100644 --- a/src/contents/customer-stories/orchestrating-cybersecurity-for-100-users-and-billions-of-rows/index.md +++ b/src/contents/customer-stories/orchestrating-cybersecurity-for-100-users-and-billions-of-rows/index.md @@ -38,7 +38,8 @@ companySize: "5,000+" solution: Helping power economic growth by creating opportunities for all through business and community investments, local collaborations and policy advocacy. tagline: Global financial services and investment banking leader companyName: JPMorgan Chase -useCase: Security Automation +useCase: Processing billions of cybersecurity records and 4,000+ weekly API pulls for 100+ JPMorgan Chase analysts fighting fraud and threat intelligence +useCaseShort: Security Automation cta: "What would change if your cybersecurity workflows orchestrated billions of rows automatically—protecting your organization at financial-industry scale?" --- diff --git a/src/contents/customer-stories/quadis-drives-innovation-transforming-car-retail-operations-with-kestra/icon.svg b/src/contents/customer-stories/quadis-drives-innovation-transforming-car-retail-operations-with-kestra/icon.svg new file mode 100644 index 00000000000..a45b805f61c --- /dev/null +++ b/src/contents/customer-stories/quadis-drives-innovation-transforming-car-retail-operations-with-kestra/icon.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/contents/customer-stories/quadis-drives-innovation-transforming-car-retail-operations-with-kestra/index.md b/src/contents/customer-stories/quadis-drives-innovation-transforming-car-retail-operations-with-kestra/index.md index 1c3f9071831..7803a77584a 100644 --- a/src/contents/customer-stories/quadis-drives-innovation-transforming-car-retail-operations-with-kestra/index.md +++ b/src/contents/customer-stories/quadis-drives-innovation-transforming-car-retail-operations-with-kestra/index.md @@ -11,6 +11,7 @@ heroImage: ./hero.jpg featuredImage: ./hero.jpg logo: ./logo.svg logoDark: ./logo-dark.svg +logoIcon: ./icon.svg tasks: - io.kestra.plugin.azure.cli.AzCLI - io.kestra.plugin.docker.Build @@ -38,7 +39,8 @@ companySize: "501–5,000" solution: Spain’s largest car retailer, providing a diverse range of vehicles from prestigious manufacturers. tagline: Spain's largest car retailer companyName: Quadis -useCase: Business Automation +useCase: Automating daily financial reports and customer communications for Spain's largest car retailer after replacing Pentaho ETL tools +useCaseShort: Business Automation cta: "What would change if your automotive retail operations were fully automated—from inventory to customer experience, orchestrated end-to-end?" --- diff --git a/src/contents/customer-stories/reglo-automating-etl-process-with-a-simple-slack-command/index.md b/src/contents/customer-stories/reglo-automating-etl-process-with-a-simple-slack-command/index.md index 57ce36e2ebb..b1c99b017e2 100644 --- a/src/contents/customer-stories/reglo-automating-etl-process-with-a-simple-slack-command/index.md +++ b/src/contents/customer-stories/reglo-automating-etl-process-with-a-simple-slack-command/index.md @@ -37,7 +37,8 @@ companySize: "51–500" solution: High Quality Pets Nutrition tagline: Premium pet nutrition brand companyName: Reglo -useCase: Business Automation +useCase: Triggering Airbyte ingestion and dbt transformations from a single Slack command for a French premium pet nutrition e-commerce brand +useCaseShort: Business Automation cta: "What would change if your ETL processes triggered automatically from a single command—no manual pipeline runs, just results?" --- diff --git a/src/contents/customer-stories/riverside-orchestrates-dbt-cloud-analytics-stack-with-kestra/index.md b/src/contents/customer-stories/riverside-orchestrates-dbt-cloud-analytics-stack-with-kestra/index.md index cdb7b22bab7..de36b0debb5 100644 --- a/src/contents/customer-stories/riverside-orchestrates-dbt-cloud-analytics-stack-with-kestra/index.md +++ b/src/contents/customer-stories/riverside-orchestrates-dbt-cloud-analytics-stack-with-kestra/index.md @@ -39,7 +39,8 @@ tagline: Remote recording platform for podcasts and video interviews companyName: Riverside intro: Riverside is a podcast recording and editing platform used by creators and media teams worldwide. Their analytics engineering team runs the company's internal data operations — ELT ingestion into Snowflake, sequential dbt Cloud transformation jobs, Metaplane data quality checks, and Hightouch reverse ETL to downstream platforms. Six tools in total, all with dependencies on each other, all previously running on isolated time-based schedules with no actual handoff between them. The team evaluated Astronomer, Dagster, Mage, and Orchestra. All four were rejected. Airflow was too complex for a team of SQL and YAML practitioners. Dagster required too steep a learning curve. Orchestra abstracted too much away. They chose Kestra Cloud and connected their full analytics stack without rewriting a single pipeline. deployment: Cloud · Kestra Cloud · GCP -useCase: Data Orchestration +useCase: Connecting dbt Cloud, Snowflake, Metaplane, and Hightouch into a single dependency-aware pipeline without rewriting a single existing script +useCaseShort: Data Orchestration cta: What would your analytics team build if your pipelines ran in sync, with no framework overhead and no infrastructure to manage? --- diff --git a/src/contents/customer-stories/scaling-big-data-operations/icon.svg b/src/contents/customer-stories/scaling-big-data-operations/icon.svg new file mode 100644 index 00000000000..bc65cdd20b5 --- /dev/null +++ b/src/contents/customer-stories/scaling-big-data-operations/icon.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/contents/customer-stories/scaling-big-data-operations/index.md b/src/contents/customer-stories/scaling-big-data-operations/index.md index 79dbfc2ea57..5679d653cd1 100644 --- a/src/contents/customer-stories/scaling-big-data-operations/index.md +++ b/src/contents/customer-stories/scaling-big-data-operations/index.md @@ -9,6 +9,7 @@ featured: true featuredImage: ./featured.jpg logo: ./logo.svg logoDark: ./logo-dark.svg +logoIcon: ./icon.svg tasks: - io.kestra.plugin.databricks.job.CreateJob - io.kestra.plugin.kubernetes.PodCreate @@ -33,7 +34,8 @@ companySize: "5,000+" solution: Acxiom is a data technology company that provides customer data management, data integration, and marketing intelligence to global enterprise brands. Through its Axiom Cloud platform, Acxiom helps clients ingest, validate, cleanse, and enrich data at scale, with each client running as an isolated tenant in a dedicated pipeline environment. tagline: Global leader in customer intelligence and AI-driven marketing companyName: Acxiom -useCase: Data Orchestration +useCase: Running 50+ enterprise clients in fully isolated multi-tenant pipelines on the Axiom Cloud platform +useCaseShort: Data Orchestration deployment: Self-hosted (Kubernetes) intro: Most orchestration deployments start as internal tools. Acxiom built something different. The company embedded Kestra as the orchestration layer at the base of its Axiom Cloud product suite, where every enterprise client runs as an isolated tenant with dedicated workers, secrets, and storage. What began as a single data ingestion product has expanded into a multi-product platform, with Kestra providing the shared foundation beneath all of it, serving 50+ enterprise clients from a single, consistent deployment model. cta: "What would your data operations look like if every enterprise client ran on its own isolated pipeline environment?" diff --git a/src/contents/customer-stories/scaling-secure-infrastructure-at-credit-agricole-with-kestra/index.md b/src/contents/customer-stories/scaling-secure-infrastructure-at-credit-agricole-with-kestra/index.md index 386b155a20d..9b549acc35d 100644 --- a/src/contents/customer-stories/scaling-secure-infrastructure-at-credit-agricole-with-kestra/index.md +++ b/src/contents/customer-stories/scaling-secure-infrastructure-at-credit-agricole-with-kestra/index.md @@ -32,7 +32,7 @@ kpi3: |- quote: Kestra allowed us to move from fragmented automation to a unified control plane—secure, scalable, and manageable by all our teams. quotePerson: Julien Legrand -quotePersonTitle: "PO Data " +quotePersonTitle: Data Product Owner industry: Banking headquarter: Paris, France region: Europe @@ -40,7 +40,8 @@ companySize: "5,000+" solution: CAGIP manage the whole infrastructure ecosystem for the Credit Agricole Group tagline: Infrastructure arm of France's largest retail banking group companyName: Crédit Agricole -useCase: IT Automation +useCase: Automating infrastructure operations across 100+ clusters for France's largest banking group +useCaseShort: Infrastructure Orchestration cta: "What would change if your bank's infrastructure scaled securely—automated across every team, with governance built into every workflow?" --- diff --git a/src/contents/customer-stories/scaling-secure-infrastructure-at-credit-agricole-with-kestra/logo.svg b/src/contents/customer-stories/scaling-secure-infrastructure-at-credit-agricole-with-kestra/logo.svg index 6f1b414b721..c17f7c8ac87 100644 --- a/src/contents/customer-stories/scaling-secure-infrastructure-at-credit-agricole-with-kestra/logo.svg +++ b/src/contents/customer-stories/scaling-secure-infrastructure-at-credit-agricole-with-kestra/logo.svg @@ -1,4 +1,4 @@ - + diff --git a/src/contents/customer-stories/securing-hybrid-cloud-automation-across-it-and-ot-with-kestra/index.md b/src/contents/customer-stories/securing-hybrid-cloud-automation-across-it-and-ot-with-kestra/index.md index e7b0182c82e..04887416dc9 100644 --- a/src/contents/customer-stories/securing-hybrid-cloud-automation-across-it-and-ot-with-kestra/index.md +++ b/src/contents/customer-stories/securing-hybrid-cloud-automation-across-it-and-ot-with-kestra/index.md @@ -36,7 +36,8 @@ companySize: "5,000+" solution: Global leader in heavy industry across the globe tagline: Global Fortune 500 heavy industry manufacturer companyName: Fortune 500 Company -useCase: IT Automation +useCase: Replacing VMware Aria Automation to deliver isolated per-OT-asset orchestration 30x faster at 90% lower licensing cost for a Fortune 500 industrial manufacturer +useCaseShort: Infrastructure Orchestration cta: "What would change if your hybrid cloud automation ran securely across every OT domain—isolated by design, auditable by default?" --- diff --git a/src/contents/customer-stories/sopht-scales-its-green-itops-platform-with-kestra/icon.svg b/src/contents/customer-stories/sopht-scales-its-green-itops-platform-with-kestra/icon.svg new file mode 100644 index 00000000000..a0418c5ab0a --- /dev/null +++ b/src/contents/customer-stories/sopht-scales-its-green-itops-platform-with-kestra/icon.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/contents/customer-stories/sopht-scales-its-green-itops-platform-with-kestra/index.md b/src/contents/customer-stories/sopht-scales-its-green-itops-platform-with-kestra/index.md index b791225d54d..ebd78be4b93 100644 --- a/src/contents/customer-stories/sopht-scales-its-green-itops-platform-with-kestra/index.md +++ b/src/contents/customer-stories/sopht-scales-its-green-itops-platform-with-kestra/index.md @@ -12,6 +12,7 @@ heroImage: ./hero.png featuredImage: ./hero.png logo: ./logo.svg logoDark: ./logo-dark.svg +logoIcon: ./icon.svg tasks: - io.kestra.plugin.terraform.cli.TerraformCLI - io.kestra.plugin.docker.Build @@ -39,7 +40,8 @@ companySize: "1–50" solution: Sopht is a French startup focused on Green ITOps. Their platform helps organizations automate decarbonization strategies and track their environmental and financial performance. tagline: French startup automating Green ITOps and decarbonization tracking companyName: Sopht -useCase: Business Automation +useCase: Scaling from 1,240 to 6,200 daily jobs with 99.5% reliability in tenant-isolated pipelines for a Green ITOps decarbonization platform +useCaseShort: Business Automation cta: "What would change if your green IT platform scaled from 1,200 to 6,200 daily jobs—with 99.5% reliability built in?" --- diff --git a/src/contents/customer-stories/when-your-api-writes-its-own-docs-with-kestra/icon.svg b/src/contents/customer-stories/when-your-api-writes-its-own-docs-with-kestra/icon.svg new file mode 100644 index 00000000000..4c60d439297 --- /dev/null +++ b/src/contents/customer-stories/when-your-api-writes-its-own-docs-with-kestra/icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/contents/customer-stories/when-your-api-writes-its-own-docs-with-kestra/index.md b/src/contents/customer-stories/when-your-api-writes-its-own-docs-with-kestra/index.md index f0ba375021c..3a4fec99668 100644 --- a/src/contents/customer-stories/when-your-api-writes-its-own-docs-with-kestra/index.md +++ b/src/contents/customer-stories/when-your-api-writes-its-own-docs-with-kestra/index.md @@ -13,6 +13,7 @@ heroImage: ./hero.jpg featuredImage: ./hero.jpg logo: ./logo.svg logoDark: ./logo-dark.svg +logoIcon: ./icon.svg tasks: - io.kestra.plugin.jdbc.postgresql.Query - io.kestra.plugin.docker.Run @@ -39,7 +40,8 @@ companySize: "51–500" solution: Gravitee brings modern DevOps principles to API management with built-in support for GitOps, Kubernetes, and APIOps. tagline: Open-source API management platform for modern DevOps teams companyName: Gravitee -useCase: API Management +useCase: Orchestrating AI-powered OpenAPI spec generation and ML model pipelines so Gravitee customers can auto-document their APIs with one click +useCaseShort: API Management cta: "What would change if your API documentation wrote itself—every release automatically synchronized with what's actually deployed?" --- diff --git a/src/pages/customers/[slug].astro b/src/pages/customers/[slug].astro index a52e021842d..96323087c83 100644 --- a/src/pages/customers/[slug].astro +++ b/src/pages/customers/[slug].astro @@ -38,6 +38,7 @@ export const getStaticPaths = (async () => { featuredImage: e.data.featuredImage.src, logo: e.data.logo?.src, logoDark: e.data.logoDark?.src, + logoIcon: e.data.logoIcon?.src, content: e.body ?? "", })) .sort(randomSortFunction) @@ -59,6 +60,7 @@ const story = { featuredImage: entry.data.featuredImage.src, logo: entry.data.logo?.src, logoDark: entry.data.logoDark?.src, + logoIcon: entry.data.logoIcon?.src, content: entry.body ?? "", } --- diff --git a/src/pages/customers/index.astro b/src/pages/customers/index.astro index e8a06a5c2dd..6e3c82bd90b 100644 --- a/src/pages/customers/index.astro +++ b/src/pages/customers/index.astro @@ -25,17 +25,21 @@ const toStory = (e: (typeof allEntries)[0]) => ({ featuredImage: e.data.featuredImage.src, logo: e.data.logo?.src, logoDark: e.data.logoDark?.src, + logoIcon: e.data.logoIcon?.src, content: e.body ?? "", }) const stories = allEntries.map(toStory) -const featuredEntry = allEntries.find((e) => e.data.featured) ?? allEntries[0] -const featuredStory = toStory(featuredEntry) +const featuredEntries = [ + ...allEntries.filter((e) => e.data.featured), + ...allEntries.filter((e) => !e.data.featured), +].slice(0, 5) +const featuredStories = featuredEntries.map(toStory) --- - + Date: Wed, 24 Jun 2026 19:15:31 +0200 Subject: [PATCH 2/5] feat(customer-stories): story icons, KPI/industry updates, featured curation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Story icons: Foundation, Riverside, Apple, Displayce; fix Dataport icon (missing 'o'); EU flag for Government IT Provider; pharmacy cross for Pharmacy Retailer; Víssimo uses full logo - Sidebar/card/carousel prefer logoIcon; sidebar-logo black background - KPI labels to sentence case; +10px row height; OT/IT ; v-html value - Split industry/industry2; two card chips; dropdown collects both - Curated featured carousel order (10 stories); clamp carousel nav at end - Industry badge + fix hydration: flatten logoIcon to .src in detail route --- src/components/stories/Card.vue | 14 +++++++-- src/components/stories/FeaturedCarousel.vue | 30 ++++++++++++++----- src/components/stories/KpiRotator.vue | 4 +-- src/components/stories/Main.vue | 2 +- src/components/stories/Sidebar.vue | 4 +-- src/components/stories/StoriesList.vue | 8 +++-- src/components/stories/StoryGallery.astro | 17 ----------- src/content.config.ts | 1 + .../index.md | 6 ++-- .../index.md | 4 +-- .../index.md | 9 +++--- .../icon.svg | 3 ++ .../index.md | 9 +++--- .../icon.svg | 4 +++ .../index.md | 1 + .../index.md | 9 +++--- .../icon.svg | 1 + .../index.md | 6 ++-- .../index.md | 6 ++-- .../index.md | 6 ++-- .../index.md | 4 +-- .../index.md | 2 +- .../icon.svg | 6 ++++ .../index.md | 5 ++-- .../logo.svg | 10 +------ .../index.md | 9 +++--- .../index.md | 6 ++-- .../index.md | 6 ++-- .../government-soc-team/icon.svg | 15 ++++++++++ .../government-soc-team/index.md | 8 ++--- .../index.md | 4 +-- .../index.md | 6 ++-- .../icon.svg | 4 +++ .../index.md | 7 +++-- .../index.md | 4 +-- .../index.md | 3 +- .../index.md | 2 +- .../index.md | 4 +-- .../icon.svg | 3 ++ .../index.md | 5 ++-- .../scaling-big-data-operations/index.md | 9 +++--- .../index.md | 6 ++-- .../index.md | 8 ++--- .../index.md | 6 ++-- .../index.md | 6 ++-- src/pages/customers/index.astro | 22 ++++++++++---- src/type.d.ts | 1 + 47 files changed, 190 insertions(+), 125 deletions(-) create mode 100644 src/contents/customer-stories/apple-ml-team-orchestrates-large-scale-data-pipelines-with-kestra/icon.svg create mode 100644 src/contents/customer-stories/boosted-productivity-slashed-costs-and-accelerated-delivery/icon.svg create mode 100644 src/contents/customer-stories/displayce-optimized-workflow-orchestration-and-enhanced-data-management/icon.svg create mode 100644 src/contents/customer-stories/government-soc-team/icon.svg create mode 100644 src/contents/customer-stories/modernizing-mission-critical-workflows-in-a-highly-regulated-environment/icon.svg create mode 100644 src/contents/customer-stories/riverside-orchestrates-dbt-cloud-analytics-stack-with-kestra/icon.svg diff --git a/src/components/stories/Card.vue b/src/components/stories/Card.vue index 2966ae1d399..e1618bc2d3e 100644 --- a/src/components/stories/Card.vue +++ b/src/components/stories/Card.vue @@ -1,6 +1,9 @@ {{ story.industry }} +
+ {{ story.industry }} + {{ story.industry2 }} +
diff --git a/src/components/stories/Sidebar.vue b/src/components/stories/Sidebar.vue index 93ea68a292c..80b76a578af 100644 --- a/src/components/stories/Sidebar.vue +++ b/src/components/stories/Sidebar.vue @@ -2,8 +2,8 @@