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

zhouyuan pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gluten-site.git


The following commit(s) were added to refs/heads/main by this push:
     new 15edc5fb redesign
15edc5fb is described below

commit 15edc5fb3bf880815612a60b59a1975c5335fedc
Author: Yuan <[email protected]>
AuthorDate: Thu Aug 20 17:42:42 2026 +0100

    redesign
    
    Signed-off-by: Yuan <[email protected]>
---
 .gitignore                                   |   1 +
 404.html                                     |  28 +-
 _config.yml                                  |  16 +-
 _docs/v1.5.0/Configuration.md                |   7 -
 _includes/gluten/footer.html                 |  51 ++
 _includes/gluten/head.html                   |  24 +
 _includes/gluten/navbar.html                 |  42 ++
 _layouts/base.html                           |  36 ++
 _layouts/post.html                           |  17 +-
 _layouts/site-page.html                      |  13 +
 _posts/2024-02-08-welcome-to-jekyll.markdown |  29 --
 about.markdown                               |  19 -
 assets/css/style.css                         | 751 +++++++++++++++++++++++++++
 blog.html                                    |   6 +-
 contact-us.md                                |   2 +-
 contributing.md                              |   2 +-
 downloads.md                                 |   2 +-
 index.html                                   | 204 ++++++++
 index.markdown                               |   6 -
 index.md                                     | 182 -------
 poweredby.md                                 |   2 +-
 references.md                                |   2 +-
 22 files changed, 1165 insertions(+), 277 deletions(-)

diff --git a/.gitignore b/.gitignore
index f40fbd8b..62519cd6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,3 +3,4 @@ _site
 .jekyll-cache
 .jekyll-metadata
 vendor
+.bundle
diff --git a/404.html b/404.html
index d00750a6..e7540019 100644
--- a/404.html
+++ b/404.html
@@ -1,25 +1,13 @@
 ---
 permalink: /404.html
-layout: default
+layout: site-page
+title: Page not found
+nav_exclude: true
+search_exclude: true
 ---
 
-<style type="text/css" media="screen">
-  .container {
-    margin: 10px auto;
-    max-width: 600px;
-    text-align: center;
-  }
-  h1 {
-    margin: 30px 0;
-    font-size: 4em;
-    line-height: 1;
-    letter-spacing: -1px;
-  }
-</style>
-
-<div class="container">
-  <h1>404</h1>
-
-  <p><strong>Gluten Page not found :(</strong></p>
-  <p>The requested gluten webiste's page could not be found.</p>
+<div style="text-align:center;padding:40px 0;">
+  <p style="font-size:1.1rem;"><strong>The requested page could not be 
found.</strong></p>
+  <p>The page you're looking for may have been moved or removed.</p>
+  <p style="margin-top:24px;"><a href="/" class="btn btn-primary" 
style="display:inline-flex;">Back to Home</a></p>
 </div>
diff --git a/_config.yml b/_config.yml
index fe847017..7f57e821 100644
--- a/_config.yml
+++ b/_config.yml
@@ -21,7 +21,7 @@
 title: Apache Gluten
 email: [email protected]
 description:  "Gluten is a middle layer responsible for offloading JVM-based 
SQL engines' execution to native engines."
-baseurl: "/" # the subpath of your site, e.g. /blog
+baseurl: "" # the subpath of your site, e.g. /blog
 domain: apache.org
 url: "https://gluten.apache.org"; # the base hostname & protocol for your site, 
e.g. http://example.com
 twitter_username: jekyllrb
@@ -42,6 +42,20 @@ plugins:
 
 logo: "/assets/images/gluten-logo-blue.png"
 
+# Top navigation links used by the custom site layouts (base/page/post).
+# Docs pages under _docs keep the just-the-docs theme navigation.
+nav_links:
+  - title: Documentation
+    url: https://apache.github.io/gluten/
+  - title: Downloads
+    url: /downloads/
+  - title: Blog
+    url: /blog/
+  - title: Community
+    url: /community/
+  - title: Powered By
+    url: /poweredby/
+
 # Exclude from processing.
 # The following items will not be processed, by default.
 # Any item listed under the `exclude:` key here will be automatically added to
diff --git a/_docs/v1.5.0/Configuration.md b/_docs/v1.5.0/Configuration.md
index f8b0ebbc..868a2cae 100644
--- a/_docs/v1.5.0/Configuration.md
+++ b/_docs/v1.5.0/Configuration.md
@@ -6,13 +6,6 @@ parent: v1.5.0
 ---
 <!-- DO NOT MODIFY THIS FILE DIRECTLY, IT IS AUTO-GENERATED BY 
[org.apache.gluten.config.AllGlutenConfiguration] -->
 
----
-
-layout: page
-title: Configuration
-nav_order: 15
--------------
-
 ## Spark base configurations for Gluten plugin
 
 |              Key              |                  Recommend Setting           
        |                                                                       
                                                                                
                           Description                                          
                                                                                
                                                         |
diff --git a/_includes/gluten/footer.html b/_includes/gluten/footer.html
new file mode 100644
index 00000000..13ed69af
--- /dev/null
+++ b/_includes/gluten/footer.html
@@ -0,0 +1,51 @@
+<footer class="site-footer">
+  <div class="container">
+    <div class="footer-grid">
+      <div class="footer-brand">
+        <a href="/" class="navbar-brand">
+          <img src="/assets/images/gluten-logo-blue.png" alt="Gluten">
+          Apache Gluten
+        </a>
+        <p>A middle layer responsible for offloading JVM-based SQL engines' 
execution to native engines.</p>
+      </div>
+
+      <div class="footer-col">
+        <h4>Project</h4>
+        <ul>
+          <li><a href="https://apache.github.io/gluten/"; target="_blank" 
rel="noopener">Documentation</a></li>
+          <li><a href="/downloads/">Downloads</a></li>
+          <li><a href="/contributing/">Contributing</a></li>
+          <li><a href="/references/">References</a></li>
+          <li><a href="/archives/">Doc Archives</a></li>
+        </ul>
+      </div>
+
+      <div class="footer-col">
+        <h4>Community</h4>
+        <ul>
+          <li><a href="https://github.com/apache/gluten"; target="_blank" 
rel="noopener">GitHub</a></li>
+          <li><a href="mailto:[email protected]";>Mailing List</a></li>
+          <li><a href="https://github.com/apache/gluten/issues"; 
target="_blank" rel="noopener">Issues</a></li>
+          <li><a href="/community/">Community</a></li>
+          <li><a href="/poweredby/">Powered By</a></li>
+        </ul>
+      </div>
+
+      <div class="footer-col">
+        <h4>Apache</h4>
+        <ul>
+          <li><a href="https://www.apache.org/"; target="_blank" 
rel="noopener">Foundation</a></li>
+          <li><a href="https://www.apache.org/licenses/"; target="_blank" 
rel="noopener">License</a></li>
+          <li><a href="https://www.apache.org/security/"; target="_blank" 
rel="noopener">Security</a></li>
+          <li><a 
href="https://privacy.apache.org/policies/privacy-policy-public.html"; 
target="_blank" rel="noopener">Privacy</a></li>
+          <li><a href="https://www.apache.org/foundation/sponsorship.html"; 
target="_blank" rel="noopener">Sponsorship</a></li>
+        </ul>
+      </div>
+    </div>
+
+    <div class="footer-bottom">
+      <p>Copyright &copy; {{ 'now' | date: "%Y" }} The Apache Software 
Foundation, Licensed under the <a 
href="https://www.apache.org/licenses/LICENSE-2.0";>Apache License 2.0</a>.</p>
+      <p>Apache Gluten, Gluten, Apache, the Apache feather logo, and the 
Apache Gluten project logo are either registered trademarks or trademarks of 
The Apache Software Foundation.</p>
+    </div>
+  </div>
+</footer>
diff --git a/_includes/gluten/head.html b/_includes/gluten/head.html
new file mode 100644
index 00000000..b3c0d3b7
--- /dev/null
+++ b/_includes/gluten/head.html
@@ -0,0 +1,24 @@
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1">
+<title>{% if page.title %}{{ page.title }} | {% endif %}{{ site.title 
}}</title>
+<meta name="description" content="{{ page.description | default: 
site.description }}">
+<meta property="og:title" content="{% if page.title %}{{ page.title }} | {% 
endif %}{{ site.title }}">
+<meta property="og:description" content="{{ page.description | default: 
site.description }}">
+<meta property="og:type" content="website">
+<script>
+  /* Apply the saved (or OS-preferred) color scheme before first paint to 
avoid a flash. */
+  (function () {
+    var theme = 'dark';
+    try {
+      theme = localStorage.getItem('gluten-theme') ||
+        (window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' 
: 'dark');
+    } catch (e) {}
+    document.documentElement.setAttribute('data-theme', theme);
+  })();
+</script>
+<link rel="preconnect" href="https://fonts.googleapis.com";>
+<link rel="preconnect" href="https://fonts.gstatic.com"; crossorigin>
+<link 
href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";
 rel="stylesheet">
