This is an automated email from the ASF dual-hosted git repository.

zkaoudi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-wayang-website.git


The following commit(s) were added to refs/heads/main by this push:
     new 7544f69b updated technical SEO and EAAT, added community page to add 
external blogs for authority push (#108)
7544f69b is described below

commit 7544f69b9bd4eb9dfa6eda7c6b2baf7986915d48
Author: Alexander Alten <[email protected]>
AuthorDate: Mon Dec 8 13:20:55 2025 +0100

    updated technical SEO and EAAT, added community page to add external blogs 
for authority push (#108)
    
    * security page
    
    * Updated OG schema to show the correct tagline in short links, added a 
community page to link to external resources to estalish EAAT in SEO, added an 
external blog article to get external signals
---
 docs/community/contribute.md |  2 +-
 docs/community/resources.md  | 23 +++++++++++++
 docusaurus.config.ts         | 11 +++++-
 src/pages/index.tsx          | 80 ++++++++++++++++++++++++++++++++++++++++++--
 4 files changed, 112 insertions(+), 4 deletions(-)

diff --git a/docs/community/contribute.md b/docs/community/contribute.md
index bfeb169d..01281bf4 100644
--- a/docs/community/contribute.md
+++ b/docs/community/contribute.md
@@ -236,4 +236,4 @@ This code is not exhaustive or complete. It serves to 
distill our common underst
 
 For more information and specific guidelines, refer to the Apache Software 
Foundation Code of Conduct. 
 
-This guide was originally released by [Apache 
Spark](https://spark.apache.org/contributing.html), the Apache Wayang project 
adapted the guide.
\ No newline at end of file
+This guide was originally released by [Apache 
Spark](https://spark.apache.org/contributing.html), the Apache Wayang project 
adapted the guide.
diff --git a/docs/community/resources.md b/docs/community/resources.md
new file mode 100644
index 00000000..53315a97
--- /dev/null
+++ b/docs/community/resources.md
@@ -0,0 +1,23 @@
+---
+id: resources
+title: Community Resources & External Coverage
+sidebar_position: 8
+---
+
+Apache Wayang thrives because of the conversations, field notes, and 
benchmarks that the community shares publicly. To anchor every new visitor in 
our core story, treat [What is Wayang?](/docs/introduction/about) as the 
**pillar page** for everything related to distributed and federated data 
processing with Wayang.
+
+Use the curated resources below to discover third‑party perspectives, then 
jump back to the pillar page whenever you need the full technical scope.
+
+## External Articles & Mentions
+
+- [What are the performance implications of multi-engine data 
processing?](https://www.novatechflow.com/2025/06/what-are-performance-implications-of.html)
 — Novatech Flow (Jun 2025). A practitioner’s view on how Apache Wayang 
coordinates distributed engines without sacrificing performance, featuring 
federated compute patterns and tuning advice.
+
+## Suggest a Resource
+
+Have you written or found a thoughtful deep dive about Apache Wayang? Open an 
issue or PR on [the website 
repo](https://github.com/apache/incubator-wayang-website) with the link and a 
1–2 sentence description. We prioritize pieces that:
+
+- Explain cross-platform or federated computing scenarios powered by Wayang
+- Include benchmark data, architectural diagrams, or lessons learned from 
production usage
+- Link back to the pillar page or other official docs so readers can explore 
the project further
+
+Including high-quality external references alongside the official 
documentation helps search engines and AI assistants understand how the 
community uses Apache Wayang in the broader distributed computing ecosystem.
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 15d7c8bb..7b18ae9c 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -3,7 +3,7 @@ import type {Config} from '@docusaurus/types';
 import type * as Preset from '@docusaurus/preset-classic';
 
 const config: Config = {
-  title: 'Apache Wayang™',
+title: 'Apache Wayang™',
   tagline: 'Unifying Data Processing Engines for Cross-Platform Analytics',
   favicon: 'img/wayang-logo.jpg',
 
@@ -93,6 +93,11 @@ const config: Config = {
               label: 'Blog',
               to: '/blog/',
             },
+            {
+              type: 'doc',
+              docId: 'community/resources',
+              label: 'Community Resources',
+            },
             {
               type: 'docSidebar',
               sidebarId: 'communitySidebar',
@@ -178,6 +183,10 @@ const config: Config = {
         {
           title: 'Documentation',
           items: [
+            {
+              label: 'What is Wayang?',
+              to: '/docs/introduction/about',
+            },
             {
               label: 'Install',
               to: '/docs/start/download',
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
index ffaa0cfb..5eb33c10 100644
--- a/src/pages/index.tsx
+++ b/src/pages/index.tsx
@@ -1,4 +1,6 @@
 import clsx from 'clsx';
+import {useMemo} from 'react';
+import Head from '@docusaurus/Head';
 import Link from '@docusaurus/Link';
 import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
 import Layout from '@theme/Layout';
@@ -7,6 +9,8 @@ import Heading from '@theme/Heading';
 
 import styles from './index.module.css';
 
+const OG_TITLE = 'Apache Wayang | Cross-Platform Data Processing';
+
 function HomepageHeader() {
   const {siteConfig} = useDocusaurusContext();
   return (
@@ -34,11 +38,83 @@ function HomepageHeader() {
 
 export default function Home(): JSX.Element {
   const {siteConfig} = useDocusaurusContext();
+  const structuredData = useMemo(
+    () => ({
+      '@context': 'https://schema.org',
+      '@graph': [
+        {
+          '@type': 'Organization',
+          '@id': 'https://wayang.apache.org/#organization',
+          name: 'Apache Wayang',
+          alternateName: 'Wayang',
+          url: 'https://wayang.apache.org/',
+          slogan: siteConfig.tagline,
+          logo: 'https://wayang.apache.org/img/wayang.png',
+          sameAs: [
+            'https://github.com/apache/incubator-wayang',
+            'https://www.youtube.com/@apachewayang',
+            'https://www.linkedin.com/company/apachewayang',
+            'https://twitter.com/apachewayang',
+            'https://www.reddit.com/r/ApacheWayang',
+          ],
+          parentOrganization: {
+            '@type': 'Organization',
+            name: 'The Apache Software Foundation',
+            url: 'https://www.apache.org/',
+          },
+        },
+        {
+          '@type': 'WebSite',
+          '@id': 'https://wayang.apache.org/#website',
+          url: 'https://wayang.apache.org/',
+          name: siteConfig.title,
+          description: siteConfig.tagline,
+          inLanguage: 'en',
+          publisher: {
+            '@id': 'https://wayang.apache.org/#organization',
+          },
+        },
+        {
+          '@type': 'SoftwareApplication',
+          '@id': 'https://wayang.apache.org/#software',
+          name: 'Apache Wayang',
+          applicationCategory: 'DataManagementApplication',
+          description:
+            'Open-source cross-platform data processing engine that unifies 
execution across Apache Spark, Flink, and other backends.',
+          operatingSystem: 'Cross-platform',
+          offers: {
+            '@type': 'Offer',
+            price: '0',
+            priceCurrency: 'USD',
+            availability: 'https://schema.org/InStock',
+          },
+          license: 'https://www.apache.org/licenses/LICENSE-2.0',
+          downloadUrl: 'https://wayang.apache.org/docs/start/download',
+          softwareHelp: {
+            '@type': 'CreativeWork',
+            url: 'https://wayang.apache.org/docs/guide/getting-started',
+          },
+          publisher: {
+            '@id': 'https://wayang.apache.org/#organization',
+          },
+        },
+      ],
+    }),
+    [siteConfig.tagline, siteConfig.title],
+  );
   return (
     <>
       <Layout
-        title={`${siteConfig.title}`}
-        description="@{siteConfig.tagline}">
+        description={siteConfig.tagline}>
+        <Head>
+          <title>{OG_TITLE}</title>
+          <meta property="og:title" content={OG_TITLE} />
+          <meta name="twitter:title" content={OG_TITLE} />
+          <script
+            type="application/ld+json"
+            dangerouslySetInnerHTML={{__html: JSON.stringify(structuredData)}}
+          />
+        </Head>
         <HomepageHeader />
         <main>
           <HomepageFeatures />

Reply via email to