+<link rel="stylesheet" href="/assets/css/style.css">
+<link rel="icon" href="/assets/images/gluten-logo-blue.png" type="image/png">
+{% feed_meta %}
diff --git a/_includes/gluten/navbar.html b/_includes/gluten/navbar.html
new file mode 100644
index 00000000..acf2673c
--- /dev/null
+++ b/_includes/gluten/navbar.html
@@ -0,0 +1,42 @@
+<nav class="navbar" id="navbar">
+  <div class="container">
+    <a href="/" class="navbar-brand">
+      <img src="/assets/images/gluten-logo-blue.png" alt="Gluten">
+      Apache Gluten
+    </a>
+
+    <ul class="navbar-links" id="navLinks">
+      {% for link in site.nav_links %}
+        <li><a href="{{ link.url }}">{{ link.title }}</a></li>
+      {% endfor %}
+      <li>
+        <div class="asf-dropdown">
+          <button class="asf-dropdown-btn">ASF ▾</button>
+          <div class="asf-dropdown-content">
+            <a href="https://www.apache.org/";>Foundation</a>
+            <a 
href="https://www.apache.org/events/current-event.html";>Events</a>
+            <a href="https://www.apache.org/licenses/";>License</a>
+            <a 
href="https://www.apache.org/foundation/sponsorship.html";>Sponsorship</a>
+            <a href="https://www.apache.org/security/";>Security</a>
+            <a 
href="https://privacy.apache.org/policies/privacy-policy-public.html";>Privacy</a>
+            <a href="https://www.apache.org/foundation/thanks.html";>Thanks</a>
+          </div>
+        </div>
+      </li>
+      <li>
+        <a href="https://github.com/apache/gluten"; class="navbar-github" 
target="_blank" rel="noopener">
+          <svg width="18" height="18" viewBox="0 0 16 16" 
fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 
7.59.4.07.55-.17.55-.38 
0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01
 1.08.58 1.23.82.72 1.21 1.87.87 
2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 
0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 
1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16  [...]
+          GitHub
+        </a>
+      </li>
+      <li>
+        <button class="theme-toggle" id="themeToggle" aria-label="Switch 
between light and dark color scheme" title="Switch color scheme">
+          <svg class="icon-sun" width="16" height="16" viewBox="0 0 24 24" 
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 
stroke-linejoin="round"><circle cx="12" cy="12" r="5"/><line x1="12" y1="1" 
x2="12" y2="3"/><line x1="12" y1="21" x2="12" y2="23"/><line x1="4.22" 
y1="4.22" x2="5.64" y2="5.64"/><line x1="18.36" y1="18.36" x2="19.78" 
y2="19.78"/><line x1="1" y1="12" x2="3" y2="12"/><line x1="21" y1="12" x2="23" 
y2="12"/><line x1="4.22" y1="19.78" x2="5.64" y [...]
+          <svg class="icon-moon" width="16" height="16" viewBox="0 0 24 24" 
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" 
stroke-linejoin="round"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 
12.79z"/></svg>
+        </button>
+      </li>
+    </ul>
+
+    <button class="nav-toggle" id="navToggle" aria-label="Toggle 
navigation">☰</button>
+  </div>
+</nav>
diff --git a/_layouts/base.html b/_layouts/base.html
new file mode 100644
index 00000000..9f9f258a
--- /dev/null
+++ b/_layouts/base.html
@@ -0,0 +1,36 @@
+<!DOCTYPE html>
+<html lang="en">
+<head>
+  {% include gluten/head.html %}
+</head>
+<body>
+  {% include gluten/navbar.html %}
+
+  <main>
+    {{ content }}
+  </main>
+
+  {% include gluten/footer.html %}
+
+  <script>
+    (function () {
+      var toggle = document.getElementById('navToggle');
+      var links = document.getElementById('navLinks');
+      if (toggle && links) {
+        toggle.addEventListener('click', function () {
+          links.classList.toggle('active');
+        });
+      }
+
+      var themeToggle = document.getElementById('themeToggle');
+      if (themeToggle) {
+        themeToggle.addEventListener('click', function () {
+          var next = document.documentElement.getAttribute('data-theme') === 
'light' ? 'dark' : 'light';
+          document.documentElement.setAttribute('data-theme', next);
+          try { localStorage.setItem('gluten-theme', next); } catch (e) {}
+        });
+      }
+    })();
+  </script>
+</body>
+</html>
diff --git a/_layouts/post.html b/_layouts/post.html
index fdcc889f..f1b22ff6 100644
--- a/_layouts/post.html
+++ b/_layouts/post.html
@@ -1,7 +1,14 @@
 ---
-layout: default
+layout: base
 ---
-<h1>{{ page.title }}</h1>
-<p>{{ page.date | date_to_string }} - {{ page.author }}</p>
-
-{{ content }}
+<div class="page-wrapper">
+  <div class="container">
+    <div class="page-header">
+      <h1>{{ page.title }}</h1>
+      <p class="post-meta">{{ page.date | date: "%B %-d, %Y" }}{% if 
page.author %} · {{ page.author }}{% endif %}</p>
+    </div>
+    <div class="page-content">
+      {{ content }}
+    </div>
+  </div>
+</div>
diff --git a/_layouts/site-page.html b/_layouts/site-page.html
new file mode 100644
index 00000000..857dcbdc
--- /dev/null
+++ b/_layouts/site-page.html
@@ -0,0 +1,13 @@
+---
+layout: base
+---
+<div class="page-wrapper">
+  <div class="container">
+    <div class="page-header">
+      <h1>{{ page.title }}</h1>
+    </div>
+    <div class="page-content">
+      {{ content }}
+    </div>
+  </div>
+</div>
diff --git a/_posts/2024-02-08-welcome-to-jekyll.markdown 
b/_posts/2024-02-08-welcome-to-jekyll.markdown
deleted file mode 100644
index f4f77e47..00000000
--- a/_posts/2024-02-08-welcome-to-jekyll.markdown
+++ /dev/null
@@ -1,29 +0,0 @@
----
-layout: post
-title:  "Welcome to Jekyll!"
-date:   2024-02-08 16:04:00 +0800
-categories: jekyll update
----
-You’ll find this post in your `_posts` directory. Go ahead and edit it and 
re-build the site to see your changes. You can rebuild the site in many 
different ways, but the most common way is to run `jekyll serve`, which 
launches a web server and auto-regenerates your site when a file is updated.
-
-Jekyll requires blog post files to be named according to the following format:
-
-`YEAR-MONTH-DAY-title.MARKUP`
-
-Where `YEAR` is a four-digit number, `MONTH` and `DAY` are both two-digit 
numbers, and `MARKUP` is the file extension representing the format used in the 
file. After that, include the necessary front matter. Take a look at the source 
for this post to get an idea about how it works.
-
-Jekyll also offers powerful support for code snippets:
-
-{% highlight ruby %}
-def print_hi(name)
-  puts "Hi, #{name}"
-end
-print_hi('Tom')
-#=> prints 'Hi, Tom' to STDOUT.
-{% endhighlight %}
-
-Check out the [Jekyll docs][jekyll-docs] for more info on how to get the most 
out of Jekyll. File all bugs/feature requests at [Jekyll’s GitHub 
repo][jekyll-gh]. If you have questions, you can ask them on [Jekyll 
Talk][jekyll-talk].
-
-[jekyll-docs]: https://jekyllrb.com/docs/home
-[jekyll-gh]:   https://github.com/jekyll/jekyll
-[jekyll-talk]: https://talk.jekyllrb.com/
diff --git a/about.markdown b/about.markdown
deleted file mode 100644
index b27b579d..00000000
--- a/about.markdown
+++ /dev/null
@@ -1,19 +0,0 @@
----
-layout: page
-title: About
-nav_order: 11
-permalink: /about/
----
-
-This is the base Jekyll theme. You can find out more info about customizing 
your Jekyll theme, as well as basic Jekyll usage documentation at 
[jekyllrb.com](https://jekyllrb.com/)
-
-You can find the source code for Minima at GitHub:
-[jekyll][jekyll-organization] /
-[minima](https://github.com/jekyll/minima)
-
-You can find the source code for Jekyll at GitHub:
-[jekyll][jekyll-organization] /
-[jekyll](https://github.com/jekyll/jekyll)
-
-
-[jekyll-organization]: https://github.com/jekyll
diff --git a/assets/css/style.css b/assets/css/style.css
new file mode 100644
index 00000000..6789ea81
--- /dev/null
+++ b/assets/css/style.css
@@ -0,0 +1,751 @@
+/* ========================================
+   Apache Gluten — vllm.ai-inspired theme
+   ======================================== */
+
+/* ---------- Reset & Base ---------- */
+*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
+
+:root {
+  --max-width:     1200px;
+  --nav-height:    64px;
+  --radius:        12px;
+  --font-sans:     'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 
Roboto, sans-serif;
+  --font-mono:     'JetBrains Mono', 'Fira Code', monospace;
+}
+
+/* Dark scheme (default) */
+:root,
+html[data-theme="dark"] {
+  color-scheme: dark;
+  --bg-primary:    #0b0f1a;
+  --bg-secondary:  #111827;
+  --bg-card:       #1a2235;
+  --bg-card-hover: #222d42;
+  --text-primary:  #f1f5f9;
+  --text-secondary:#94a3b8;
+  --accent:        #6366f1;
+  --accent-light:  #818cf8;
+  --accent-glow:   rgba(99,102,241,0.25);
+  --border:        #1e293b;
+  --gradient-hero: linear-gradient(135deg, #0b0f1a 0%, #1e1b4b 50%, #0b0f1a 
100%);
+  --navbar-bg:     rgba(11,15,26,0.85);
+  --hero-title-start: #ffffff;
+  --link-hover:    #a5b4fc;
+  --dropdown-shadow: 0 8px 32px rgba(0,0,0,0.4);
+}
+
+/* Light scheme */
+html[data-theme="light"] {
+  color-scheme: light;
+  --bg-primary:    #ffffff;
+  --bg-secondary:  #f4f6fa;
+  --bg-card:       #ffffff;
+  --bg-card-hover: #f8fafc;
+  --text-primary:  #0f172a;
+  --text-secondary:#475569;
+  --accent:        #4f46e5;
+  --accent-light:  #4f46e5;
+  --accent-glow:   rgba(79,70,229,0.15);
+  --border:        #e2e8f0;
+  --gradient-hero: linear-gradient(135deg, #f8fafc 0%, #e0e7ff 50%, #f8fafc 
100%);
+  --navbar-bg:     rgba(255,255,255,0.85);
+  --hero-title-start: #0f172a;
+  --link-hover:    #3730a3;
+  --dropdown-shadow: 0 8px 32px rgba(15,23,42,0.15);
+}
+
+html { scroll-behavior: smooth; font-size: 16px; }
+
+body {
+  font-family: var(--font-sans);
+  background: var(--bg-primary);
+  color: var(--text-primary);
+  line-height: 1.7;
+  -webkit-font-smoothing: antialiased;
+  transition: background .25s, color .25s;
+}
+
+a { color: var(--accent-light); text-decoration: none; transition: color .2s; }
+a:hover { color: var(--link-hover); }
+
+img { max-width: 100%; height: auto; }
+
+/* ---------- Utility ---------- */
+.container { max-width: var(--max-width); margin: 0 auto; padding: 0 24px; }
+.section   { padding: 80px 0; }
+.section-alt { background: var(--bg-secondary); }
+.text-center { text-align: center; }
+.text-secondary { color: var(--text-secondary); }
+
+.section-title {
+  font-size: 2.25rem;
+  font-weight: 700;
+  margin-bottom: 16px;
+  letter-spacing: -0.02em;
+}
+
+.section-subtitle {
+  font-size: 1.125rem;
+  color: var(--text-secondary);
+  max-width: 640px;
+  margin: 0 auto 48px;
+}
+
+/* ---------- Navbar ---------- */
+.navbar {
+  position: fixed;
+  top: 0; left: 0; right: 0;
+  height: var(--nav-height);
+  background: var(--navbar-bg);
+  backdrop-filter: blur(12px);
+  -webkit-backdrop-filter: blur(12px);
+  border-bottom: 1px solid var(--border);
+  z-index: 1000;
+  display: flex;
+  align-items: center;
+}
+
+.navbar .container {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  width: 100%;
+}
+
+.navbar-brand {
+  display: flex;
+  align-items: center;
+  gap: 10px;
+  font-weight: 700;
+  font-size: 1.2rem;
+  color: var(--text-primary);
+}
+
+/* The logo image includes a dark wordmark that is invisible on the dark
+   theme, so crop to the square glyph on the left. */
+.navbar-brand img {
+  height: 32px;
+  width: 32px;
+  object-fit: cover;
+  object-position: left center;
+}
+
+.navbar-links {
+  display: flex;
+  align-items: center;
+  gap: 28px;
+  list-style: none;
+}
+
+.navbar-links a {
+  color: var(--text-secondary);
+  font-size: 0.9rem;
+  font-weight: 500;
+  transition: color .2s;
+}
+
+.navbar-links a:hover { color: var(--text-primary); }
+
+.navbar-github {
+  display: inline-flex;
+  align-items: center;
+  gap: 6px;
+  padding: 6px 14px;
+  border: 1px solid var(--border);
+  border-radius: 8px;
+  font-size: 0.85rem;
+  color: var(--text-secondary);
+  transition: border-color .2s, color .2s;
+}
+
+.navbar-github:hover {
+  border-color: var(--accent);
+  color: var(--text-primary);
+}
+
+/* Theme (light/dark) toggle */
+.theme-toggle {
+  display: inline-flex;
+  align-items: center;
+  justify-content: center;
+  width: 34px;
+  height: 34px;
+  background: none;
+  border: 1px solid var(--border);
+  border-radius: 8px;
+  color: var(--text-secondary);
+  cursor: pointer;
+  transition: border-color .2s, color .2s;
+}
+
+.theme-toggle:hover {
+  border-color: var(--accent);
+  color: var(--text-primary);
+}
+
+/* Show the icon of the scheme you would switch TO */
+html[data-theme="light"] .theme-toggle .icon-sun { display: none; }
+html[data-theme="dark"] .theme-toggle .icon-moon { display: none; }
+:root:not([data-theme="light"]) .theme-toggle .icon-moon { display: none; }
+
+/* Mobile nav toggle */
+.nav-toggle {
+  display: none;
+  background: none;
+  border: none;
+  color: var(--text-primary);
+  font-size: 1.5rem;
+  cursor: pointer;
+}
+
+/* ---------- Hero ---------- */
+.hero {
+  min-height: clamp(520px, 85vh, 820px);
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  text-align: center;
+  background: var(--gradient-hero);
+  padding: calc(var(--nav-height) + 48px) 0 64px;
+  position: relative;
+  overflow: hidden;
+}
+
+.hero::before {
+  content: '';
+  position: absolute;
+  width: 600px; height: 600px;
+  background: radial-gradient(circle, var(--accent-glow) 0%, transparent 70%);
+  top: 50%; left: 50%;
+  transform: translate(-50%, -50%);
+  pointer-events: none;
+}
+
+.hero-content { position: relative; z-index: 1; max-width: 820px; padding: 0 
24px; }
+
+.hero-badge {
+  display: inline-block;
+  padding: 6px 16px;
+  background: rgba(99,102,241,0.15);
+  border: 1px solid rgba(99,102,241,0.3);
+  border-radius: 999px;
+  font-size: 0.85rem;
+  color: var(--accent-light);
+  margin-bottom: 24px;
+}
+
+.hero h1 {
+  font-size: 3.75rem;
+  font-weight: 800;
+  line-height: 1.1;
+  letter-spacing: -0.03em;
+  margin-bottom: 24px;
+  background: linear-gradient(135deg, var(--hero-title-start) 30%, 
var(--accent-light));
+  -webkit-background-clip: text;
+  -webkit-text-fill-color: transparent;
+  background-clip: text;
+}
+
+.hero p {
+  font-size: 1.25rem;
+  color: var(--text-secondary);
+  margin-bottom: 40px;
+  max-width: 600px;
+  margin-left: auto;
+  margin-right: auto;
+}
+
+.hero-buttons { display: flex; gap: 16px; justify-content: center; flex-wrap: 
wrap; }
+
+.btn {
+  display: inline-flex;
+  align-items: center;
+  gap: 8px;
+  padding: 12px 28px;
+  border-radius: 10px;
+  font-weight: 600;
+  font-size: 1rem;
+  transition: transform .15s, box-shadow .2s;
+  cursor: pointer;
+  border: none;
+}
+
+.btn:hover { transform: translateY(-2px); }
+
+.btn-primary {
+  background: var(--accent);
+  color: #fff;
+  box-shadow: 0 4px 24px var(--accent-glow);
+}
+.btn-primary:hover { background: var(--accent-light); color: #fff; }
+
+.btn-secondary {
+  background: transparent;
+  color: var(--text-primary);
+  border: 1px solid var(--border);
+}
+.btn-secondary:hover { border-color: var(--accent); color: 
var(--accent-light); }
+
+/* ---------- Features ---------- */
+.features-grid {
+  display: grid;
+  grid-template-columns: repeat(3, 1fr);
+  gap: 24px;
+}
+
+.feature-card {
+  background: var(--bg-card);
+  border: 1px solid var(--border);
+  border-radius: var(--radius);
+  padding: 32px 28px;
+  transition: border-color .25s, transform .25s, box-shadow .25s;
+}
+
+.feature-card:hover {
+  border-color: var(--accent);
+  transform: translateY(-4px);
+  box-shadow: 0 8px 32px var(--accent-glow);
+}
+
+.feature-icon {
+  width: 48px; height: 48px;
+  display: flex; align-items: center; justify-content: center;
+  background: rgba(99,102,241,0.12);
+  border-radius: 10px;
+  margin-bottom: 20px;
+  font-size: 1.5rem;
+}
+
+.feature-card h3 {
+  font-size: 1.15rem;
+  font-weight: 600;
+  margin-bottom: 10px;
+}
+
+.feature-card p {
+  color: var(--text-secondary);
+  font-size: 0.95rem;
+  line-height: 1.6;
+}
+
+/* ---------- Stats bar ---------- */
+.stats {
+  display: flex;
+  justify-content: center;
+  gap: 64px;
+  flex-wrap: wrap;
+  padding: 48px 0;
+}
+
+.stat-item { text-align: center; }
+
+.stat-number {
+  font-size: 2.75rem;
+  font-weight: 800;
+  color: var(--accent-light);
+  letter-spacing: -0.02em;
+}
+
+.stat-label {
+  font-size: 0.9rem;
+  color: var(--text-secondary);
+  margin-top: 4px;
+}
+
+/* ---------- Architecture ---------- */
+.architecture-img {
+  max-width: 860px;
+  margin: 0 auto;
+  display: block;
+  border-radius: var(--radius);
+  border: 1px solid var(--border);
+}
+
+/* ---------- Performance ---------- */
+.perf-grid {
+  display: grid;
+  grid-template-columns: repeat(2, 1fr);
+  gap: 32px;
+  margin-top: 32px;
+}
+
+.perf-card {
+  background: var(--bg-card);
+  border: 1px solid var(--border);
+  border-radius: var(--radius);
+  overflow: hidden;
+}
+
+.perf-card img {
+  width: 100%;
+  display: block;
+}
+
+.perf-card .perf-caption {
+  padding: 16px 20px;
+  font-size: 0.9rem;
+  color: var(--text-secondary);
+}
+
+/* ---------- Powered By / Logos ---------- */
+.logo-grid {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: center;
+  gap: 32px 48px;
+  margin-top: 40px;
+}
+
+.logo-grid span {
+  font-size: 1.1rem;
+  font-weight: 600;
+  color: var(--text-secondary);
+  padding: 12px 24px;
+  border: 1px solid var(--border);
+  border-radius: 8px;
+  transition: border-color .2s, color .2s;
+}
+
+.logo-grid span:hover {
+  border-color: var(--accent);
+  color: var(--text-primary);
+}
+
+/* ---------- CTA banner ---------- */
+.cta-banner {
+  text-align: center;
+  padding: 80px 24px;
+  background: var(--gradient-hero);
+  position: relative;
+}
+
+.cta-banner h2 {
+  font-size: 2.5rem;
+  font-weight: 700;
+  margin-bottom: 16px;
+}
+
+.cta-banner p {
+  color: var(--text-secondary);
+  font-size: 1.1rem;
+  margin-bottom: 32px;
+}
+
+/* ---------- Footer ---------- */
+.site-footer {
+  background: var(--bg-secondary);
+  border-top: 1px solid var(--border);
+  padding: 48px 0 32px;
+}
+
+.footer-grid {
+  display: grid;
+  grid-template-columns: 2fr 1fr 1fr 1fr;
+  gap: 40px;
+  margin-bottom: 40px;
+}
+
+.footer-brand p {
+  color: var(--text-secondary);
+  font-size: 0.9rem;
+  margin-top: 12px;
+  max-width: 300px;
+}
+
+.footer-col h4 {
+  font-size: 0.85rem;
+  font-weight: 600;
+  text-transform: uppercase;
+  letter-spacing: 0.06em;
+  color: var(--text-secondary);
+  margin-bottom: 16px;
+}
+
+.footer-col ul { list-style: none; }
+
+.footer-col li { margin-bottom: 10px; }
+
+.footer-col a {
+  color: var(--text-secondary);
+  font-size: 0.9rem;
+}
+.footer-col a:hover { color: var(--text-primary); }
+
+.footer-bottom {
+  border-top: 1px solid var(--border);
+  padding-top: 24px;
+  display: flex;
+  justify-content: space-between;
+  flex-wrap: wrap;
+  gap: 12px;
+}
+
+.footer-bottom p {
+  color: var(--text-secondary);
+  font-size: 0.8rem;
+}
+
+.footer-bottom a { color: var(--text-secondary); }
+.footer-bottom a:hover { color: var(--text-primary); }
+
+/* ---------- Page content (docs/blog/etc) ---------- */
+.page-wrapper {
+  padding-top: calc(var(--nav-height) + 48px);
+  padding-bottom: 80px;
+  min-height: 70vh;
+}
+
+.page-wrapper .container { max-width: 860px; }
+
+.page-header {
+  margin-bottom: 40px;
+  padding-bottom: 24px;
+  border-bottom: 1px solid var(--border);
+}
+
+.page-header h1 {
+  font-size: 2.5rem;
+  font-weight: 700;
+  letter-spacing: -0.02em;
+}
+
+.page-content h1,
+.page-content h2,
+.page-content h3,
+.page-content h4 {
+  margin-top: 2em;
+  margin-bottom: 0.75em;
+  font-weight: 600;
+}
+
+.page-content h1 { font-size: 2rem; }
+.page-content h2 { font-size: 1.5rem; border-bottom: 1px solid var(--border); 
padding-bottom: 8px; }
+.page-content h3 { font-size: 1.2rem; }
+
+.page-content p  { margin-bottom: 1em; color: var(--text-secondary); }
+.page-content li { color: var(--text-secondary); margin-bottom: 4px; }
+
+.page-content ul,
+.page-content ol {
+  margin-left: 24px;
+  margin-bottom: 1em;
+}
+
+.page-content code {
+  background: var(--bg-card);
+  padding: 2px 6px;
+  border-radius: 4px;
+  font-family: var(--font-mono);
+  font-size: 0.9em;
+}
+
+.page-content pre {
+  background: var(--bg-card);
+  border: 1px solid var(--border);
+  border-radius: 8px;
+  padding: 20px;
+  overflow-x: auto;
+  margin-bottom: 1.5em;
+}
+
+.page-content pre code {
+  background: none;
+  padding: 0;
+}
+
+.page-content table {
+  width: 100%;
+  border-collapse: collapse;
+  margin-bottom: 1.5em;
+  font-size: 0.9rem;
+}
+
+.page-content th {
+  background: var(--bg-card);
+  padding: 10px 14px;
+  text-align: left;
+  font-weight: 600;
+  border-bottom: 2px solid var(--border);
+}
+
+.page-content td {
+  padding: 10px 14px;
+  border-bottom: 1px solid var(--border);
+  color: var(--text-secondary);
+}
+
+.page-content img {
+  border-radius: 8px;
+  border: 1px solid var(--border);
+  margin: 16px 0;
+}
+
+.page-content blockquote {
+  border-left: 3px solid var(--accent);
+  margin: 1em 0;
+  padding: 12px 20px;
+  background: var(--bg-card);
+  border-radius: 0 8px 8px 0;
+}
+
+.page-content blockquote p { margin-bottom: 0; }
+
+.page-content strong { color: var(--text-primary); }
+
+/* ---------- Blog list ---------- */
+.blog-list { list-style: none; }
+
+.blog-list li {
+  padding: 20px 0;
+  border-bottom: 1px solid var(--border);
+}
+
+.blog-list h2 { font-size: 1.3rem; margin: 0 0 8px; border: none; padding: 0; }
+.blog-list h2 a { color: var(--text-primary); }
+.blog-list h2 a:hover { color: var(--accent-light); }
+
+/* ---------- ASF dropdown (simplified for new theme) ---------- */
+.asf-dropdown {
+  position: relative;
+  display: inline-block;
+}
+
+.asf-dropdown-btn {
+  background: none;
+  border: 1px solid var(--border);
+  color: var(--text-secondary);
+  padding: 6px 14px;
+  border-radius: 8px;
+  font-size: 0.85rem;
+  cursor: pointer;
+  font-family: var(--font-sans);
+  transition: border-color .2s;
+}
+
+.asf-dropdown-btn:hover { border-color: var(--accent); color: 
var(--text-primary); }
+
+.asf-dropdown-content {
+  display: none;
+  position: absolute;
+  right: 0;
+  top: calc(100% + 4px);
+  background: var(--bg-card);
+  border: 1px solid var(--border);
+  border-radius: 8px;
+  min-width: 180px;
+  box-shadow: var(--dropdown-shadow);
+  z-index: 100;
+  overflow: hidden;
+}
+
+.asf-dropdown:hover .asf-dropdown-content { display: block; }
+
+.asf-dropdown-content a {
+  display: block;
+  padding: 10px 16px;
+  color: var(--text-secondary);
+  font-size: 0.85rem;
+  transition: background .15s;
+}
+
+.asf-dropdown-content a:hover {
+  background: var(--bg-card-hover);
+  color: var(--text-primary);
+}
+
+/* ---------- Code block (homepage) ---------- */
+.code-block {
+  max-width: 760px;
+  margin: 0 auto;
+  text-align: left;
+}
+
+.code-block pre {
+  background: var(--bg-card);
+  border: 1px solid var(--border);
+  border-radius: var(--radius);
+  padding: 24px;
+  overflow-x: auto;
+}
+
+.code-block code {
+  font-family: var(--font-mono);
+  font-size: 0.875rem;
+  line-height: 1.7;
+  color: var(--text-primary);
+}
+
+/* ---------- News cards ---------- */
+.news-grid {
+  display: grid;
+  grid-template-columns: repeat(3, 1fr);
+  gap: 24px;
+  text-align: left;
+}
+
+.news-card {
+  display: block;
+  background: var(--bg-card);
+  border: 1px solid var(--border);
+  border-radius: var(--radius);
+  padding: 28px 24px;
+  transition: border-color .25s, transform .25s, box-shadow .25s;
+}
+
+.news-card:hover {
+  border-color: var(--accent);
+  transform: translateY(-4px);
+  box-shadow: 0 8px 32px var(--accent-glow);
+}
+
+.news-card .news-date {
+  font-size: 0.8rem;
+  color: var(--text-secondary);
+  margin-bottom: 10px;
+}
+
+.news-card h3 {
+  font-size: 1.05rem;
+  font-weight: 600;
+  color: var(--text-primary);
+  line-height: 1.5;
+}
+
+/* ---------- Post meta ---------- */
+.post-meta {
+  color: var(--text-secondary);
+  font-size: 0.9rem;
+  margin-top: 8px;
+}
+
+/* ---------- Responsive ---------- */
+@media (max-width: 960px) {
+  .features-grid { grid-template-columns: repeat(2, 1fr); }
+  .footer-grid   { grid-template-columns: 1fr 1fr; }
+  .hero h1       { font-size: 2.75rem; }
+  .perf-grid     { grid-template-columns: 1fr; }
+  .news-grid     { grid-template-columns: 1fr; }
+}
+
+@media (max-width: 640px) {
+  .features-grid { grid-template-columns: 1fr; }
+  .footer-grid   { grid-template-columns: 1fr; }
+  .stats         { gap: 32px; }
+  .hero h1       { font-size: 2rem; }
+  .section-title { font-size: 1.75rem; }
+
+  .navbar-links  { display: none; }
+  .nav-toggle    { display: block; }
+
+  .navbar-links.active {
+    display: flex;
+    flex-direction: column;
+    position: absolute;
+    top: var(--nav-height);
+    left: 0; right: 0;
+    background: var(--bg-primary);
+    border-bottom: 1px solid var(--border);
+    padding: 16px 24px;
+    gap: 16px;
+  }
+}
\ No newline at end of file
diff --git a/blog.html b/blog.html
index 85419b44..37bba8f8 100644
--- a/blog.html
+++ b/blog.html
@@ -1,15 +1,15 @@
 ---
-layout: default
+layout: site-page
 title: Blog
 nav_order: 5
 permalink: /blog/
 ---
-<h1>Latest Posts</h1>
 
-<ul>
+<ul class="blog-list">
   {% for post in site.posts %}
     <li>
       <h2><a href="{{ post.url }}">{{ post.title }}</a></h2>
+      <p class="post-meta">{{ post.date | date: "%B %-d, %Y" }}{% if 
post.author %} · {{ post.author }}{% endif %}</p>
       {{ post.excerpt }}
     </li>
   {% endfor %}
diff --git a/contact-us.md b/contact-us.md
index b9232418..55e98bfa 100644
--- a/contact-us.md
+++ b/contact-us.md
@@ -1,5 +1,5 @@
 ---
-layout: page
+layout: site-page
 title: Community
 nav_order: 10
 permalink: /community/
diff --git a/contributing.md b/contributing.md
index e33b9171..5a6701b1 100644
--- a/contributing.md
+++ b/contributing.md
@@ -1,5 +1,5 @@
 ---
-layout: page
+layout: site-page
 title: Contributing to Gluten
 nav_order: 9
 permalink: /contributing/
diff --git a/downloads.md b/downloads.md
index 431b0a59..3a1cb71b 100644
--- a/downloads.md
+++ b/downloads.md
@@ -1,5 +1,5 @@
 ---
-layout: page
+layout: site-page
 title: Downloads
 nav_order: 4
 permalink: /downloads/
diff --git a/index.html b/index.html
new file mode 100644
index 00000000..4cbf55db
--- /dev/null
+++ b/index.html
@@ -0,0 +1,204 @@
+---
+layout: base
+title: Home
+permalink: /
+nav_exclude: true
+description: Apache Gluten is a middle layer that offloads JVM-based SQL 
engines' execution to native engines such as Velox and ClickHouse, doubling 
SparkSQL's performance.
+---
+
+<!-- Hero -->
+<section class="hero">
+  <div class="hero-content">
+    <span class="hero-badge">🚀 Apache Top-Level Project</span>
+    <h1>Supercharge SparkSQL with Native Execution</h1>
+    <p>Apache Gluten is a middle layer that offloads JVM-based SQL engines to 
native engines like Velox and ClickHouse — delivering up to 3x+ performance 
with zero query changes.</p>
+    <div class="hero-buttons">
+      <a href="https://apache.github.io/gluten/"; class="btn btn-primary">Get 
Started</a>
+      <a href="https://github.com/apache/gluten"; class="btn btn-secondary" 
target="_blank" rel="noopener">
+        <svg width="18" height="18" viewBox="0 0 16 16" 
fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 
7.59.4.07.55-.17.55-.38 
0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01
 1.08.58 1.23.82.72 1.21 1.87.87 
2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 
0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 
1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1. [...]
+        View on GitHub
+      </a>
+      <a href="/downloads/" class="btn btn-secondary">Downloads</a>
+    </div>
+  </div>
+</section>
+
+<!-- Stats -->
+<section class="section-alt">
+  <div class="container">
+    <div class="stats">
+      <div class="stat-item">
+        <div class="stat-number">3.3x</div>
+        <div class="stat-label">TPC-H Speedup</div>
+      </div>
+      <div class="stat-item">
+        <div class="stat-number">3.0x</div>
+        <div class="stat-label">TPC-DS Speedup</div>
+      </div>
+      <div class="stat-item">
+        <div class="stat-number">23x</div>
+        <div class="stat-label">Max Single-Query Speedup</div>
+      </div>
+      <div class="stat-item">
+        <div class="stat-number">15+</div>
+        <div class="stat-label">Production Adopters</div>
+      </div>
+    </div>
+  </div>
+</section>
+
+<!-- Features -->
+<section class="section">
+  <div class="container text-center">
+    <h2 class="section-title">Why Gluten?</h2>
+    <p class="section-subtitle">Gluten bridges the gap between Spark's 
scalability and native engine performance — no query changes required.</p>
+    <div class="features-grid">
+      <div class="feature-card">
+        <div class="feature-icon">⚡</div>
+        <h3>Native Execution</h3>
+        <p>Offloads compute-intensive processing from the JVM to highly 
optimized native C++ engines for dramatic speedups.</p>
+      </div>
+      <div class="feature-card">
+        <div class="feature-icon">🔌</div>
+        <h3>Drop-in Plugin</h3>
+        <p>Works as a Spark plugin — no changes to your DataFrames, SQL 
queries, or application code. Just add a JAR.</p>
+      </div>
+      <div class="feature-card">
+        <div class="feature-icon">🔀</div>
+        <h3>Multi-Backend Support</h3>
+        <p>Switch between Velox and ClickHouse backends based on your 
workload. Extensible to support more native engines.</p>
+      </div>
+      <div class="feature-card">
+        <div class="feature-icon">📊</div>
+        <h3>Columnar Processing</h3>
+        <p>End-to-end columnar data pipeline with columnar shuffle, avoiding 
expensive row-columnar conversions.</p>
+      </div>
+      <div class="feature-card">
+        <div class="feature-icon">🛡️</div>
+        <h3>Automatic Fallback</h3>
+        <p>Gracefully falls back to vanilla Spark for unsupported operators, 
ensuring correctness on every query.</p>
+      </div>
+      <div class="feature-card">
+        <div class="feature-icon">📈</div>
+        <h3>Full Observability</h3>
+        <p>Native engine metrics are surfaced in the Spark UI, giving you 
visibility into performance and bottlenecks.</p>
+      </div>
+    </div>
+  </div>
+</section>
+
+<!-- Architecture -->
+<section class="section section-alt">
+  <div class="container text-center">
+    <h2 class="section-title">Architecture</h2>
+    <p class="section-subtitle">Spark physical plans are converted to 
Substrait and executed by native backends, with results returned via the Spark 
Columnar API.</p>
+    <img src="/assets/images/gluten_framework.png" alt="Gluten Architecture" 
class="architecture-img">
+  </div>
+</section>
+
+<!-- Quick Start -->
+<section class="section">
+  <div class="container text-center">
+    <h2 class="section-title">Quick Start</h2>
+    <p class="section-subtitle">Grab a bundle JAR from the <a 
href="/downloads/">downloads page</a> and enable Gluten with a single Spark 
configuration change.</p>
+    <div class="code-block">
+      <pre><code>spark-shell \
+  --master yarn --deploy-mode client \
+  --conf spark.plugins=org.apache.gluten.GlutenPlugin \
+  --conf spark.memory.offHeap.enabled=true \
+  --conf spark.memory.offHeap.size=20g \
+  --conf 
spark.shuffle.manager=org.apache.spark.shuffle.sort.ColumnarShuffleManager \
+  --jars 
gluten-velox-bundle-spark3.5_2.12-centos_7_x86_64-1.6.0.jar</code></pre>
+    </div>
+    <p style="margin-top:24px;"><a href="https://apache.github.io/gluten/"; 
class="btn btn-secondary" style="display:inline-flex;">Read the full 
documentation →</a></p>
+  </div>
+</section>
+
+<!-- Performance -->
+<section class="section section-alt">
+  <div class="container text-center">
+    <h2 class="section-title">Performance</h2>
+    <p class="section-subtitle">Benchmarked on TPC-H and TPC-DS at 3TB scale 
on Intel® Xeon® Platinum 8592+ with Spark 3.3.1.</p>
+    <div class="perf-grid">
+      <div class="perf-card">
+        <img src="/assets/images/velox_tpch-like_sf3000_time_comparison.png" 
alt="TPC-H Time Comparison" loading="lazy">
+        <div class="perf-caption">TPC-H — Overall 3.34x speedup with Gluten + 
Velox</div>
+      </div>
+      <div class="perf-card">
+        <img src="/assets/images/velox_tpch-like_sf3000_speedup.png" 
alt="TPC-H Speedup" loading="lazy">
+        <div class="perf-caption">TPC-H — Up to 23.45x speedup on individual 
queries</div>
+      </div>
+      <div class="perf-card">
+        <img src="/assets/images/velox_tpcds-like_sf3000_time_comparison.png" 
alt="TPC-DS Time Comparison" loading="lazy">
+        <div class="perf-caption">TPC-DS — Overall 3.02x speedup with Gluten + 
Velox</div>
+      </div>
+      <div class="perf-card">
+        <img src="/assets/images/velox_tpcds-like_sf3000_top20_speedup.png" 
alt="TPC-DS Speedup" loading="lazy">
+        <div class="perf-caption">TPC-DS — Up to 13.75x speedup on individual 
queries</div>
+      </div>
+    </div>
+  </div>
+</section>
+
+<!-- Powered By -->
+<section class="section">
+  <div class="container text-center">
+    <h2 class="section-title">Trusted in Production</h2>
+    <p class="section-subtitle">Used by leading technology companies across 
the globe.</p>
+    <div class="logo-grid">
+      <span>Microsoft</span>
+      <span>Google</span>
+      <span>IBM</span>
+      <span>Alibaba Cloud</span>
+      <span>Bytedance</span>
+      <span>Uber</span>
+      <span>Tencent</span>
+      <span>Meituan</span>
+      <span>Baidu</span>
+      <span>Pinterest</span>
+      <span>Oracle</span>
+      <span>Kyligence</span>
+      <span>BIGO</span>
+      <span>Netease</span>
+      <span>Intel</span>
+    </div>
+    <p style="margin-top:32px;"><a href="/poweredby/" class="btn 
btn-secondary" style="display:inline-flex;">View all adopters →</a></p>
+  </div>
+</section>
+
+<!-- Latest News -->
+<section class="section section-alt">
+  <div class="container text-center">
+    <h2 class="section-title">Latest News</h2>
+    <div class="news-grid">
+      {% for post in site.posts limit: 3 %}
+      <a href="{{ post.url }}" class="news-card">
+        <div class="news-date">{{ post.date | date: "%B %-d, %Y" }}</div>
+        <h3>{{ post.title }}</h3>
+      </a>
+      {% endfor %}
+    </div>
+    <p style="margin-top:32px;"><a href="/blog/" class="btn btn-secondary" 
style="display:inline-flex;">All posts →</a></p>
+  </div>
+</section>
+
+<!-- CTA -->
+<section class="cta-banner">
+  <h2>Ready to accelerate your Spark workloads?</h2>
+  <p>Join the community and start using Gluten today.</p>
+  <div class="hero-buttons">
+    <a href="https://apache.github.io/gluten/"; class="btn btn-primary">Read 
the Docs</a>
+    <a href="/community/" class="btn btn-secondary">Join the Community</a>
+  </div>
+</section>
+
+<!-- Contributors -->
+<section class="section section-alt text-center">
+  <div class="container">
+    <h2 class="section-title">Thanks to Our Contributors</h2>
+    <p class="section-subtitle">Gluten is built by a vibrant open-source 
community.</p>
+    <a href="https://github.com/apache/gluten/graphs/contributors"; 
target="_blank" rel="noopener">
+      <img src="/assets/images/gluten_contributors.svg" alt="Contributors" 
loading="lazy" style="max-width:100%;border-radius:12px;">
+    </a>
+  </div>
+</section>
diff --git a/index.markdown b/index.markdown
deleted file mode 100644
index 06715078..00000000
--- a/index.markdown
+++ /dev/null
@@ -1,6 +0,0 @@
----
-# Feel free to add content and custom Front Matter to this file.
-# To modify the layout, see 
https://jekyllrb.com/docs/themes/#overriding-theme-defaults
-
-layout: home
----
diff --git a/index.md b/index.md
deleted file mode 100644
index c528031c..00000000
--- a/index.md
+++ /dev/null
@@ -1,182 +0,0 @@
----
-layout: default
-title: Home
-nav_order: 1
-permalink: /
-description: This site serves as a collection of documentation about the 
Gluten, a plugin to Double SparkSQL's Performance
----
-# Overview
-Apache Gluten is a middle layer responsible for offloading JVM-based SQL 
engines' execution to native engines.
-
-# 1 Introduction
-
-## 1.1 Problem Statement
-
-Apache Spark is a stable, mature project that has been developed for many 
years. It is one of the best frameworks to scale out for processing 
petabyte-scale datasets. However, the Spark community has had to address 
performance challenges that require various optimizations over time. As a key 
optimization in Spark 2.0, Whole Stage Code Generation is introduced to replace 
Volcano Model, which achieves 2x speedup. Henceforth, most optimizations are at 
query plan level. Single operator's per [...]
-
-<p align="center">
-<img src="/assets/images/spark_operator_performance.png" width="800">
-</p>
-
-On the other side, SQL engines have been researched for many years. There are 
a few libraries like Clickhouse, Arrow and Velox, etc. By using features like 
native implementation, columnar data format and vectorized data processing, 
these libraries can outperform Spark's JVM based SQL engine. However, these 
libraries only support single node execution.
-
-## 1.2 Gluten's Solution
-
-“Gluten” is Latin for glue. The main goal of Gluten project is to “glue" 
native libraries with SparkSQL. Thus, we can benefit from high scalability of 
Spark SQL framework and high performance of native libraries.
-
-The basic rule of Gluten's design is that we would reuse spark's whole control 
flow and as many JVM code as possible but offload the compute-intensive data 
processing part to native code. Here is what Gluten does:
-* Transform Spark’s whole stage physical plan to Substrait plan and send to 
native
-* Offload performance-critical data processing to native library
-* Define clear JNI interfaces for native libraries
-* Switch available native backends easily
-* Reuse Spark’s distributed control flow
-* Manage data sharing between JVM and native
-* Extensible to support more native accelerators
-
-## 1.3 Target User
-
-Gluten's target user is anyone who wants to accelerate SparkSQL fundamentally. 
As a plugin to Spark, Gluten doesn't require any change for dataframe API or 
SQL query, but only requires user to make correct configuration.
-See Gluten configuration properties 
[here](https://github.com/apache/gluten/blob/main/docs/Configuration.md).
-
-## 1.4 References
-
-You can click below links for more related information.
-- [Gluten References](/references/)
-
-# 2 Architecture
-
-The overview chart is like below. Substrait provides a well-defined 
cross-language specification for data compute operations (see more details 
[here](https://substrait.io/)). Spark physical plan is transformed to Substrait 
plan. Then Substrait plan is passed to native through JNI call.
-On native side, the native operator chain will be built out and offloaded to 
native engine. Gluten will return Columnar Batch to Spark and Spark Columnar 
API (since Spark-3.0) will be used at execution time. Gluten uses Apache Arrow 
data format as its basic data format, so the returned data to Spark JVM is 
ArrowColumnarBatch.
-<p align="center">
-<img src="/assets/images/gluten_framework.png" width="800">
-</p>
-Currently, Gluten only supports Clickhouse backend & Velox backend. Velox is a 
C++ database acceleration library which provides reusable, extensible and 
high-performance data processing components. More details can be found from 
[here](https://github.com/facebookincubator/velox/). Gluten can also be 
extended to support more backends.
-
-There are several key components in Gluten:
-* **Query Plan Conversion**: converts Spark's physical plan to Substrait plan.
-* **Unified Memory Management**: controls native memory allocation.
-* **Columnar Shuffle**: shuffles Gluten columnar data. The shuffle service 
still reuses the one in Spark core. A kind of columnar exchange operator is 
implemented to support Gluten columnar data format.
-* **Fallback Mechanism**: supports falling back to Vanilla spark for 
unsupported operators. Gluten ColumnarToRow (C2R) and RowToColumnar (R2C) will 
convert Gluten columnar data and Spark's internal row data if needed. Both C2R 
and R2C are implemented in native code as well
-* **Metrics**: collected from Gluten native engine to help identify bugs, 
performance bottlenecks, etc. The metrics are displayed in Spark UI.
-* **Shim Layer**: supports multiple Spark versions. We plan to only support 
Spark's latest 2 or 3 releases. Currently, Spark-3.2, Spark-3.3 & Spark-3.4 
(experimental) are supported.
-
-# 3 How to Use
-
-There are two methods for utilizing Gluten. The first is to use a pre-built 
JAR for a quick test of Gluten's acceleration capabilities. The second is to 
compile the JAR yourself, ensuring it runs on your target platform and delivers 
the best possible performance.
-
-# 3.1 Use a pre-Built Jar
-
-One way is to use released jar. Here is a simple example. Currently, only 
centos7/8 and ubuntu20.04/22.04 are well supported.
-You can find a pre-built gluten release jar in [Apache Gluten 
Download](https://downloads.apache.org/gluten/).
-Please be aware that the pre-built JAR is compiled using static linking via 
vcpkg, based on the Intel® Xeon® Gold 6252 processor.
-It should be compatible with most operating systems, including CentOS and 
Ubuntu, although performance is not guaranteed. 
-For the optimal performance experience, we recommend using the 3.2 Custom 
Build to compile Gluten from source tailored to your specific platform.
-
-```
-spark-shell \
- --master yarn --deploy-mode client \
- --conf spark.plugins=org.apache.gluten.GlutenPlugin \
- --conf spark.memory.offHeap.enabled=true \
- --conf spark.memory.offHeap.size=20g \
- --conf 
spark.shuffle.manager=org.apache.spark.shuffle.sort.ColumnarShuffleManager \
- --jars gluten-velox-bundle-spark3.2_2.12-centos_7_x86_64-1.2.0.jar
-```
-
-# 3.2 Custom Build
-
-To utilize Gluten with Spark, you can compile Gluten from the source and then 
configure it to enable the Gluten plugin. Below is a straightforward example. 
For more comprehensive instructions, please refer to the detailed guidance 
provided in the corresponding backend section.
-
-```
-export gluten_jar = /PATH/TO/GLUTEN/backends-velox/target/<gluten-jar>
-spark-shell \
-  --master yarn --deploy-mode client \
-  --conf spark.plugins=org.apache.gluten.GlutenPlugin \
-  --conf spark.memory.offHeap.enabled=true \
-  --conf spark.memory.offHeap.size=20g \
-  --conf spark.driver.extraClassPath=${gluten_jar} \
-  --conf spark.executor.extraClassPath=${gluten_jar} \
-  --conf 
spark.shuffle.manager=org.apache.spark.shuffle.sort.ColumnarShuffleManager
-  ...
-```
-
-## 3.2.1 Build and install Gluten with Velox backend
-
-If you want to use Gluten **Velox** backend, see [Build with 
Velox](https://apache.github.io/gluten/developers/velox-backend-build-in-docker.html)
 to build and install the necessary libraries.
-You can also find more information in [Gluten with Velox 
backend](https://apache.github.io/gluten/get-started/Velox.html) and 
[velox](https://github.com/facebookincubator/velox).
-
-## 3.2.2 Build and install Gluten with ClickHouse backend
-
-If you want to use Gluten **ClickHouse** backend, see [Build with ClickHouse 
Backend](https://apache.github.io/gluten/get-started/ClickHouse.html).
-ClickHouse backend is developed by [Kyligence](https://kyligence.io/), please 
visit [Kyligence's ClickHouse](https://github.com/Kyligence/ClickHouse) for 
more infomation.
-
-## 3.2.3 Build options
-
-See [Build 
Parameters](https://apache.github.io/gluten/get-started/build-guide.html).
-
-
-# 4 Join the Community
-
-## Contact Us
-
-Gluten was initiated by Intel and Kyligence in 2022. Several companies are 
also actively participating in the development, such as BIGO, Meituan, Alibaba 
Cloud, NetEase, Baidu, Microsoft, etc. If you are interested in Gluten project, 
please contact and subscribe below mailing lists for further discussion.
-
-Please see [contact us](/community/) for more information.
-
-## Source Code
-
-Please see [gluten source code](https://github.com/apache/gluten) for more 
information.
-
-## How to Contribute to Gluten
-
-Please see [contributing guide](/contributing/) about how to make 
contributions.
-
-## Wechat Group
-
-There is a Wechat group (in Chinese) which may be more friendly for PRC 
developers/users. Due to the limitation of wechat group, please mail to 
[email protected]. 
-
-## Slack channel
-
-For Velox backend, we recommend to use [velox 
community](https://github.com/facebookincubator/velox?tab=readme-ov-file#community).
-
-
-# 5 Performance
-
-We use TPCH-like and TPCDS-like as decison support benchmarks to evaluate 
Gluten's performance.
-TPCH-like is a query set for modified from [TPC-H 
benchmark](http://tpc.org/tpch/default5.asp) and TPCDS-like is a query set for 
modified from [TPC-DS benchmark](https://tpc.org/tpcds/default5.asp). We use 
Parquet file format for Velox testing & MergeTree file format for Clickhouse 
testing, compared to Parquet file format as baseline. See [Decision Support 
Benchmark](https://github.com/apache/gluten/tree/main/tools/workload).
-
-## Gluten + Velox backend Performance
-
-The below test environment: single node with 3TB data on Intel® Xeon® Platinum 
8592+; Spark-3.3.1 for both baseline and Gluten.
-
-The TPCH-like result (tested in Mar. 2024) shows an overall speedup of 3.34x 
and up to 23.45x speedup in a single query with Gluten + Velox backend used.
-
-![Performance](/assets/images/velox_tpch-like_sf3000_time_comparison.png)
-
-![Performance](/assets/images/velox_tpch-like_sf3000_speedup.png)
-
-The TPCDS-like result (tested in Mar. 2024) shows an overall speedup of 3.02x 
and up to 13.75x speedup in a single query with Gluten + Velox backend used.
-
-![Performance](/assets/images/velox_tpcds-like_sf3000_time_comparison.png)
-
-![Performance](/assets/images/velox_tpcds-like_sf3000_top20_speedup.png)
-
-Notices & Disclaimers
-
-Performance varies by use, configuration and other factors. Learn more on the 
[Performance Index 
site](https://edc.intel.com/content/www/us/en/products/performance/benchmarks/overview/).
 Performance results are based on testing as of dates shown in configurations 
and may not reflect all publicly available updates.  See backup for 
configuration details.  No product or component can be absolutely secure. Your 
costs and results may vary. Intel technologies may require enabled hardware, 
soft [...]
-
-## Gluten + ClickHouse backend Performance
-
-The below testing environment: a 8-nodes AWS cluster with 1TB data; 
Spark-3.1.1 for both baseline and Gluten. The Decision Support Benchmark1 
result shows an average speedup of 2.12x and up to 3.48x speedup with Gluten 
Clickhouse backend.
-
-![Performance](/assets/images/clickhouse_decision_support_bench1_22queries_performance.png)
-
-# 6 Security
-
-Gluten aims to provide secure software. If you discover a vulnerability, 
please report it promptly to [the project's 
PMC](mailto:[email protected]) or [the ASF security 
team](https://www.apache.org/security/). We appreciate your effort to help keep 
the project secure.
-
-# Thanks to our contributors
-
-<a href="https://github.com/apache/gluten/graphs/contributors";>
-  <img src="/assets/images/gluten_contributors.svg" />
-</a>
-
diff --git a/poweredby.md b/poweredby.md
index 5419053f..3c2c0877 100644
--- a/poweredby.md
+++ b/poweredby.md
@@ -1,5 +1,5 @@
 ---
-layout: page
+layout: site-page
 title: Powered by Gluten
 nav_order: 8
 permalink: /poweredby/
diff --git a/references.md b/references.md
index 46bcb7ad..ae2dd42f 100644
--- a/references.md
+++ b/references.md
@@ -1,5 +1,5 @@
 ---
-layout: page
+layout: site-page
 title: Gluten References
 nav_order: 6
 permalink: /references/


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to