Modernize Apache Unomi website: Bootstrap 5, design system, AI positi… (#40)

Modernize Apache Unomi website: Bootstrap 5, design system, AI positioning, SEO/AEO

Complete redesign of the Apache Unomi website including:

Infrastructure:
- Upgrade Bootstrap 4 to 5.3.8 and Jekyll 4.2.0 to 4.4.1
- Add Mermaid.js v11 for interactive diagrams
- Centralized CSS design system with 40+ CSS custom properties
- Docker-based build workflow using bretfisher/jekyll images

Content & Pages:
- New "CDP in the AI Era" section and AI-first positioning throughout
- New Integrations page with randomized company order (ASF compliance)
- Rewritten Tutorial page for Unomi 3.0
- Rebuilt Events page with 12 talks, local video thumbnails
- Testing guide TODOs filled in from source code research
- Dependencies guide: added BOM documentation for Unomi 3
- Latest News timeline combining releases, articles, and events (capped at 10)
- Use cases reordered with AI & ML first

Community & Design:
- Team page redesigned as responsive card grid with updated affiliations
- All 11 contribute sub-pages modernized (layout only, text preserved)
- Fixed empty mailing list cards, encoding issues, dead links
- Copyright years updated to 2026

SEO & AI Engine Optimization:
- JSON-LD structured data (Schema.org) on all pages
- Open Graph and Twitter Card meta tags
- robots.txt, sitemap.xml, llms.txt, llms-full.txt added

Staging preview: https://unomi-v3-site.netlify.app/

* CSS design system: centralized variables, utility classes, DRY cleanup

- Add new CSS variables for rgba variants, opacity levels, and color tokens
- Create 10+ utility classes to replace inline styles (badges, icons, overlays)
- Merge duplicate CSS rules (.mermaid, media queries, button hovers)
- Add vendor prefix (-webkit-backdrop-filter) for Safari
- Fix color contrast for WCAG AA compliance (hero text opacity)
- Add mobile overflow protection for Mermaid diagrams and code blocks
- Extract shared Fisher-Yates shuffle script to assets/js/shuffle.js

* Layout: performance, accessibility, SEO and navigation improvements

- Conditional Mermaid.js loading (saves ~25KB on pages without diagrams)
- Defer Bootstrap JS and Mermaid scripts for faster initial render
- Preconnect to cdn.jsdelivr.net, non-blocking Bootstrap Icons CSS
- Add :focus-visible styles for keyboard navigation accessibility
- Replace footer <h6> with role="heading" for semantic hierarchy
- Shorten <title> suffix to keep under 65 characters
- Normalize og:url to match canonical URL
- Update navbar Slack link to point to access instructions
- Update navbar mailing list link to point to community page
- Update JSON-LD featureList (Salesforce deprecated, Groovy actions)
- Fix broken links to generated docs with absolute URLs

* Content pages: AI positioning, ES 9.1.3, structured data, inline style cleanup

- Homepage: fix traveling data dots animation, AI era section, OpenSearch wording
- Use cases: reorder AI use case first, center graphs, add FAQPage schema
- Tutorial & get-started: update to Elasticsearch 9.1.3 with xpack.security
- Documentation: add CollectionPage schema, fix heading hierarchy, absolute links
- Resources: add CollectionPage schema, new video entries, local thumbnails
- Download: fix broken link to quick start guide
- All pages: replace inline styles with CSS classes, add SEO keywords
- Correct "ElasticSearch" trademark spelling across all pages

* Community, events, integrations: Slack access, Salesforce removal, ASF compliance

- Community: rewrite Slack card with ASF access paths, update monthly meeting
  with direct Zoom link and 'open to all' messaging, add mailing list anchor
- Team: modernize to card layout, update affiliations, lazy-load gravatars
- Events: restructure past events with local thumbnails, add CollectionPage schema
- Integrations: remove Salesforce connector, add Groovy actions (recommended)
  and Java plugins guidance, remove Unomi UI/Inoyu UI cards for ASF compliance,
  use generic labels in Mermaid diagram
- Connectors: update description for Salesforce deprecation
- Stories: replace inline shuffle script with shared shuffle.js
- All pages: fix rel="noopener", protocol upgrades, inline style cleanup

* Contribute pages, SEO & LLM files: testing TODOs, release guide, sitemap

- Testing: replace TODOs with Surefire/Failsafe/Pax Exam docs, add CI section
- Dependencies: add BOM section with usage examples
- Release guide: update versions to 3.0.x, fix typos and stale URLs
- Manual release guide: update version examples, fix typos
- Encoding fixes: correct mojibake characters on 3 contribute pages
- Sitemap: expand from 14 to 29 URLs, add lastmod dates
- Robots.txt: remove CSS/JS disallow rules for proper Google rendering
- LLM files: update to 3.0.0, Groovy/Java plugin guidance, OpenSearch wording,
  Salesforce deprecation, Slack access, remove excess Inoyu product listings
- All contribute pages: add SEO keywords, fix rel="noopener"
diff --git a/.gitignore b/.gitignore
index 8018893..ec2086a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,4 +2,7 @@
 **/*.iml
 target/
 /src/main/webapp/.jekyll-cache/
+/.jekyll-cache/
 /.mvn/wrapper/maven-wrapper.jar
+Gemfile.lock
+.bundle/
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..036a9e3
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,6 @@
+# frozen_string_literal: true
+
+source "https://rubygems.org"
+
+gem "jekyll", "~> 4.4.1"
+gem "webrick", "~> 1.9"   # Required for Ruby 3+ (removed from stdlib)
diff --git a/README.md b/README.md
index a5d99e3..3b173b4 100644
--- a/README.md
+++ b/README.md
@@ -2,23 +2,25 @@
 Apache Unomi Website source repository
 ======================================
 
-This project contains the Apache Unomi Website. The website is generated using [Jekyll](https://jekyllrb.com/) framework
+This project contains the Apache Unomi Website. The website is generated using [Jekyll](https://jekyllrb.com/) 4.4
 with [Liquid](https://shopify.github.io/liquid/) templates.
 
 ## Configuration
+
 ### Jekyll Config
 Can be found in [_config](_config.yml) YAML file
 ```yaml
 source: src/main/webapp
 destination: target/site
 ```
+
 ### Data config
 Can be found in [_data folder](src/main/webapp/_data/unomi.yml)
-This contains some variables used to replace placeholders in the site. 
+This contains some variables used to replace placeholders in the site.
 
 ## Build
 
-You need a machine with Jekyll or Docker to build the website.
+You need either Docker (recommended) or a local Ruby/Jekyll installation to build the website.
 
 Checkout the current project:
 
@@ -26,41 +28,51 @@
 git clone https://github.com/apache/unomi-site
 ```
 
-### Build with Jekyll 
+### Build with Docker (recommended)
+
+Using the [bretfisher/jekyll](https://hub.docker.com/r/bretfisher/jekyll) Docker image.
+No local Ruby or Jekyll installation required.
+
 ```shell
-jekyll build
+docker run --rm \
+  --volume="$PWD:/site" \
+  bretfisher/jekyll \
+  build
 ```
 
-### Build with Docker
-See Jekyll Docker's images [documentation](https://github.com/envygeeks/jekyll-docker/blob/master/README.md#server).
-The Docker image provides all Ruby and Jekyll resources to avoid to install them locally. 
-Note that the version used of Jekyll is set to 4.2.0 as the newer images have an issue with a missing dependency. 
+The generated site will be in the folder `target/site`.
+
+### Local development server with Docker
+
+Serves the site at http://localhost:4000/ with live-reload on source changes:
+
 ```shell
- docker run --rm \
-  --volume="$PWD:/srv/jekyll:Z" \
+docker run --rm \
+  --volume="$PWD:/site" \
   -p 4000:4000 \
-  jekyll/jekyll:4.2.0 \
-  jekyll build 
+  bretfisher/jekyll-serve
 ```
 
-The generated site will be in the folder `target/site`
+### Build with local Jekyll
+
+Requires Ruby 2.7+ and Bundler. Install dependencies once, then build:
+
+```shell
+bundle install
+bundle exec jekyll build
+```
+
+Or serve locally with live-reload:
+
+```shell
+bundle exec jekyll serve
+```
 
 ## Publish
 
 To publish the local website to the production location (https://unomi.apache.org/), you have to use:
 Do not use the `clean` maven goal to not remove the previous generated site.
+
 ```shell
 mvn install scm-publish:publish-scm -Dusername=YOUR_APACHE_USERNAME -Dpassword=YOUR_APACHE_PASSWORD
 ```
-
-## Local build with local server
-Run the following command
-```shell
-docker run --rm \
-  --volume="$PWD:/srv/jekyll:Z" \
-  -p 4000:4000 \
-  jekyll/jekyll:4.2.0 \
-  jekyll serve 
-```
-
-Then access to http://localhost:4000/ to access the site. Note that source changes are detected and apply automatically.
diff --git a/_config.yml b/_config.yml
index 7c442bd..1dd9338 100644
--- a/_config.yml
+++ b/_config.yml
@@ -1,4 +1,6 @@
 source: src/main/webapp
 destination: target/site
 name: Apache Unomi website
-title: Apache Unomi&trade; Open Source Customer Data Platform
\ No newline at end of file
+title: Apache Unomi&trade; Open Source Customer Data Platform
+url: https://unomi.apache.org
+description: "Apache Unomi is an open source Customer Data Platform (CDP) that unifies data from web, mobile, CRM, support systems, IoT, and more — the privacy-first data foundation for AI agents, personalization engines, and real-time customer intelligence."
\ No newline at end of file
diff --git a/src/main/webapp/_layouts/default.html b/src/main/webapp/_layouts/default.html
index f425883..a448110 100644
--- a/src/main/webapp/_layouts/default.html
+++ b/src/main/webapp/_layouts/default.html
@@ -2,17 +2,162 @@
 <html lang="en">
 <head>
     <meta charset="utf-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
-    <meta name="description" content="">
-    <meta name="author" content="">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+
+    <!-- SEO Meta Tags -->
+    <title>{{ page.title }} | Apache Unomi&trade;</title>
+    <meta name="description" content="{% if page.description %}{{ page.description }}{% else %}Apache Unomi is an open source Customer Data Platform (CDP) for managing customer profiles, personalizing experiences, and respecting visitor privacy (GDPR).{% endif %}">
+    <meta name="keywords" content="{% if page.keywords %}{{ page.keywords }}{% else %}Apache Unomi, Customer Data Platform, CDP, open source CDP, personalization, GDPR, privacy, customer profiles, segmentation, real-time, REST API, GraphQL, Java, Elasticsearch, OpenSearch, OASIS CXS, AI customer data{% endif %}">
+    <meta name="author" content="Apache Unomi Project">
+    <meta name="robots" content="{% if page.noindex %}noindex, nofollow{% else %}index, follow{% endif %}">
+    <link rel="canonical" href="{{ site.url }}{{ page.url | replace: 'index.html', '' }}">
+
+    <!-- Open Graph / Social -->
+    <meta property="og:type" content="website">
+    <meta property="og:locale" content="en_US">
+    <meta property="og:title" content="{{ page.title }} | Apache Unomi">
+    <meta property="og:description" content="{% if page.description %}{{ page.description }}{% else %}Open source Customer Data Platform for managing profiles and personalizing experiences with built-in privacy.{% endif %}">
+    <meta property="og:url" content="{{ site.url }}{{ page.url | replace: 'index.html', '' }}">
+    <meta property="og:site_name" content="Apache Unomi">
+    <meta property="og:image" content="{{ site.url }}/assets/images/apache-unomi-380x85.png">
+    <meta property="og:image:width" content="380">
+    <meta property="og:image:height" content="85">
+    <meta property="og:image:alt" content="Apache Unomi - Open Source Customer Data Platform">
+
+    <!-- Twitter Card -->
+    <meta name="twitter:card" content="summary_large_image">
+    <meta name="twitter:title" content="{{ page.title }} | Apache Unomi">
+    <meta name="twitter:description" content="{% if page.description %}{{ page.description }}{% else %}Open source Customer Data Platform for managing profiles and personalizing experiences with built-in privacy.{% endif %}">
+    <meta name="twitter:image" content="{{ site.url }}/assets/images/apache-unomi-380x85.png">
+
+    <!-- JSON-LD: WebSite -->
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "WebSite",
+        "name": "Apache Unomi",
+        "alternateName": ["Unomi", "Apache Unomi CDP", "You know me"],
+        "url": "https://unomi.apache.org",
+        "description": "Apache Unomi is an open source Customer Data Platform (CDP) for managing customer profiles, real-time personalization, AI-ready customer data, and privacy-first data management with built-in GDPR compliance.",
+        "inLanguage": "en"
+    }
+    </script>
+
+    <!-- JSON-LD: Organization -->
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "Organization",
+        "name": "Apache Unomi",
+        "url": "https://unomi.apache.org",
+        "logo": "https://unomi.apache.org/assets/images/apache-unomi-380x85.png",
+        "parentOrganization": {
+            "@type": "Organization",
+            "name": "Apache Software Foundation",
+            "url": "https://www.apache.org"
+        },
+        "sameAs": [
+            "https://github.com/apache/unomi",
+            "https://the-asf.slack.com/messages/CBP2Z98Q7/"
+        ],
+        "contactPoint": {
+            "@type": "ContactPoint",
+            "contactType": "technical support",
+            "email": "users@unomi.apache.org",
+            "url": "https://unomi.apache.org/community/"
+        }
+    }
+    </script>
+
+    <!-- JSON-LD: SoftwareApplication -->
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "SoftwareApplication",
+        "name": "Apache Unomi",
+        "applicationCategory": "DeveloperApplication",
+        "applicationSubCategory": "Customer Data Platform",
+        "operatingSystem": "Cross-platform (Java)",
+        "description": "Apache Unomi is an open source Customer Data Platform (CDP) that manages customer profiles, enables real-time personalization, and provides built-in privacy management including GDPR compliance. It is the reference implementation of the OASIS CDP specification.",
+        "url": "https://unomi.apache.org",
+        "downloadUrl": "https://unomi.apache.org/download.html",
+        "softwareHelp": {
+            "@type": "CreativeWork",
+            "url": "https://unomi.apache.org/documentation.html"
+        },
+        "releaseNotes": "https://unomi.apache.org/download.html",
+        "license": "https://www.apache.org/licenses/LICENSE-2.0",
+        "softwareVersion": "{{ site.data.unomi.latest.stable.version }}",
+        "datePublished": "{{ site.data.unomi.latest.stable.date }}",
+        "programmingLanguage": "Java",
+        "author": {
+            "@type": "Organization",
+            "name": "Apache Software Foundation",
+            "url": "https://www.apache.org"
+        },
+        "offers": {
+            "@type": "Offer",
+            "price": "0",
+            "priceCurrency": "USD"
+        },
+        "featureList": [
+            "Customer profile management and unification",
+            "Real-time segmentation and audience building",
+            "Event tracking, collection, and processing",
+            "Lead scoring and engagement scoring",
+            "Rules engine for automated actions",
+            "Privacy management and GDPR compliance",
+            "Consent management and data anonymization",
+            "Full REST/JSON API",
+            "GraphQL API for flexible querying",
+            "Plugin architecture (OSGi, Groovy actions)",
+            "Elasticsearch storage backend (OpenSearch support coming soon)",
+            "Connectors (MailChimp, custom via plugin API)",
+            "Bill of Materials (BOM) for dependency management",
+            "OASIS CDP standard reference implementation"
+        ]
+    }
+    </script>
+
+    <!-- JSON-LD: BreadcrumbList (per-page) -->
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "BreadcrumbList",
+        "itemListElement": [
+            {
+                "@type": "ListItem",
+                "position": 1,
+                "name": "Home",
+                "item": "https://unomi.apache.org/"
+            }{% if page.url != "/index.html" and page.url != "/" %},
+            {
+                "@type": "ListItem",
+                "position": 2,
+                "name": "{{ page.title }}",
+                "item": "{{ site.url }}{{ page.url }}"
+            }{% endif %}
+        ]
+    }
+    </script>
+
+    {% if page.structured_data %}{{ page.structured_data }}{% endif %}
+
     <link rel="icon" href="/assets/images/favicon.ico">
+    <link rel="sitemap" type="application/xml" href="/sitemap.xml">
 
-    <title>{{ site.title }} | {{ page.title }}</title>
+    <!-- AI/LLM discoverability -->
+    <link rel="alternate" type="text/plain" href="/llms.txt" title="LLM project summary">
+    <link rel="alternate" type="text/plain" href="/llms-full.txt" title="LLM full technical reference">
 
-    <!-- Matomo -->
+    <!-- Preload critical resources -->
+    <link rel="preload" href="/assets/css/unomi.css" as="style">
+    <link rel="preconnect" href="https://cdn.jsdelivr.net" crossorigin>
+    <link rel="dns-prefetch" href="https://analytics.apache.org">
+
+    <!-- Matomo Analytics (privacy-respecting) -->
     <script>
         var _paq = window._paq = window._paq || [];
-        /* tracker methods like "setCustomDimension" should be called before "trackPageView" */
         _paq.push(["setDoNotTrack", true]);
         _paq.push(["disableCookies"]);
         _paq.push(['trackPageView']);
@@ -25,130 +170,223 @@
             g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
         })();
     </script>
-    <!-- End Matomo Code -->
 
-    <!-- Bootstrap core CSS -->
-    <link href="/assets/css/bootstrap.min.css" rel="stylesheet">
-    <!-- Fontawesome CSS CDN -->
-    <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.0.13/css/all.css" integrity="sha384-DNOHZ68U8hZfKXOrtjWvjxusGo9WQnrNx2sqG0tfsghAvtVlRW3tvkXWZh58N9jp" crossorigin="anonymous">
-    <!-- Custom styles for this template -->
+    <!-- Fonts -->
+    <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@300;400;500;600;700;800&display=swap" rel="stylesheet">
+
+    <!-- Bootstrap 5.3.8 CSS -->
+    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet"
+          crossorigin="anonymous">
+
+    <!-- Bootstrap Icons 1.11 — loaded non-blocking (not needed for first paint) -->
+    <link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css"
+          rel="stylesheet" media="print" onload="this.media='all'">
+    <noscript><link href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css" rel="stylesheet"></noscript>
+
+    <!-- Custom Styles -->
     <link href="/assets/css/unomi.css" rel="stylesheet">
 </head>
 <body>
 
-<header>
-    <nav class="navbar navbar-expand-md navbar-light bg-white fixed-top border-bottom box-shadow">
+<!-- Skip to content for accessibility -->
+<a class="visually-hidden-focusable" href="#main-content">Skip to main content</a>
+
+<header class="sticky-top">
+    <nav class="navbar navbar-expand-lg navbar-light bg-white border-bottom" aria-label="Main navigation">
         <div class="container">
-            <a class="navbar-brand" href="/index.html">
-                <img src="/assets/images/unomi-86x20.png" alt="Logo Apache Unomi"/>
+            <a class="navbar-brand d-flex align-items-center" href="/index.html" aria-label="Apache Unomi home">
+                <img src="/assets/images/apache-unomi-380x85.png" alt="Apache Unomi" height="36" class="navbar-brand-img">
             </a>
-            <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarCollapse" aria-controls="navbarCollapse" aria-expanded="false" aria-label="Toggle navigation">
+            <button class="navbar-toggler border-0" type="button" data-bs-toggle="collapse" data-bs-target="#navbarMain"
+                    aria-controls="navbarMain" aria-expanded="false" aria-label="Toggle navigation">
                 <span class="navbar-toggler-icon"></span>
             </button>
-            <div class="collapse navbar-collapse justify-content-end" id="navbarCollapse">
-                <div>
-                    <ul class="navbar-nav mr-auto align-items-center text-uppercase">
-                        <li class="nav-item">
-                            <a class="nav-link" href="/get-started.html">Get started</a>
-                        </li>
-                        <li class="nav-item">
-                            <a class="nav-link" href="/use-cases.html">Use cases</a>
-                        </li>
-                        <li class="nav-item">
-                            <a class="nav-link" href="/stories.html">Stories</a>
-                        </li>
-                        <li class="nav-item">
-                            <a class="nav-link" href="/download.html">Download</a>
-                        </li>
-                        <li class="nav-item">
-                            <a class="nav-link" href="/documentation.html">Documentation</a>
-                        </li>
-                        <li class="nav-item">
-                            <a class="nav-link" href="/resources.html">Resources</a>
-                        </li>
-                        <li class="nav-item">
-                            <a class="nav-link" href="/contribute/index.html">Contribute</a>
-                        </li>
-                        <li class="nav-item">
-                            <a class="nav-link" href="/community/index.html">Community</a>
-                        </li>
-                        <li class="nav-item">
-                            <a class="nav-link disabled" target="_blank" href="https://www.apache.org">
-                                <img src="/assets/images/feather.svg" alt="Logo Apache Feather" style="height: 1.3em"/>
-                            </a>
-                        </li>
-                    </ul>
-                </div>
+            <div class="collapse navbar-collapse" id="navbarMain">
+                <ul class="navbar-nav ms-auto align-items-lg-center gap-lg-1">
+                    <li class="nav-item">
+                        <a class="nav-link fw-medium" href="/get-started.html">Get Started</a>
+                    </li>
+
+                    <!-- Documentation Dropdown -->
+                    <li class="nav-item dropdown">
+                        <a class="nav-link dropdown-toggle fw-medium" href="/documentation.html" role="button"
+                           data-bs-toggle="dropdown" aria-expanded="false">Docs</a>
+                        <ul class="dropdown-menu dropdown-menu-end border-0 shadow-lg rounded-3 p-2">
+                            <li><a class="dropdown-item rounded-2 py-2" href="/documentation.html">
+                                <i class="bi bi-book me-2 text-primary"></i>Documentation Home</a></li>
+                            <li><a class="dropdown-item rounded-2 py-2" href="https://unomi.apache.org/manual/latest/index.html">
+                                <i class="bi bi-journal-text me-2 text-primary"></i>Latest Manual</a></li>
+                            <li><hr class="dropdown-divider my-1"></li>
+                            <li><a class="dropdown-item rounded-2 py-2" href="/use-cases.html">
+                                <i class="bi bi-lightbulb me-2 text-primary"></i>Use Cases</a></li>
+                            <li><a class="dropdown-item rounded-2 py-2" href="/resources.html">
+                                <i class="bi bi-play-circle me-2 text-primary"></i>Videos &amp; Articles</a></li>
+                            <li><a class="dropdown-item rounded-2 py-2" href="/tutorial.html">
+                                <i class="bi bi-mortarboard me-2 text-primary"></i>Tutorials</a></li>
+                            <li><hr class="dropdown-divider my-1"></li>
+                            <li><a class="dropdown-item rounded-2 py-2" href="https://unomi.apache.org/rest-api-doc/index.html">
+                                <i class="bi bi-braces me-2 text-primary"></i>REST API</a></li>
+                            <li><a class="dropdown-item rounded-2 py-2" href="https://unomi.apache.org/unomi-api/apidocs/index.html">
+                                <i class="bi bi-code-square me-2 text-primary"></i>Javadoc</a></li>
+                        </ul>
+                    </li>
+
+                    <!-- Community Dropdown -->
+                    <li class="nav-item dropdown">
+                        <a class="nav-link dropdown-toggle fw-medium" href="/community/index.html" role="button"
+                           data-bs-toggle="dropdown" aria-expanded="false">Community</a>
+                        <ul class="dropdown-menu dropdown-menu-end border-0 shadow-lg rounded-3 p-2">
+                            <li><a class="dropdown-item rounded-2 py-2" href="/community/index.html">
+                                <i class="bi bi-chat-dots me-2 text-primary"></i>Get Help &amp; Contact</a></li>
+                            <li><a class="dropdown-item rounded-2 py-2" href="/community/index.html#mailing-lists">
+                                <i class="bi bi-envelope me-2 text-primary"></i>Mailing Lists</a></li>
+                            <li><a class="dropdown-item rounded-2 py-2" href="/community/index.html#slack-access">
+                                <i class="bi bi-slack me-2 text-primary"></i>Slack Channel</a></li>
+                            <li><hr class="dropdown-divider my-1"></li>
+                            <li><a class="dropdown-item rounded-2 py-2" href="/contribute/index.html">
+                                <i class="bi bi-code-slash me-2 text-primary"></i>Contribute</a></li>
+                            <li><a class="dropdown-item rounded-2 py-2" href="/community/team.html">
+                                <i class="bi bi-people me-2 text-primary"></i>Team</a></li>
+                            <li><a class="dropdown-item rounded-2 py-2" href="/community/events/index.html">
+                                <i class="bi bi-calendar-event me-2 text-primary"></i>Events</a></li>
+                        </ul>
+                    </li>
+
+                    <li class="nav-item">
+                        <a class="nav-link fw-medium" href="/integrations.html">Integrations</a>
+                    </li>
+                    <li class="nav-item">
+                        <a class="nav-link fw-medium" href="/download.html">Download</a>
+                    </li>
+
+                    <!-- Prominent CTA -->
+                    <li class="nav-item ms-lg-3">
+                        <a class="btn btn-primary btn-sm rounded-pill px-3 fw-semibold" href="/community/index.html">
+                            <i class="bi bi-chat-heart me-1"></i>Get Help
+                        </a>
+                    </li>
+
+                    <!-- Apache -->
+                    <li class="nav-item ms-lg-2 d-none d-lg-block">
+                        <a class="nav-link px-1 opacity-50" target="_blank" rel="noopener" href="https://www.apache.org"
+                           title="Apache Software Foundation" aria-label="Apache Software Foundation">
+                            <img src="/assets/images/feather.svg" alt="" class="feather-icon" aria-hidden="true">
+                        </a>
+                    </li>
+                </ul>
             </div>
         </div>
     </nav>
 </header>
 
-<main>
+<main id="main-content">
     {{ content }}
 </main>
 
-<!-- FOOTER -->
-<footer class="container-fluid bg-dark pt-5 pb-3 text-white text-center footer">
-
-    <div class="container pb-5">
-        <div class="row">
-            <div class="col-3 col-md-3">
-                <h5>Start</h5>
-                <ul class="list-unstyled text-small">
-                    <li><a href="/get-started.html" title="Get started">Get started</a></li>
-                    <li><a href="/get-started.html#quickstart" title="Quick start">Quick start</a></li>
-                    <li><a href="/download.html" title="Download">Download</a></li>
+<footer class="bg-dark text-white pt-5 pb-4">
+    <div class="container">
+        <div class="row g-4 pb-4">
+            <div class="col-6 col-md-3">
+                <div class="text-uppercase fw-semibold mb-3 text-white-50 small" role="heading" aria-level="2">Get Started</div>
+                <ul class="list-unstyled small">
+                    <li class="mb-2"><a href="/get-started.html" class="footer-link">Getting Started</a></li>
+                    <li class="mb-2"><a href="/get-started.html#quickstart" class="footer-link">Quick Start</a></li>
+                    <li class="mb-2"><a href="/download.html" class="footer-link">Download</a></li>
+                    <li class="mb-2"><a href="/integrations.html" class="footer-link">Integrations</a></li>
                 </ul>
             </div>
-
-            <div class="col-3 col-md-3">
-                <h5>Documentation</h5>
-                <ul class="list-unstyled text-small">
-                    <li><a href="/documentation.html" title="Main documentation">Main documentation</a></li>
-                    <li><a href="/use-cases.html" title="More use cases">More use cases</a></li>
-                    <li><a href="/rest-api-doc/index.html" title="REST API documentation">REST API documentation</a></li>
-                    <li><a href="/unomi-api/apidocs/index.html" title="API Javadoc">API Javadoc</a></li>
+            <div class="col-6 col-md-3">
+                <div class="text-uppercase fw-semibold mb-3 text-white-50 small" role="heading" aria-level="2">Documentation</div>
+                <ul class="list-unstyled small">
+                    <li class="mb-2"><a href="/documentation.html" class="footer-link">Documentation Home</a></li>
+                    <li class="mb-2"><a href="/use-cases.html" class="footer-link">Use Cases</a></li>
+                    <li class="mb-2"><a href="https://unomi.apache.org/rest-api-doc/index.html" class="footer-link">REST API</a></li>
+                    <li class="mb-2"><a href="https://unomi.apache.org/unomi-api/apidocs/index.html" class="footer-link">Javadoc</a></li>
                 </ul>
             </div>
-
-            <div class="col-3 col-md-3">
-                <h5>Community</h5>
-                <ul class="list-unstyled text-small">
-                    <li><a href="/community/index.html" title="Mailing lists">Contact Us</a></li>
-                    <li><a href="/contribute/index.html" title="Contribute">Contribute</a></li>
-                    <li><a href="/community/team.html" title="Team">Team</a></li>
-                    <li><a href="/community/maturity-model-report.html" title="Maturity model report card">Maturity model report card</a></li>
+            <div class="col-6 col-md-3">
+                <div class="text-uppercase fw-semibold mb-3 text-white-50 small" role="heading" aria-level="2">Community</div>
+                <ul class="list-unstyled small">
+                    <li class="mb-2"><a href="/community/index.html" class="footer-link">Get Help &amp; Contact</a></li>
+                    <li class="mb-2"><a href="mailto:users-subscribe@unomi.apache.org" class="footer-link">Subscribe to Mailing List</a></li>
+                    <li class="mb-2"><a href="/contribute/index.html" class="footer-link">Contribute</a></li>
+                    <li class="mb-2"><a href="/community/team.html" class="footer-link">Team</a></li>
                 </ul>
             </div>
-
-            <div class="col-3 col-md-3">
-                <h5>About</h5>
-                <ul class="list-unstyled text-small">
-                    <li><a target="_blank" href="https://www.oasis-open.org/committees/cxs/" title="OASIS Context Server Technical Committee">OASIS CXS Committee</a></li>
-                    <li><a href="/privacy-policy.html" title="Site policy">Site policy</a></li>
-                    <li><a target="_blank" href="https://www.apache.org/events/current-event.html" title="Apache Events">Apache Events</a></li>
-                    <li><a target="_blank" href="https://www.apache.org/licenses/" title="License">License</a></li>
-                    <li><a target="_blank" href="https://www.apache.org/security/" title="Security">Security</a></li>
-                    <li><a target="_blank" href="https://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a></li>
-                    <li><a target="_blank" href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a></li>
+            <div class="col-6 col-md-3">
+                <div class="text-uppercase fw-semibold mb-3 text-white-50 small" role="heading" aria-level="2">Apache</div>
+                <ul class="list-unstyled small">
+                    <li class="mb-2"><a href="https://www.apache.org/licenses/" target="_blank" rel="noopener" class="footer-link">License</a></li>
+                    <li class="mb-2"><a href="https://www.apache.org/security/" target="_blank" rel="noopener" class="footer-link">Security</a></li>
+                    <li class="mb-2"><a href="https://www.apache.org/events/current-event.html" target="_blank" rel="noopener" class="footer-link">Events</a></li>
+                    <li class="mb-2"><a href="https://www.apache.org/foundation/sponsorship.html" target="_blank" rel="noopener" class="footer-link">Sponsorship</a></li>
+                    <li class="mb-2"><a href="https://www.apache.org/foundation/thanks.html" target="_blank" rel="noopener" class="footer-link">Thanks</a></li>
+                    <li class="mb-2"><a href="/privacy-policy.html" class="footer-link">Privacy Policy</a></li>
                 </ul>
             </div>
-            <div class="w-100 pt-md-3"></div>
+        </div>
+        <hr class="border-secondary my-3">
+        <div class="row align-items-center pt-2">
+            <div class="col-md-8">
+                <p class="small text-white-50 mb-1">
+                    Copyright &copy; 2014&ndash;2026 <a href="https://www.apache.org" target="_blank" rel="noopener" class="footer-link">The Apache Software Foundation</a>. All Rights Reserved.
+                </p>
+                <p class="small text-white-50 mb-0">
+                    Apache Unomi, Unomi, Apache, the Apache feather logo are trademarks of The Apache Software Foundation.
+                </p>
+            </div>
+            <div class="col-md-4 text-md-end mt-3 mt-md-0">
+                <a href="https://www.apache.org" target="_blank" rel="noopener">
+                    <img src="/assets/images/asf_logo_wide.svg" alt="Apache Software Foundation" height="30" class="opacity-50">
+                </a>
+            </div>
         </div>
     </div>
-
-    <p class="float-right"><a href="#">Back to top</a></p>
-    <p>Copyright &copy;2014 - 2020 <a target="_blank" href="https://www.apache.org">Apache Software Foundation</a> - All Rights Reserved - Powered by <a target="_blank" href="https://karaf.apache.org">Apache Karaf&trade;</a><br/>
-        Apache Unomi, Unomi, Apache and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation in the United States and other countries.</p>
 </footer>
 
-<!-- Bootstrap core JavaScript
-================================================== -->
-<!-- Placed at the end of the document so the pages load faster -->
-<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
-<script>window.jQuery || document.write('<script src="/assets/js/vendor/jquery-slim.min.js"><\/script>')</script>
-<script src="/assets/js/vendor/popper.min.js"></script>
-<script src="/assets/js/vendor/bootstrap.min.js"></script>
+<!-- Bootstrap 5.3.8 JS Bundle (includes Popper) -->
+<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js" crossorigin="anonymous" defer></script>
+
+<!-- Mermaid for diagrams — only loaded on pages that use it (2.75 MB) -->
+{% if page.mermaid %}
+<script src="https://cdn.jsdelivr.net/npm/mermaid@11/dist/mermaid.min.js" defer></script>
+<script>
+    document.addEventListener('DOMContentLoaded', function() {
+        var s = getComputedStyle(document.documentElement);
+        var v = function(name) { return s.getPropertyValue(name).trim(); };
+        mermaid.initialize({
+            startOnLoad: true,
+            theme: 'base',
+            themeVariables: {
+                primaryColor: v('--unomi-primary-light'),
+                primaryTextColor: v('--unomi-text'),
+                primaryBorderColor: v('--unomi-primary'),
+                lineColor: v('--unomi-primary'),
+                secondaryColor: v('--unomi-primary-subtle'),
+                tertiaryColor: v('--unomi-primary-faint'),
+                fontFamily: 'Inter, system-ui, sans-serif',
+                fontSize: '14px'
+            }
+        });
+    });
+</script>
+{% endif %}
+
+<!-- Smooth scroll + active nav highlighting -->
+<script>
+document.addEventListener('DOMContentLoaded', function() {
+    // Highlight active nav link
+    var path = window.location.pathname;
+    document.querySelectorAll('.navbar-nav .nav-link, .dropdown-item').forEach(function(link) {
+        if (link.getAttribute('href') === path) {
+            link.classList.add('active');
+            var parent = link.closest('.dropdown');
+            if (parent) parent.querySelector('.nav-link').classList.add('active');
+        }
+    });
+});
+</script>
 </body>
 </html>
diff --git a/src/main/webapp/assets/css/unomi.css b/src/main/webapp/assets/css/unomi.css
index 199a603..c5a1971 100644
--- a/src/main/webapp/assets/css/unomi.css
+++ b/src/main/webapp/assets/css/unomi.css
@@ -1,181 +1,998 @@
-/* GLOBAL STYLES
--------------------------------------------------- */
-/* Padding below the footer and lighter body text */
+/* ==========================================================================
+   Apache Unomi — Modern Design System
+   ========================================================================== */
 
-body {
-  padding-top: 3rem;
-  color: #5a5a5a;
+/* ---------- Design Tokens ---------- */
+:root {
+    /* Core brand */
+    --unomi-primary: #6d5ce7;
+    --unomi-primary-dark: #5a48c9;
+    --unomi-primary-light: #ede9fe;
+    --unomi-primary-subtle: #f5f3ff;
+    --unomi-primary-faint: #faf5ff;
+    --unomi-accent: #00cec9;
+    --unomi-hero-accent: #a78bfa;
+    --unomi-purple-deep: #7c3aed;
+
+    /* Text */
+    --unomi-text: #1e293b;
+    --unomi-text-muted: #64748b;
+    --unomi-neutral: #475569;
+
+    /* Backgrounds & borders */
+    --unomi-white: #ffffff;
+    --unomi-bg: var(--unomi-white);
+    --unomi-bg-soft: #f8fafc;
+    --unomi-neutral-bg: #f1f5f9;
+    --unomi-border: #e2e8f0;
+
+    /* Semantic — success (green) */
+    --unomi-success: #059669;
+    --unomi-success-bg: #ecfdf5;
+
+    /* Semantic — info (blue) */
+    --unomi-info: #2563eb;
+    --unomi-info-bg: #dbeafe;
+    --unomi-info-dark: #0369a1;
+    --unomi-info-dark-bg: #e0f2fe;
+
+    /* Semantic — rose (pink) */
+    --unomi-rose: #db2777;
+    --unomi-rose-bg: #fce7f3;
+
+    /* Semantic — amber (warning/yellow) */
+    --unomi-amber: #d97706;
+    --unomi-amber-bg: #fef3c7;
+    --unomi-amber-dark: #92400e;
+
+    /* Semantic — danger (red) */
+    --unomi-danger: #dc2626;
+    --unomi-danger-bg: #fef2f2;
+
+    /* Tip / callout */
+    --unomi-tip-bg: #fffbeb;
+    --unomi-tip-border: #fcd34d;
+
+    /* Overlay & glass */
+    --unomi-overlay: rgba(0,0,0,.6);
+    --unomi-shadow-dark: rgba(0,0,0,.2);
+    --unomi-glass: rgba(255,255,255,.92);
+    --unomi-hover-light: rgba(255,255,255,.1);
+    --unomi-glow-faint: rgba(255,255,255,.08);
+
+    /* Text on dark backgrounds */
+    --unomi-on-dark: rgba(255,255,255,.8);
+    --unomi-on-dark-muted: rgba(255,255,255,.75);
+    --unomi-on-dark-subtle: rgba(255,255,255,.85);
+    --unomi-hero-label: rgba(255,255,255,.6);
+    --unomi-hero-muted: rgba(255,255,255,.7);
+    --unomi-hero-link: rgba(255,255,255,.75);
+
+    /* Brand translucent */
+    --unomi-primary-glow: rgba(109,92,231,.3);
+    --unomi-primary-glow-strong: rgba(109,92,231,.6);
+    --unomi-primary-glow-soft: rgba(109,92,231,.85);
+    --unomi-primary-border-light: rgba(109,92,231,.2);
+    --unomi-hero-accent-glow: rgba(167,139,250,.15);
+    --unomi-hero-accent-ghost: rgba(167,139,250,.08);
+    --unomi-hero-accent-whisper: rgba(167,139,250,.06);
+    --unomi-gradient-start-fade: rgba(30,27,75,.2);
+    --unomi-on-dark-dim: rgba(255,255,255,.65);
+
+    /* Gradient anchors */
+    --unomi-gradient-start: #312e81;
+    --unomi-gradient-mid: #5b21b6;
+
+    /* Layout tokens */
+    --unomi-radius: 1rem;
+    --unomi-radius-sm: 0.5rem;
+    --unomi-radius-lg: 1.5rem;
+    --unomi-shadow-sm: 0 1px 3px rgba(0,0,0,.06);
+    --unomi-shadow: 0 4px 24px rgba(0,0,0,.07);
+    --unomi-shadow-lg: 0 12px 40px rgba(0,0,0,.1);
+    --unomi-transition: .25s cubic-bezier(.4,0,.2,1);
+    --unomi-gradient: linear-gradient(135deg, var(--unomi-primary) 0%, var(--unomi-hero-accent) 100%);
+    --unomi-gradient-dark: linear-gradient(135deg, var(--unomi-gradient-start) 0%, var(--unomi-gradient-mid) 50%, var(--unomi-primary) 100%);
 }
 
+/* ---------- Base ---------- */
+body {
+    font-family: 'Inter', system-ui, -apple-system, sans-serif;
+    color: var(--unomi-text);
+    background: var(--unomi-bg);
+    font-size: 1rem;
+    line-height: 1.7;
+    -webkit-font-smoothing: antialiased;
+    -moz-osx-font-smoothing: grayscale;
+    padding-top: 0;
+}
+
+/* ---------- Typography ---------- */
+h1, h2, h3, h4, h5, h6 {
+    font-weight: 700;
+    line-height: 1.25;
+    color: var(--unomi-text);
+    letter-spacing: -0.02em;
+}
+
+h1 { font-size: clamp(2rem, 5vw, 3.25rem); }
+h2 { font-size: clamp(1.5rem, 3.5vw, 2.25rem); }
+h3 { font-size: clamp(1.25rem, 2.5vw, 1.5rem); }
+
+.display-title {
+    font-size: clamp(2.5rem, 6vw, 4rem);
+    font-weight: 800;
+    letter-spacing: -0.03em;
+    line-height: 1.1;
+}
+
+.lead {
+    font-size: 1.15rem;
+    color: var(--unomi-text-muted);
+    font-weight: 400;
+    line-height: 1.8;
+}
+
+.section-label {
+    font-size: 0.75rem;
+    font-weight: 700;
+    text-transform: uppercase;
+    letter-spacing: 0.1em;
+    color: var(--unomi-primary);
+}
+
+/* ---------- Links ---------- */
 a {
-  color: #5c4cdb;
+    color: var(--unomi-primary);
+    text-decoration: none;
+    transition: color var(--unomi-transition);
 }
 
 a:hover {
-  color: #5c4cdb;
-  text-decoration: underline;
+    color: var(--unomi-primary-dark);
 }
 
-.nav-item a {
-  color: #5a5a5a;
+/* ---------- Focus Indicators (WCAG 2.4.7) ---------- */
+a:focus-visible,
+button:focus-visible,
+.btn:focus-visible,
+input:focus-visible,
+select:focus-visible,
+textarea:focus-visible,
+[tabindex]:focus-visible {
+    outline: 2px solid var(--unomi-primary);
+    outline-offset: 2px;
+    border-radius: 2px;
 }
 
-.nav-item a:hover {
-  color: #000000;
+/* ---------- Navbar ---------- */
+.navbar {
+    padding: 0.75rem 0;
+    transition: box-shadow var(--unomi-transition), background var(--unomi-transition);
+    -webkit-backdrop-filter: blur(12px);
+    backdrop-filter: blur(12px);
+    background: var(--unomi-glass) !important;
 }
 
-.navbar-toggler-icon {
-  color: #5a5a5a;
+.navbar.scrolled {
+    box-shadow: var(--unomi-shadow-sm);
 }
 
-/* Product highlight
-------------------------- */
-
-.product {
-  background-color: #5c4cdb;
-  color: #ffffff;
+.navbar-brand img {
+    transition: opacity var(--unomi-transition);
 }
 
-.product a {
-  color: #ffffff;
-  text-decoration: none;
+.navbar-brand:hover img {
+    opacity: .8;
 }
 
-.product a:hover {
-   color: #ffffff;
-   text-decoration: none;
+.navbar-nav .nav-link {
+    font-size: 0.9rem;
+    font-weight: 500;
+    color: var(--unomi-text-muted);
+    padding: 0.5rem 0.85rem;
+    border-radius: var(--unomi-radius-sm);
+    transition: color var(--unomi-transition), background var(--unomi-transition);
 }
 
-.product .btn-primary {
-  background-color: #560bd0 !important;
-  border-color: #510bc4 !important;
+.navbar-nav .nav-link:hover,
+.navbar-nav .nav-link.active {
+    color: var(--unomi-primary);
+    background: var(--unomi-primary-light);
 }
 
-.product .btn-primary:hover {
-  box-shadow: 0 0 6px 0 rgba(0, 0, 0, 0.12), 0 3px 6px 0 rgba(0, 0, 0, 0.18);
+.dropdown-menu {
+    min-width: 16rem;
+    border: 1px solid var(--unomi-border);
 }
 
+.dropdown-item {
+    font-size: 0.875rem;
+    font-weight: 500;
+    color: var(--unomi-text);
+    transition: background var(--unomi-transition);
+}
+
+.dropdown-item:hover,
+.dropdown-item:focus {
+    background: var(--unomi-primary-light);
+    color: var(--unomi-primary-dark);
+}
+
+.dropdown-item i {
+    width: 1.25rem;
+    text-align: center;
+}
+
+/* ---------- Buttons ---------- */
+.btn-primary,
+.btn-outline-primary {
+    border-radius: var(--unomi-radius-sm);
+    font-weight: 600;
+    transition: all var(--unomi-transition);
+}
+
+.btn-primary {
+    background: var(--unomi-primary);
+    border-color: var(--unomi-primary);
+}
+
+.btn-outline-primary {
+    color: var(--unomi-primary);
+    border-color: var(--unomi-primary);
+}
+
+.btn-primary:hover,
+.btn-outline-primary:hover {
+    transform: translateY(-1px);
+    box-shadow: 0 6px 20px var(--unomi-primary-glow);
+}
+
+.btn-primary:hover {
+    background: var(--unomi-primary-dark);
+    border-color: var(--unomi-primary-dark);
+}
+
+.btn-outline-primary:hover {
+    background: var(--unomi-primary);
+    border-color: var(--unomi-primary);
+}
+
+.btn-lg {
+    padding: 0.75rem 2rem;
+    font-size: 1rem;
+    border-radius: var(--unomi-radius-sm);
+}
+
+.btn-sm.rounded-pill {
+    font-size: 0.8rem;
+    padding: 0.4rem 1rem;
+}
+
+/* ---------- Hero Section ---------- */
+.hero {
+    background: var(--unomi-gradient-dark);
+    color: var(--unomi-white);
+    padding: 8rem 0 6rem;
+    position: relative;
+    overflow: hidden;
+}
+
+.hero::before {
+    content: '';
+    position: absolute;
+    top: -50%;
+    right: -20%;
+    width: 60%;
+    height: 200%;
+    background: radial-gradient(ellipse, var(--unomi-hero-accent-glow) 0%, transparent 70%);
+    pointer-events: none;
+}
+
+.hero::after {
+    content: '';
+    position: absolute;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    height: 4rem;
+    background: linear-gradient(to bottom, transparent, var(--unomi-gradient-start-fade));
+    pointer-events: none;
+}
+
+.hero h1 {
+    color: var(--unomi-white);
+}
+
+.hero .lead {
+    color: var(--unomi-on-dark);
+    font-size: 1.2rem;
+    max-width: 36rem;
+}
+
+.hero .btn-primary {
+    background: var(--unomi-white);
+    color: var(--unomi-primary-dark);
+    border: none;
+    font-weight: 700;
+}
+
+.hero .btn-primary:hover {
+    background: var(--unomi-primary-light);
+    color: var(--unomi-primary-dark);
+    box-shadow: 0 6px 20px var(--unomi-shadow-dark);
+}
+
+.hero .btn-outline-light {
+    border-width: 2px;
+    font-weight: 600;
+    border-radius: var(--unomi-radius-sm);
+}
+
+.hero .btn-outline-light:hover {
+    background: var(--unomi-hover-light);
+    transform: translateY(-1px);
+}
+
+/* ---------- Sections ---------- */
+.section {
+    padding: 5rem 0;
+}
+
+.section-alt {
+    background: var(--unomi-bg-soft);
+}
+
+.section-gradient {
+    background: var(--unomi-gradient-dark);
+    color: var(--unomi-white);
+}
+
+.section-gradient h2,
+.section-gradient h3 {
+    color: var(--unomi-white);
+}
+
+.section-gradient .lead,
+.section-gradient p {
+    color: var(--unomi-on-dark);
+}
+
+/* ---------- Cards ---------- */
+.card {
+    border: 1px solid var(--unomi-border);
+    border-radius: var(--unomi-radius);
+    transition: all var(--unomi-transition);
+    overflow: hidden;
+}
+
+.card:hover {
+    box-shadow: var(--unomi-shadow);
+    transform: translateY(-4px);
+    border-color: transparent;
+}
+
+.card-body {
+    padding: 1.75rem;
+}
+
+.feature-card {
+    border: 1px solid var(--unomi-border);
+    border-radius: var(--unomi-radius);
+    padding: 2rem;
+    height: 100%;
+    transition: all var(--unomi-transition);
+    background: var(--unomi-bg);
+}
+
+.feature-card:hover {
+    box-shadow: var(--unomi-shadow);
+    transform: translateY(-4px);
+    border-color: var(--unomi-primary);
+}
+
+.feature-icon {
+    width: 3rem;
+    height: 3rem;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    border-radius: var(--unomi-radius-sm);
+    background: var(--unomi-primary-light);
+    color: var(--unomi-primary);
+    font-size: 1.25rem;
+    margin-bottom: 1rem;
+    flex-shrink: 0;
+}
+
+.feature-icon-lg {
+    width: 4rem;
+    height: 4rem;
+    font-size: 1.5rem;
+}
+
+/* ---------- SVG Illustrations ---------- */
+.illustration {
+    max-width: 100%;
+    height: auto;
+}
+
+.illustration-container {
+    position: relative;
+}
+
+.illustration-container svg {
+    max-width: 100%;
+    height: auto;
+}
+
+/* ---------- Architecture / Mermaid Diagrams ---------- */
+.mermaid,
+pre.mermaid {
+    background: var(--unomi-bg-soft);
+    border-radius: var(--unomi-radius);
+    padding: 2rem;
+    border: 1px solid var(--unomi-border);
+    overflow-x: auto;          /* prevent horizontal page scroll on mobile */
+    -webkit-overflow-scrolling: touch;
+}
+
+/* ---------- Steps / Process ---------- */
+.step-number {
+    width: 2.5rem;
+    height: 2.5rem;
+    display: inline-flex;
+    align-items: center;
+    justify-content: center;
+    border-radius: 50%;
+    background: var(--unomi-gradient);
+    color: var(--unomi-white);
+    font-weight: 700;
+    font-size: 0.9rem;
+    flex-shrink: 0;
+}
+
+/* ---------- Badges / Tags ---------- */
+.badge-primary {
+    background: var(--unomi-primary-light);
+    color: var(--unomi-primary);
+    font-weight: 600;
+    font-size: 0.75rem;
+    padding: 0.35em 0.75em;
+    border-radius: 2rem;
+}
+
+.badge-success {
+    background: var(--unomi-success-bg);
+    color: var(--unomi-success);
+}
+
+.badge-warning {
+    background: var(--unomi-tip-bg);
+    color: var(--unomi-amber);
+}
+
+/* ---------- Community Cards ---------- */
+.community-card {
+    border: 1px solid var(--unomi-border);
+    border-radius: var(--unomi-radius);
+    padding: 1.5rem;
+    display: flex;
+    align-items: flex-start;
+    gap: 1rem;
+    transition: all var(--unomi-transition);
+    background: var(--unomi-bg);
+    height: 100%;
+}
+
+.community-card:hover {
+    box-shadow: var(--unomi-shadow);
+    transform: translateY(-2px);
+    border-color: var(--unomi-primary);
+    text-decoration: none;
+}
+
+.community-card .community-icon {
+    width: 3rem;
+    height: 3rem;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    border-radius: var(--unomi-radius-sm);
+    font-size: 1.25rem;
+    flex-shrink: 0;
+}
+
+/* ---------- Video Thumbnails ---------- */
+.feature-card a[href*="youtube"] img {
+    transition: transform var(--unomi-transition), filter var(--unomi-transition);
+}
+.feature-card a[href*="youtube"]:hover img {
+    transform: scale(1.05);
+    filter: brightness(.85);
+}
+.feature-card a[href*="youtube"]:hover .rounded-circle {
+    background: var(--unomi-primary-glow-soft) !important;
+}
+
+/* ---------- Integration Cards ---------- */
+.integration-card {
+    border: 1px solid var(--unomi-border);
+    border-radius: var(--unomi-radius);
+    padding: 2rem;
+    text-align: center;
+    transition: all var(--unomi-transition);
+    background: var(--unomi-bg);
+    height: 100%;
+}
+
+.integration-card:hover {
+    box-shadow: var(--unomi-shadow);
+    transform: translateY(-4px);
+    border-color: var(--unomi-primary);
+}
+
+/* ---------- Sidebar Navigation ---------- */
 .sidenav-menu {
-  background-color: #EDE7F6;
-  font-size: 0.9em;
-  position: fixed;
-
+    position: sticky;
+    top: 5rem;
+    background: var(--unomi-bg-soft);
+    border-radius: var(--unomi-radius);
+    padding: 1.5rem;
+    border: 1px solid var(--unomi-border);
+    font-size: 0.875rem;
 }
 
 .sidenav-menu a {
-  font-size: 0.9em;
+    display: block;
+    padding: 0.35rem 0.75rem;
+    border-radius: var(--unomi-radius-sm);
+    color: var(--unomi-text-muted);
+    font-weight: 500;
+    transition: all var(--unomi-transition);
 }
 
-.sidenav-menu-sub-title {
-  padding-top: 5px;
+.sidenav-menu a:hover,
+.sidenav-menu a.active {
+    background: var(--unomi-primary-light);
+    color: var(--unomi-primary);
 }
 
-.sidenav-menu-sub-list {
-    padding-left: 16px;
+.sidenav-menu .menu-title {
+    font-weight: 700;
+    font-size: 0.7rem;
+    text-transform: uppercase;
+    letter-spacing: 0.08em;
+    color: var(--unomi-text-muted);
+    padding: 0 0.75rem;
+    margin-bottom: 0.5rem;
 }
 
-/* CUSTOMIZE THE CAROUSEL
--------------------------------------------------- */
-
-/* Carousel base class */
-.carousel {
-  margin-bottom: 4rem;
-}
-/* Since positioning the image, we need to help out the caption */
-.carousel-caption {
-  bottom: 5rem;
-  height: 2rem;
-  font-size: 0.5rem;
-  z-index: 10;
+/* ---------- Tables ---------- */
+.table {
+    font-size: 0.9rem;
 }
 
-.carousel-caption a {
-  color: #ffffff;
+.table thead th {
+    font-weight: 600;
+    font-size: 0.8rem;
+    text-transform: uppercase;
+    letter-spacing: 0.05em;
+    color: var(--unomi-text-muted);
+    border-top: 0;
+    border-bottom-width: 1px;
 }
 
-/* Declare heights because of positioning of img element */
-.carousel-item {
-  height: 7rem;
-  background-color: #5c4cdb;
+/* ---------- Code ---------- */
+pre, code {
+    font-family: 'JetBrains Mono', 'Fira Code', monospace;
 }
 
-
-/* MARKETING CONTENT
--------------------------------------------------- */
-
-/* Center align the text within the three columns below the carousel */
-.marketing .col-lg-4 {
-  margin-bottom: 1.5rem;
-  text-align: center;
-}
-.marketing h2 {
-  font-weight: 400;
-}
-.marketing .col-lg-4 p {
-  margin-right: .75rem;
-  margin-left: .75rem;
+pre {
+    background: var(--unomi-text);
+    color: var(--unomi-border);
+    border-radius: var(--unomi-radius-sm);
+    padding: 1.25rem;
+    font-size: 0.85rem;
+    overflow-x: auto;
+    max-width: 100%;             /* prevent breaking out of container on mobile */
+    -webkit-overflow-scrolling: touch;
 }
 
-
-/* Featurettes
-------------------------- */
-
-.featurette-divider {
-  margin: 2rem 0; /* Space out the Bootstrap <hr> more */
+code {
+    font-size: 0.85em;
 }
 
-/* Thin out the marketing headings */
-.featurette-heading {
-  font-weight: 300;
-  line-height: 1;
-  letter-spacing: -.05rem;
+/* ---------- Footer ---------- */
+.footer-link {
+    color: var(--unomi-hero-link);
+    text-decoration: none;
+    transition: color var(--unomi-transition);
 }
 
-.featurette {
-  font-size: 1em;
+.footer-link:hover {
+    color: var(--unomi-white);
 }
 
-/* Projects
-------------------------- */
-
-/* Thin out the marketing headings */
-.project-heading {
-  font-weight: 300;
-  line-height: 1;
-  letter-spacing: -.05rem;
+/* ---------- CTA Banner ---------- */
+.cta-banner {
+    background: var(--unomi-gradient);
+    border-radius: var(--unomi-radius-lg);
+    padding: 3rem;
+    color: var(--unomi-white);
+    position: relative;
+    overflow: hidden;
 }
 
-.table th {
-  border-top: 0px;
+.cta-banner::before {
+    content: '';
+    position: absolute;
+    top: -50%;
+    right: -10%;
+    width: 40%;
+    height: 200%;
+    background: radial-gradient(ellipse, var(--unomi-glow-faint) 0%, transparent 70%);
+    pointer-events: none;
 }
 
-.footer {
-  font-size: 0.9em;
+.cta-banner h2, .cta-banner h3 {
+    color: var(--unomi-white);
 }
 
-/* RESPONSIVE CSS
--------------------------------------------------- */
-
-@media (min-width: 40em) {
-  /* Bump up size of carousel content */
-  .carousel-caption p {
-    margin-bottom: 1.25rem;
-    font-size: 1rem;
-    line-height: 1.4;
-  }
-
-  .featurette-heading {
-    font-size: 30px;
-  }
-
-  .project-heading {
-    font-size: 30px;
-  }
+.cta-banner p {
+    color: var(--unomi-on-dark-subtle);
 }
 
-@media (max-width: 39em) {
-  .sidenav-menu {
-    display: none;
-  }
+/* ---------- Inline SVG icons ---------- */
+.icon-circle {
+    display: inline-flex;
+    align-items: center;
+    justify-content: center;
+    border-radius: 50%;
 }
 
+/* ---------- Divider ---------- */
+.section-divider {
+    height: 1px;
+    background: var(--unomi-border);
+    border: none;
+    margin: 0;
+}
+
+/* ---------- Animations ---------- */
+@keyframes fadeInUp {
+    from {
+        opacity: 0;
+        transform: translateY(1.5rem);
+    }
+    to {
+        opacity: 1;
+        transform: translateY(0);
+    }
+}
+
+.animate-in {
+    animation: fadeInUp 0.6s ease-out both;
+}
+
+.delay-1 { animation-delay: 0.1s; }
+.delay-2 { animation-delay: 0.2s; }
+.delay-3 { animation-delay: 0.3s; }
+.delay-4 { animation-delay: 0.4s; }
+
+/* ---------- Responsive ---------- */
+@media (max-width: 991.98px) {
+    .navbar-collapse {
+        padding: 1rem 0;
+    }
+
+    .navbar-nav .nav-link {
+        padding: 0.6rem 1rem;
+    }
+
+    .dropdown-menu {
+        border: none;
+        box-shadow: none;
+        padding-left: 1rem;
+    }
+
+    .hero {
+        padding: 6rem 0 4rem;
+    }
+
+    .section {
+        padding: 3.5rem 0;
+    }
+}
+
+@media (max-width: 767.98px) {
+    .hero {
+        padding: 5rem 0 3rem;
+    }
+
+    .section {
+        padding: 3rem 0;
+    }
+
+    .cta-banner {
+        padding: 2rem 1.5rem;
+    }
+
+    .feature-card {
+        padding: 1.5rem;
+    }
+
+    .sidenav-menu {
+        position: static;
+        margin-bottom: 2rem;
+    }
+
+    .display-title {
+        font-size: 2rem;
+    }
+}
+
+@media (max-width: 575.98px) {
+    .hero {
+        padding: 4.5rem 0 2.5rem;
+        text-align: center;
+    }
+
+    .hero .lead {
+        margin-left: auto;
+        margin-right: auto;
+    }
+
+    .step-number {
+        width: 2rem;
+        height: 2rem;
+        font-size: 0.8rem;
+    }
+
+    .news-item { flex-wrap: wrap; }
+    .news-date { min-width: auto; width: 100%; margin-bottom: .15rem; }
+}
+
+/* ---------- Utility Classes ---------- */
+.text-gradient {
+    background: var(--unomi-gradient);
+    -webkit-background-clip: text;
+    -webkit-text-fill-color: transparent;
+    background-clip: text;
+}
+
+.bg-gradient-subtle {
+    background: linear-gradient(180deg, var(--unomi-bg-soft) 0%, var(--unomi-bg) 100%);
+}
+
+.rounded-xl {
+    border-radius: var(--unomi-radius) !important;
+}
+
+.rounded-2xl {
+    border-radius: var(--unomi-radius-lg) !important;
+}
+
+/* ---------- Page Header ---------- */
+.page-header {
+    background: var(--unomi-gradient-dark);
+    color: var(--unomi-white);
+    padding: 7rem 0 3rem;
+    margin-bottom: 0;
+}
+
+.page-header h1 {
+    color: var(--unomi-white);
+    font-weight: 800;
+}
+
+.page-header .lead {
+    color: var(--unomi-on-dark-muted);
+    max-width: 40rem;
+}
+
+/* ---------- Version badges ---------- */
+.version-card {
+    border: 1px solid var(--unomi-border);
+    border-radius: var(--unomi-radius);
+    padding: 1.5rem;
+    transition: all var(--unomi-transition);
+}
+
+.version-card:hover {
+    box-shadow: var(--unomi-shadow-sm);
+}
+
+.version-card.featured {
+    border-color: var(--unomi-primary);
+    box-shadow: 0 0 0 1px var(--unomi-primary);
+}
+
+/* ---------- News timeline ---------- */
+.news-item {
+    display: flex;
+    align-items: baseline;
+    gap: .75rem;
+    padding: .65rem 0;
+    border-bottom: 1px solid var(--unomi-border);
+}
+
+.news-item:last-child { border-bottom: none; }
+
+.news-date {
+    flex: 0 0 auto;
+    font-size: .75rem;
+    font-weight: 600;
+    color: var(--unomi-text-muted);
+    font-variant-numeric: tabular-nums;
+    min-width: 5.5rem;
+}
+
+.news-icon {
+    flex: 0 0 auto;
+    font-size: .85rem;
+    color: var(--unomi-primary);
+}
+
+.news-link {
+    font-size: .75rem;
+    font-weight: 600;
+    margin-left: .5rem;
+    white-space: nowrap;
+}
+
+/* ---------- Ecosystem marquee ---------- */
+.ecosystem-marquee {
+    overflow: hidden;
+    position: relative;
+    padding: 0.5rem 0 1rem;
+    /* Fade edges */
+    -webkit-mask-image: linear-gradient(to right, transparent, var(--unomi-text) 5%, var(--unomi-text) 95%, transparent);
+    mask-image: linear-gradient(to right, transparent, var(--unomi-text) 5%, var(--unomi-text) 95%, transparent);
+}
+
+@keyframes marquee-scroll {
+    0%   { transform: translateX(0); }
+    100% { transform: translateX(-50%); }
+}
+
+.ecosystem-track {
+    display: flex;
+    gap: 1.5rem;
+    width: max-content;
+    animation: marquee-scroll 40s linear infinite;
+}
+
+.ecosystem-card {
+    flex: 0 0 auto;
+    width: 280px;
+    background: var(--unomi-white);
+    border: 1px solid var(--unomi-border);
+    border-radius: var(--unomi-radius);
+    padding: 1.25rem 1.5rem;
+    transition: box-shadow var(--unomi-transition), transform var(--unomi-transition);
+}
+
+.ecosystem-card:hover {
+    box-shadow: var(--unomi-shadow);
+    transform: translateY(-3px);
+}
+
+.ecosystem-card-oss {
+    background: var(--unomi-primary-light);
+    border-color: var(--unomi-primary-border-light);
+    display: flex;
+    align-items: center;
+    justify-content: center;
+}
+
+@media (max-width: 767.98px) {
+    .ecosystem-card { width: 240px; padding: 1rem 1.25rem; }
+    .ecosystem-track { gap: 1rem; animation-duration: 30s; }
+}
+
+@media (prefers-reduced-motion: reduce) {
+    .ecosystem-track { animation: none !important; flex-wrap: wrap; justify-content: center; }
+    .ecosystem-marquee { mask-image: none; -webkit-mask-image: none; }
+}
+
+/* ---------- Scroll margin for anchor links ---------- */
+[id] {
+    scroll-margin-top: 5rem;
+}
+
+/* ---------- Color utility classes ---------- */
+
+/* Badge variants */
+.badge-secondary  { background: var(--unomi-neutral-bg) !important; color: var(--unomi-text-muted) !important; }
+.badge-retired    { background: var(--unomi-amber-bg) !important; color: var(--unomi-amber-dark) !important; }
+.badge-coming-soon{ background: var(--unomi-success-bg) !important; color: var(--unomi-success) !important; }
+.badge-oss        { background: var(--unomi-info-dark-bg) !important; color: var(--unomi-info-dark) !important; font-size: .65em; vertical-align: middle; }
+
+/* Community / feature icon color variants */
+.icon-primary  { background: var(--unomi-primary-light); color: var(--unomi-primary); }
+.icon-rose     { background: var(--unomi-rose-bg); color: var(--unomi-rose); }
+.icon-amber    { background: var(--unomi-amber-bg); color: var(--unomi-amber); }
+.icon-success  { background: var(--unomi-success-bg); color: var(--unomi-success); }
+.icon-info     { background: var(--unomi-info-bg); color: var(--unomi-info); }
+.icon-neutral  { background: var(--unomi-neutral-bg); color: var(--unomi-text); }
+.icon-purple   { background: var(--unomi-primary-subtle); color: var(--unomi-purple-deep); }
+.icon-danger   { background: var(--unomi-danger-bg); color: var(--unomi-danger); }
+.icon-neutral-dark { background: var(--unomi-neutral-bg); color: var(--unomi-neutral); }
+
+/* Play button overlay */
+.play-overlay    { width: 3rem; height: 3rem; background: var(--unomi-overlay); }
+.play-overlay-lg { width: 3.5rem; height: 3.5rem; background: var(--unomi-overlay); }
+
+/* Hero text utilities */
+.text-hero-accent { color: var(--unomi-hero-accent); }
+.text-hero-label  { color: var(--unomi-hero-label); }
+.text-hero-muted  { color: var(--unomi-hero-muted); }
+.text-hero-link   { color: var(--unomi-hero-link); }
+
+/* Semantic text colors */
+.text-success-var { color: var(--unomi-success); }
+
+/* Tip / callout box */
+.tip-box { background: var(--unomi-tip-bg); border-color: var(--unomi-tip-border); }
+
+/* ---------- Reusable utility classes ---------- */
+
+/* Video thumbnail containers */
+.video-thumbnail  { aspect-ratio: 16/9; }
+.img-cover        { object-fit: cover; }
+.play-icon        { font-size: 1.5rem; margin-left: 2px; }
+.play-icon-sm     { font-size: 1.2rem; margin-left: 2px; }
+
+/* Blockquote attribution (override fst-italic) */
+.quote-attribution { font-style: normal; }
+
+/* Emeritus / retired member cards */
+.card-emeritus { opacity: .75; }
+
+/* Small feature icon variant */
+.feature-icon-sm { width: 2rem; height: 2rem; font-size: 1rem; }
+
+/* Badge status dot */
+.badge-dot { font-size: .5em; }
+
+/* Info / empty-state box */
+.info-box {
+    background: var(--unomi-bg-soft);
+    border: 1px solid var(--unomi-border);
+    border-radius: var(--unomi-radius-sm);
+}
+
+/* Hero illustration max-width */
+.hero-illustration { max-width: 560px; }
+
+/* Large primary icon (e.g. globe icon in CDP section) */
+.icon-lg-primary { font-size: 2rem; color: var(--unomi-primary); }
+
+/* Logo/image max-width variants */
+.mw-220 { max-width: 220px; }
+.mw-234 { max-width: 234px; }
+
+/* Badge status dot (smaller variant for version badges) */
+.badge-dot-sm { font-size: .45em; }
+
+/* CVE badge */
+.badge-cve { font-size: .65rem; }
+
+/* Clickable summary */
+.cursor-pointer { cursor: pointer; }
+
+/* Background accent (light primary) */
+.bg-primary-light { background: var(--unomi-primary-light); }
+
+/* Section without bottom padding (e.g. TOC) */
+.section-flush-bottom { padding-bottom: 0; }
+
+/* Feature icon medium variant (2.5rem) */
+.feature-icon-md { width: 2.5rem; height: 2.5rem; font-size: 1rem; }
+
+/* Navbar brand image */
+.navbar-brand-img { width: auto; }
+
+/* Feather icon inline */
+.feather-icon { height: 1.2em; }
diff --git a/src/main/webapp/assets/images/unomi.png b/src/main/webapp/assets/images/unomi.png
new file mode 100644
index 0000000..a334783
--- /dev/null
+++ b/src/main/webapp/assets/images/unomi.png
Binary files differ
diff --git a/src/main/webapp/assets/images/videos/apachecon-2015-keynote-o0VUkSTKTxc.jpg b/src/main/webapp/assets/images/videos/apachecon-2015-keynote-o0VUkSTKTxc.jpg
new file mode 100644
index 0000000..5a2b29e
--- /dev/null
+++ b/src/main/webapp/assets/images/videos/apachecon-2015-keynote-o0VUkSTKTxc.jpg
Binary files differ
diff --git a/src/main/webapp/assets/images/videos/apachecon-2015-y4uNwnVMVyg.jpg b/src/main/webapp/assets/images/videos/apachecon-2015-y4uNwnVMVyg.jpg
new file mode 100644
index 0000000..32e91bb
--- /dev/null
+++ b/src/main/webapp/assets/images/videos/apachecon-2015-y4uNwnVMVyg.jpg
Binary files differ
diff --git a/src/main/webapp/assets/images/videos/apachecon-2018-XO1cLSgeRsw.jpg b/src/main/webapp/assets/images/videos/apachecon-2018-XO1cLSgeRsw.jpg
new file mode 100644
index 0000000..72bdfba
--- /dev/null
+++ b/src/main/webapp/assets/images/videos/apachecon-2018-XO1cLSgeRsw.jpg
Binary files differ
diff --git a/src/main/webapp/assets/images/videos/apachecon-2019-predictionio-3VhC3x0GdDQ.jpg b/src/main/webapp/assets/images/videos/apachecon-2019-predictionio-3VhC3x0GdDQ.jpg
new file mode 100644
index 0000000..09715b5
--- /dev/null
+++ b/src/main/webapp/assets/images/videos/apachecon-2019-predictionio-3VhC3x0GdDQ.jpg
Binary files differ
diff --git a/src/main/webapp/assets/images/videos/apachecon-2019-static-5ts6LuNwH9o.jpg b/src/main/webapp/assets/images/videos/apachecon-2019-static-5ts6LuNwH9o.jpg
new file mode 100644
index 0000000..09715b5
--- /dev/null
+++ b/src/main/webapp/assets/images/videos/apachecon-2019-static-5ts6LuNwH9o.jpg
Binary files differ
diff --git a/src/main/webapp/assets/images/videos/apachecon-2019-ut2ReqhMl2Y.jpg b/src/main/webapp/assets/images/videos/apachecon-2019-ut2ReqhMl2Y.jpg
new file mode 100644
index 0000000..905980b
--- /dev/null
+++ b/src/main/webapp/assets/images/videos/apachecon-2019-ut2ReqhMl2Y.jpg
Binary files differ
diff --git a/src/main/webapp/assets/images/videos/coc-2025-ON0EskhpuME.jpg b/src/main/webapp/assets/images/videos/coc-2025-ON0EskhpuME.jpg
new file mode 100644
index 0000000..b51acbe
--- /dev/null
+++ b/src/main/webapp/assets/images/videos/coc-2025-ON0EskhpuME.jpg
Binary files differ
diff --git a/src/main/webapp/assets/images/videos/coc-2025-_6vfuWocQBs.jpg b/src/main/webapp/assets/images/videos/coc-2025-_6vfuWocQBs.jpg
new file mode 100644
index 0000000..0f62ec9
--- /dev/null
+++ b/src/main/webapp/assets/images/videos/coc-2025-_6vfuWocQBs.jpg
Binary files differ
diff --git a/src/main/webapp/assets/images/videos/feathercast-EyT0_so-ayI.jpg b/src/main/webapp/assets/images/videos/feathercast-EyT0_so-ayI.jpg
new file mode 100644
index 0000000..1321d09
--- /dev/null
+++ b/src/main/webapp/assets/images/videos/feathercast-EyT0_so-ayI.jpg
Binary files differ
diff --git a/src/main/webapp/assets/images/videos/mcp-demo-YqPkUhBlcrs.jpg b/src/main/webapp/assets/images/videos/mcp-demo-YqPkUhBlcrs.jpg
new file mode 100644
index 0000000..2336392
--- /dev/null
+++ b/src/main/webapp/assets/images/videos/mcp-demo-YqPkUhBlcrs.jpg
Binary files differ
diff --git a/src/main/webapp/assets/images/videos/meetup-2021-UrhNhXHugKc.jpg b/src/main/webapp/assets/images/videos/meetup-2021-UrhNhXHugKc.jpg
new file mode 100644
index 0000000..ad4cd07
--- /dev/null
+++ b/src/main/webapp/assets/images/videos/meetup-2021-UrhNhXHugKc.jpg
Binary files differ
diff --git a/src/main/webapp/assets/images/videos/opensearch-uNbKW29FCnE.jpg b/src/main/webapp/assets/images/videos/opensearch-uNbKW29FCnE.jpg
new file mode 100644
index 0000000..cd72895
--- /dev/null
+++ b/src/main/webapp/assets/images/videos/opensearch-uNbKW29FCnE.jpg
Binary files differ
diff --git a/src/main/webapp/assets/js/shuffle.js b/src/main/webapp/assets/js/shuffle.js
new file mode 100644
index 0000000..98ccd74
--- /dev/null
+++ b/src/main/webapp/assets/js/shuffle.js
@@ -0,0 +1,24 @@
+/**
+ * ASF compliance: randomize element ordering on every page load.
+ * Elements with [data-shuffle-group] will have their direct children
+ * shuffled using the Fisher-Yates algorithm.
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.
+ */
+(function () {
+    'use strict';
+    document.querySelectorAll('[data-shuffle-group]').forEach(function (container) {
+        var items = Array.from(container.children);
+        // Fisher-Yates shuffle
+        for (var i = items.length - 1; i > 0; i--) {
+            var j = Math.floor(Math.random() * (i + 1));
+            var temp = items[i];
+            items[i] = items[j];
+            items[j] = temp;
+        }
+        items.forEach(function (item) {
+            container.appendChild(item);
+        });
+    });
+})();
diff --git a/src/main/webapp/community/events/apachecon/index.html b/src/main/webapp/community/events/apachecon/index.html
index 22ed1f4..4e49036 100644
--- a/src/main/webapp/community/events/apachecon/index.html
+++ b/src/main/webapp/community/events/apachecon/index.html
@@ -1,119 +1,135 @@
 ---
-title: Events - ApacheCon
+title: Past Apache Events
+description: "Archive of Apache Unomi presentations at ApacheCon and Feathercast events."
+keywords: "ApacheCon, Apache Unomi talks, conference presentations, CDP talks, open source conferences"
 layout: default
 ---
 
-<div class="container">
-
-    <div class="row mb-5 mt-5 pt-3">
-        <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Events</strong></div>
-            <ul class="list-unstyled mb-3">
-                <li><a href="/community/events/index.html">Overview</a></li>
-                <li class="sidenav-menu-sub-title">Coming up</li>
-                <li>
-                    <ul class="list-unstyled sidenav-menu-sub-list">
-                        <li>None planned currently.</li>
-                    </ul>
-                </li>
-                <li class="sidenav-menu-sub-title">Past events</li>
-                <li>
-                    <ul class="list-unstyled sidenav-menu-sub-list">
-                        <li><a href="/community/events/meetups/2021-11-18.html">Nov 18th, 2021 Meetup</a></li>
-                        <li><a href="/community/events/apachecon/index.html">Previous events</a></li>
-                    </ul>
-                </li>
-            </ul>
-        </div>
-
-        <div class="col-8 pt-3 offset-4">
-
-            <h2>Past Apache events</h2>
-
-            <h3 class="mt-5">Feathercast</h3>
-
-            <div class="row">
-                <div class="col-4">
-                    <iframe width="250" height="150" src="https://www.youtube.com/embed/EyT0_so-ayI"
-                            title="YouTube video player" frameborder="0"
-                            allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
-                            allowfullscreen></iframe>
-                </div>
-                <div class="col-8 p-5">
-                    <h5>June 2020 Interview of Apache Unomi PMC Serge Huber.</h5>
-                </div>
-            </div>
-
-            <h3 class="mt-5">ApacheCon NA 2019</h3>
-
-            <div class="row">
-                <div class="col-4">
-                    <iframe width="250" height="150" src="https://www.youtube.com/embed/3VhC3x0GdDQ"
-                            title="YouTube video player" frameborder="0"
-                            allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
-                            allowfullscreen></iframe>
-                </div>
-                <div class="col-8 p-5">
-                    <h5>Session - Adding artificial intelligence to Apache Unomi using Apache PredictionIO.</h5>
-                </div>
-            </div>
-
-            <div class="row">
-                <div class="col-4">
-                    <iframe width="250" height="150" src="https://www.youtube.com/embed/5ts6LuNwH9o"
-                            title="YouTube video player" frameborder="0"
-                            allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
-                            allowfullscreen></iframe>
-                </div>
-                <div class="col-8 p-5">
-                    <h5>Session - Apache Unomi segmentation integrated into an existing static website.</h5>
-                </div>
-            </div>
-
-            <h3 class="mt-5">ApacheCon Chicago Roadshow 2019</h3>
-
-            <div class="row">
-                <div class="col-4">
-                    <iframe width="250" height="150" src="https://www.youtube.com/embed/ut2ReqhMl2Y?start=3699"
-                            title="YouTube video player" frameborder="0"
-                            allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
-                            allowfullscreen></iframe>
-                </div>
-                <div class="col-8 p-5">
-                    <h5>Customer Segmentation and Marketing Automation with Apache Unomi.</h5>
-                </div>
-            </div>
-
-            <h3 class="mt-5">ApacheCon NA 2018</h3>
-
-            <div class="row">
-                <div class="col-4">
-                    <iframe width="250" height="150" src="https://www.youtube.com/embed/XO1cLSgeRsw"
-                            title="YouTube video player" frameborder="0"
-                            allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
-                            allowfullscreen></iframe>
-                </div>
-                <div class="col-8 p-5">
-                    Session - Apache Unomi - An open source customer data platform.
-                </div>
-            </div>
-
-            <h3 class="mt-5">ApacheCon Europe 2015</h3>
-
-            <div class="row">
-                <div class="col-4">
-                    <iframe width="250" height="150" src="https://www.youtube.com/embed/o0VUkSTKTxc"
-                            title="YouTube video player" frameborder="0"
-                            allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
-                            allowfullscreen></iframe>
-                </div>
-                <div class="col-8 p-5">
-                    <h5>Keynote - Introducing the Apache Unomi Project.</h5>
-                </div>
-            </div>
-
-        </div>
-
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Events</p>
+        <h1>Past Apache Events</h1>
+        <p class="lead">Conference talks and interviews featuring Apache Unomi.</p>
     </div>
+</section>
 
-</div>
\ No newline at end of file
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Events</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="/community/events/index.html">Overview</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Coming Up</div>
+                    <ul class="list-unstyled mb-3">
+                        <li class="small text-muted px-3">None planned currently.</li>
+                    </ul>
+                    <div class="menu-title mt-3">Past Events</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="/community/events/meetups/2021-11-18.html">Nov 2021 Meetup</a></li>
+                        <li><a href="/community/events/apachecon/index.html" class="active">ApacheCon Talks</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
+
+                <h2 class="h4 mb-4">Feathercast</h2>
+                <div class="row g-4 mb-5">
+                    <div class="col-md-5">
+                        <a href="https://www.youtube.com/watch?v=EyT0_so-ayI" target="_blank" rel="noopener" class="d-block position-relative rounded overflow-hidden video-thumbnail">
+                            <img src="/assets/images/videos/feathercast-EyT0_so-ayI.jpg" alt="Feathercast Interview 2020" class="w-100 h-100 img-cover" loading="lazy">
+                            <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                        </a>
+                    </div>
+                    <div class="col-md-7 d-flex align-items-center">
+                        <div>
+                            <h3 class="h6 fw-semibold">June 2020 Interview of Apache Unomi PMC Serge Huber.</h3>
+                            <a href="https://www.youtube.com/watch?v=EyT0_so-ayI" target="_blank" rel="noopener" class="btn btn-primary btn-sm mt-2"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                        </div>
+                    </div>
+                </div>
+
+                <h2 class="h4 mb-4">ApacheCon NA 2019</h2>
+                <div class="row g-4 mb-4">
+                    <div class="col-md-5">
+                        <a href="https://www.youtube.com/watch?v=3VhC3x0GdDQ" target="_blank" rel="noopener" class="d-block position-relative rounded overflow-hidden video-thumbnail">
+                            <img src="/assets/images/videos/apachecon-2019-predictionio-3VhC3x0GdDQ.jpg" alt="Adding AI to Apache Unomi using PredictionIO" class="w-100 h-100 img-cover" loading="lazy">
+                            <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                        </a>
+                    </div>
+                    <div class="col-md-7 d-flex align-items-center">
+                        <div>
+                            <h3 class="h6 fw-semibold">Session - Adding artificial intelligence to Apache Unomi using Apache PredictionIO.</h3>
+                            <a href="https://www.youtube.com/watch?v=3VhC3x0GdDQ" target="_blank" rel="noopener" class="btn btn-primary btn-sm mt-2"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                        </div>
+                    </div>
+                </div>
+                <div class="row g-4 mb-5">
+                    <div class="col-md-5">
+                        <a href="https://www.youtube.com/watch?v=5ts6LuNwH9o" target="_blank" rel="noopener" class="d-block position-relative rounded overflow-hidden video-thumbnail">
+                            <img src="/assets/images/videos/apachecon-2019-static-5ts6LuNwH9o.jpg" alt="Apache Unomi segmentation in static website" class="w-100 h-100 img-cover" loading="lazy">
+                            <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                        </a>
+                    </div>
+                    <div class="col-md-7 d-flex align-items-center">
+                        <div>
+                            <h3 class="h6 fw-semibold">Session - Apache Unomi segmentation integrated into an existing static website.</h3>
+                            <a href="https://www.youtube.com/watch?v=5ts6LuNwH9o" target="_blank" rel="noopener" class="btn btn-primary btn-sm mt-2"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                        </div>
+                    </div>
+                </div>
+
+                <h2 class="h4 mb-4">ApacheCon Chicago Roadshow 2019</h2>
+                <div class="row g-4 mb-5">
+                    <div class="col-md-5">
+                        <a href="https://www.youtube.com/watch?v=ut2ReqhMl2Y&t=3699" target="_blank" rel="noopener" class="d-block position-relative rounded overflow-hidden video-thumbnail">
+                            <img src="/assets/images/videos/apachecon-2019-ut2ReqhMl2Y.jpg" alt="Customer Segmentation and Marketing Automation" class="w-100 h-100 img-cover" loading="lazy">
+                            <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                        </a>
+                    </div>
+                    <div class="col-md-7 d-flex align-items-center">
+                        <div>
+                            <h3 class="h6 fw-semibold">Customer Segmentation and Marketing Automation with Apache Unomi.</h3>
+                            <a href="https://www.youtube.com/watch?v=ut2ReqhMl2Y&t=3699" target="_blank" rel="noopener" class="btn btn-primary btn-sm mt-2"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                        </div>
+                    </div>
+                </div>
+
+                <h2 class="h4 mb-4">ApacheCon NA 2018</h2>
+                <div class="row g-4 mb-5">
+                    <div class="col-md-5">
+                        <a href="https://www.youtube.com/watch?v=XO1cLSgeRsw" target="_blank" rel="noopener" class="d-block position-relative rounded overflow-hidden video-thumbnail">
+                            <img src="/assets/images/videos/apachecon-2018-XO1cLSgeRsw.jpg" alt="Apache Unomi - An Open Source CDP" class="w-100 h-100 img-cover" loading="lazy">
+                            <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                        </a>
+                    </div>
+                    <div class="col-md-7 d-flex align-items-center">
+                        <div>
+                            <h3 class="h6 fw-semibold">Session - Apache Unomi - An open source customer data platform.</h3>
+                            <a href="https://www.youtube.com/watch?v=XO1cLSgeRsw" target="_blank" rel="noopener" class="btn btn-primary btn-sm mt-2"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                        </div>
+                    </div>
+                </div>
+
+                <h2 class="h4 mb-4">ApacheCon Europe 2015</h2>
+                <div class="row g-4 mb-4">
+                    <div class="col-md-5">
+                        <a href="https://www.youtube.com/watch?v=o0VUkSTKTxc" target="_blank" rel="noopener" class="d-block position-relative rounded overflow-hidden video-thumbnail">
+                            <img src="/assets/images/videos/apachecon-2015-keynote-o0VUkSTKTxc.jpg" alt="Keynote - Introducing Apache Unomi" class="w-100 h-100 img-cover" loading="lazy">
+                            <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                        </a>
+                    </div>
+                    <div class="col-md-7 d-flex align-items-center">
+                        <div>
+                            <h3 class="h6 fw-semibold">Keynote - Introducing the Apache Unomi Project.</h3>
+                            <a href="https://www.youtube.com/watch?v=o0VUkSTKTxc" target="_blank" rel="noopener" class="btn btn-primary btn-sm mt-2"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                        </div>
+                    </div>
+                </div>
+
+            </div>
+        </div>
+    </div>
+</section>
diff --git a/src/main/webapp/community/events/index.html b/src/main/webapp/community/events/index.html
index 351443a..1f04225 100644
--- a/src/main/webapp/community/events/index.html
+++ b/src/main/webapp/community/events/index.html
@@ -1,51 +1,257 @@
 ---
 title: Events
+description: "Apache Unomi community events, meetups, and conference talks."
+keywords: "Apache Unomi events, ApacheCon, meetups, conferences, talks, presentations, CDP events"
 layout: default
+structured_data: >
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "CollectionPage",
+        "name": "Apache Unomi Events",
+        "description": "Past and upcoming community events, conference talks, and meetups for the Apache Unomi project.",
+        "url": "https://unomi.apache.org/community/events/",
+        "mainEntity": {
+            "@type": "ItemList",
+            "name": "Apache Unomi Conference Talks & Events",
+            "itemListElement": [
+                { "@type": "ListItem", "position": 1, "name": "Community Over Code EU 2025 — A CDP in an AI-first World", "url": "https://www.youtube.com/watch?v=UrhNhXHugKc" },
+                { "@type": "ListItem", "position": 2, "name": "ApacheCon North America 2024 — Apache Unomi: The Open Source CDP", "url": "https://www.youtube.com/watch?v=YqPkUhBlcrs" },
+                { "@type": "ListItem", "position": 3, "name": "Community Over Code NA 2024 — What's New in the Latest Releases", "url": "https://www.youtube.com/watch?v=_6vfuWocQBs" },
+                { "@type": "ListItem", "position": 4, "name": "Community Over Code NA 2023 — Apache Unomi Past, Present, and Future", "url": "https://www.youtube.com/watch?v=uNbKW29FCnE" },
+                { "@type": "ListItem", "position": 5, "name": "ApacheCon Asia 2021 — Introduction to Apache Unomi", "url": "https://www.youtube.com/watch?v=ynluCYocfG4" },
+                { "@type": "ListItem", "position": 6, "name": "ApacheCon @Home 2020 — Building a CDP with Apache Unomi", "url": "https://www.youtube.com/watch?v=_EXJQJ69niA" }
+            ]
+        }
+    }
+    </script>
 ---
 
-<div class="container">
-
-    <div class="row mb-5 mt-5 pt-3">
-        <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Events</strong></div>
-            <ul class="list-unstyled mb-3">
-                <li><a href="index.html">Overview</a></li>
-                <li class="sidenav-menu-sub-title">Coming up</li>
-                <li>
-                    <ul class="list-unstyled sidenav-menu-sub-list">
-                        <li>None planned currently.</li>
-                    </ul>
-                </li>
-                <li class="sidenav-menu-sub-title">Past events</li>
-                <li>
-                    <ul class="list-unstyled sidenav-menu-sub-list">
-                        <li><a href="/community/events/meetups/2021-11-18.html">Nov 18th, 2021 Meetup</a></li>
-                        <li><a href="/community/events/apachecon/index.html">Previous events</a></li>
-                    </ul>
-                </li>
-            </ul>
-        </div>
-
-        <div class="col-8 pt-3 offset-4">
-
-            <h2 class="pb-3 mb-2">Events</h2>
-
-            <h3>Coming up !</h3>
-
-            <ul>
-                <li>None planned.</li>
-            </ul>
-
-            <h3>Past events</h3>
-
-            <ul>
-                <li>November 18th, 2021, 1600-1800 CET: <a href="meetups/2021-11-18.html">First ever Apache Unomi
-                    meetup</a></li>
-                <li><a href="/community/events/apachecon/index.html">Previous events</a></li>
-            </ul>
-
-        </div>
-
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Community</p>
+        <h1>Events</h1>
+        <p class="lead">Meetups, conference talks, and community gatherings.</p>
     </div>
+</section>
 
-</div>
\ No newline at end of file
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Events</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html" class="active">Overview</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Coming Up</div>
+                    <ul class="list-unstyled mb-3">
+                        <li class="small text-muted px-3">None planned currently.</li>
+                    </ul>
+                    <div class="menu-title mt-3">Past Events</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="#coc-2025">Community Over Code 2025</a></li>
+                        <li><a href="#opensearch-2025">OpenSearch Talk 2025</a></li>
+                        <li><a href="#mcp-demo-2024">MCP Demo 2024</a></li>
+                        <li><a href="#meetup-2021">Nov 2021 Meetup</a></li>
+                        <li><a href="#feathercast-2020">Feathercast 2020</a></li>
+                        <li><a href="#apachecon-2019">ApacheCon 2019</a></li>
+                        <li><a href="#apachecon-2018">ApacheCon 2018</a></li>
+                        <li><a href="#apachecon-2015">ApacheCon 2015</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
+                <h2 class="h4 mb-4">Upcoming Events</h2>
+                <div class="p-4 rounded-3 mb-5 info-box">
+                    <p class="text-muted mb-2">No events are currently planned.</p>
+                    <p class="small text-muted mb-0">Want to organize a meetup or talk about Apache Unomi? Reach out on the <a href="/community/index.html">mailing list</a>.</p>
+                </div>
+
+                <h2 class="h4 mb-4">Past Events</h2>
+
+                <!-- Community Over Code NA 2025 -->
+                <div id="coc-2025" class="mb-5">
+                    <h3 class="h5 mb-3"><i class="bi bi-calendar-event text-primary me-2"></i>Community Over Code NA 2025 <span class="small text-muted fw-normal">&mdash; Minneapolis, Sep 2025</span></h3>
+                    <div class="row g-3">
+                        <div class="col-md-6">
+                            <div class="feature-card h-100">
+                                <a href="https://www.youtube.com/watch?v=_6vfuWocQBs" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                                    <img src="/assets/images/videos/coc-2025-_6vfuWocQBs.jpg" alt="From Complaining Customers to Brand Promoters" class="w-100 h-100 img-cover" loading="lazy">
+                                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                                </a>
+                                <h4 class="h6 fw-semibold mb-1">From Complaining Customers to Brand Promoters</h4>
+                                <p class="small text-muted mb-0">Real-time AI + customer data demo combining Unomi with Bluesky, Skype, an LLM, an e-commerce site, Inoyu&rsquo;s CDP UI, and HubSpot.</p>
+                            </div>
+                        </div>
+                        <div class="col-md-6">
+                            <div class="feature-card h-100">
+                                <a href="https://www.youtube.com/watch?v=ON0EskhpuME" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                                    <img src="/assets/images/videos/coc-2025-ON0EskhpuME.jpg" alt="AI + CDP = Unlimited Personalized Memory" class="w-100 h-100 img-cover" loading="lazy">
+                                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                                </a>
+                                <h4 class="h6 fw-semibold mb-1">AI + CDP = Unlimited Personalized Memory</h4>
+                                <p class="small text-muted mb-0">How combining a Customer Data Platform with an LLM creates unlimited, personalized, and privacy-compliant memory.</p>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <!-- OpenSearch Contribution Talk -->
+                <div id="opensearch-2025" class="mb-5">
+                    <h3 class="h5 mb-3"><i class="bi bi-camera-video text-primary me-2"></i>OpenSearch Contribution Presentation <span class="small text-muted fw-normal">&mdash; Jan 2025</span></h3>
+                    <div class="row g-3">
+                        <div class="col-md-6">
+                            <div class="feature-card h-100">
+                                <a href="https://www.youtube.com/watch?v=uNbKW29FCnE" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                                    <img src="/assets/images/videos/opensearch-uNbKW29FCnE.jpg" alt="Apache Unomi OpenSearch Contribution" class="w-100 h-100 img-cover" loading="lazy">
+                                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                                </a>
+                                <h4 class="h6 fw-semibold mb-1">Apache Unomi OpenSearch Contribution</h4>
+                                <p class="small text-muted mb-0">The changes proposed to add OpenSearch support to Apache Unomi, including the dual persistence architecture and new tooling.</p>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <!-- MCP Demo -->
+                <div id="mcp-demo-2024" class="mb-5">
+                    <h3 class="h5 mb-3"><i class="bi bi-camera-video text-primary me-2"></i>Claude AI + MCP Demo <span class="small text-muted fw-normal">&mdash; Dec 2024</span></h3>
+                    <div class="row g-3">
+                        <div class="col-md-6">
+                            <div class="feature-card h-100">
+                                <a href="https://www.youtube.com/watch?v=YqPkUhBlcrs" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                                    <img src="/assets/images/videos/mcp-demo-YqPkUhBlcrs.jpg" alt="Claude AI integration with Apache Unomi using MCP" class="w-100 h-100 img-cover" loading="lazy">
+                                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                                </a>
+                                <h4 class="h6 fw-semibold mb-1">Claude AI + Apache Unomi via Model Context Protocol</h4>
+                                <p class="small text-muted mb-0">Anthropic&rsquo;s Claude Desktop integrated with Apache Unomi using MCP to deliver personalized e-commerce experiences through natural language.</p>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <!-- Nov 2021 Meetup -->
+                <div id="meetup-2021" class="mb-5">
+                    <h3 class="h5 mb-3"><i class="bi bi-people text-primary me-2"></i>First Apache Unomi Community Meetup <span class="small text-muted fw-normal">&mdash; Nov 18, 2021 &bull; Online</span></h3>
+                    <div class="row g-3">
+                        <div class="col-md-6">
+                            <div class="feature-card h-100">
+                                <a href="https://www.youtube.com/watch?v=UrhNhXHugKc" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                                    <img src="/assets/images/videos/meetup-2021-UrhNhXHugKc.jpg" alt="First Apache Unomi Meetup" class="w-100 h-100 img-cover" loading="lazy">
+                                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                                </a>
+                                <h4 class="h6 fw-semibold mb-1">Full Meetup Recording</h4>
+                                <p class="small text-muted mb-0">State of the Unomi by Serge Huber, how Jahia and Dropsolid use Unomi, Apache Karaf 5 by Jean-Baptiste Onofr&eacute;, and open Q&amp;A.</p>
+                            </div>
+                        </div>
+                        <div class="col-md-6 d-flex align-items-center">
+                            <div>
+                                <p class="small text-muted mb-0">The first ever online community meetup organized by the Apache Unomi PMC. <a href="meetups/2021-11-18.html" class="fw-semibold">Full agenda &amp; details <i class="bi bi-arrow-right"></i></a></p>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <!-- Feathercast 2020 -->
+                <div id="feathercast-2020" class="mb-5">
+                    <h3 class="h5 mb-3"><i class="bi bi-mic text-primary me-2"></i>Feathercast Interview <span class="small text-muted fw-normal">&mdash; Jun 2020</span></h3>
+                    <div class="row g-3">
+                        <div class="col-md-6">
+                            <div class="feature-card h-100">
+                                <a href="https://www.youtube.com/watch?v=EyT0_so-ayI" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                                    <img src="/assets/images/videos/feathercast-EyT0_so-ayI.jpg" alt="Feathercast Interview 2020" class="w-100 h-100 img-cover" loading="lazy">
+                                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                                </a>
+                                <h4 class="h6 fw-semibold mb-1">Interview of Apache Unomi PMC Serge Huber</h4>
+                                <p class="small text-muted mb-0">Feathercast interview covering the project&rsquo;s vision, use cases, and community.</p>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <!-- ApacheCon 2019 -->
+                <div id="apachecon-2019" class="mb-5">
+                    <h3 class="h5 mb-3"><i class="bi bi-calendar-event text-primary me-2"></i>ApacheCon NA 2019 <span class="small text-muted fw-normal">&mdash; Las Vegas &amp; Chicago Roadshow</span></h3>
+                    <div class="row g-3">
+                        <div class="col-md-6 col-lg-4">
+                            <div class="feature-card h-100">
+                                <a href="https://www.youtube.com/watch?v=ut2ReqhMl2Y" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                                    <img src="/assets/images/videos/apachecon-2019-ut2ReqhMl2Y.jpg" alt="Customer Segmentation &amp; Marketing Automation" class="w-100 h-100 img-cover" loading="lazy">
+                                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                                </a>
+                                <h4 class="h6 fw-semibold mb-1">Customer Segmentation &amp; Marketing Automation</h4>
+                                <p class="small text-muted mb-0">Michael Ghen demonstrates profiles, conditions, actions, rules, segments, and plugins with live demos.</p>
+                            </div>
+                        </div>
+                        <div class="col-md-6 col-lg-4">
+                            <div class="feature-card h-100">
+                                <a href="https://www.youtube.com/watch?v=3VhC3x0GdDQ" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                                    <img src="/assets/images/videos/apachecon-2019-predictionio-3VhC3x0GdDQ.jpg" alt="Adding AI to Unomi using PredictionIO" class="w-100 h-100 img-cover" loading="lazy">
+                                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                                </a>
+                                <h4 class="h6 fw-semibold mb-1">Adding AI to Unomi Using PredictionIO</h4>
+                                <p class="small text-muted mb-0">How to integrate Apache PredictionIO with Unomi for AI-driven personalization.</p>
+                            </div>
+                        </div>
+                        <div class="col-md-6 col-lg-4">
+                            <div class="feature-card h-100">
+                                <a href="https://www.youtube.com/watch?v=5ts6LuNwH9o" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                                    <img src="/assets/images/videos/apachecon-2019-static-5ts6LuNwH9o.jpg" alt="Unomi Segmentation in Static Website" class="w-100 h-100 img-cover" loading="lazy">
+                                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                                </a>
+                                <h4 class="h6 fw-semibold mb-1">Unomi Segmentation in a Static Website</h4>
+                                <p class="small text-muted mb-0">Apache Unomi segmentation integrated into an existing static website.</p>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <!-- ApacheCon 2018 -->
+                <div id="apachecon-2018" class="mb-5">
+                    <h3 class="h5 mb-3"><i class="bi bi-calendar-event text-primary me-2"></i>ApacheCon NA 2018 <span class="small text-muted fw-normal">&mdash; Montreal</span></h3>
+                    <div class="row g-3">
+                        <div class="col-md-6">
+                            <div class="feature-card h-100">
+                                <a href="https://www.youtube.com/watch?v=XO1cLSgeRsw" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                                    <img src="/assets/images/videos/apachecon-2018-XO1cLSgeRsw.jpg" alt="Apache Unomi &mdash; An Open Source CDP" class="w-100 h-100 img-cover" loading="lazy">
+                                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                                </a>
+                                <h4 class="h6 fw-semibold mb-1">Apache Unomi &mdash; An Open Source Customer Data Platform</h4>
+                                <p class="small text-muted mb-0">Serge Huber presents the architecture, features, and roadmap of Apache Unomi.</p>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+                <!-- ApacheCon 2015 -->
+                <div id="apachecon-2015" class="mb-4">
+                    <h3 class="h5 mb-3"><i class="bi bi-calendar-event text-primary me-2"></i>ApacheCon Europe 2015 <span class="small text-muted fw-normal">&mdash; Budapest</span></h3>
+                    <div class="row g-3">
+                        <div class="col-md-6 col-lg-4">
+                            <div class="feature-card h-100">
+                                <a href="https://www.youtube.com/watch?v=y4uNwnVMVyg" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                                    <img src="/assets/images/videos/apachecon-2015-y4uNwnVMVyg.jpg" alt="Apache Unomi Project In-Depth" class="w-100 h-100 img-cover" loading="lazy">
+                                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                                </a>
+                                <h4 class="h6 fw-semibold mb-1">Apache Unomi Project In-Depth</h4>
+                                <p class="small text-muted mb-0">Serge Huber discusses the project and demonstrates IoT device integration with personalized user experiences.</p>
+                            </div>
+                        </div>
+                        <div class="col-md-6 col-lg-4">
+                            <div class="feature-card h-100">
+                                <a href="https://www.youtube.com/watch?v=o0VUkSTKTxc" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                                    <img src="/assets/images/videos/apachecon-2015-keynote-o0VUkSTKTxc.jpg" alt="Keynote - Introducing Apache Unomi" class="w-100 h-100 img-cover" loading="lazy">
+                                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                                </a>
+                                <h4 class="h6 fw-semibold mb-1">Keynote &mdash; Introducing Apache Unomi</h4>
+                                <p class="small text-muted mb-0">Opening keynote introducing the Apache Unomi project to the community.</p>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+
+            </div>
+        </div>
+    </div>
+</section>
diff --git a/src/main/webapp/community/events/meetups/2021-11-18.html b/src/main/webapp/community/events/meetups/2021-11-18.html
index 4d0f806..215745d 100644
--- a/src/main/webapp/community/events/meetups/2021-11-18.html
+++ b/src/main/webapp/community/events/meetups/2021-11-18.html
@@ -1,36 +1,43 @@
 ---
-title: Events - Coming up - Meetups - First Apache Unomi Meetup, Nov 18th 2021 1600-1800 CET
+title: First Apache Unomi Meetup — Nov 18, 2021
+description: "Recording and agenda of the first Apache Unomi community meetup, November 18 2021."
+keywords: "Apache Unomi meetup, first meetup, Unomi community meeting, CDP meetup"
 layout: default
 ---
 
-<div class="container">
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Events</p>
+        <h1>First Apache Unomi Meetup</h1>
+        <p class="lead">November 18, 2021 &bull; 16:00&ndash;18:00 CET &bull; Online</p>
+    </div>
+</section>
 
-    <div class="row mb-5 mt-5 pt-3">
-        <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Events</strong></div>
-            <ul class="list-unstyled mb-3">
-                <li><a href="/community/events/index.html">Overview</a></li>
-                <li class="sidenav-menu-sub-title">Coming up</li>
-                <li>
-                    <ul class="list-unstyled sidenav-menu-sub-list">
-                        <li>None planned currently.</li>
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Events</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="/community/events/index.html">Overview</a></li>
                     </ul>
-                </li>
-                <li class="sidenav-menu-sub-title">Past events</li>
-                <li>
-                    <ul class="list-unstyled sidenav-menu-sub-list">
-                        <li><a href="/community/events/meetups/2021-11-18.html">Nov 18th, 2021 Meetup</a></li>
-                        <li><a href="/community/events/apachecon/index.html">Previous events</a></li>
+                    <div class="menu-title mt-3">Coming Up</div>
+                    <ul class="list-unstyled mb-3">
+                        <li class="small text-muted px-3">None planned currently.</li>
                     </ul>
-                </li>
-            </ul>
-        </div>
+                    <div class="menu-title mt-3">Past Events</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="/community/events/meetups/2021-11-18.html" class="active">Nov 2021 Meetup</a></li>
+                        <li><a href="/community/events/apachecon/index.html">ApacheCon Talks</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
 
-        <div class="col-8 pt-3 offset-4">
+            <img class="rounded mb-4 mx-auto d-block" src="/assets/images/unomi-meetup-logo.png" alt="Unomi Meetup Logo" class="mw-100">
 
-            <img class="rounded mb-4 mx-auto d-block" src="/assets/images/unomi-meetup-logo.png" alt="Unomi Meetup Logo"/>
-
-            <h2>First Apache Unomi Meetup !</h2>
+            <h2 class="h4">First Apache Unomi Meetup !</h2>
             <p>
                 The first ever (online) community meetup of the Apache Unomi CDP project organized by the
                 Apache
@@ -39,14 +46,19 @@
 
             <p>
                 The event was recorded and you can view the event here.
-                <iframe width="560" height="315" src="https://www.youtube.com/embed/UrhNhXHugKc" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
             </p>
+            <div class="mb-4">
+                <a href="https://www.youtube.com/watch?v=UrhNhXHugKc" target="_blank" rel="noopener" class="d-block position-relative rounded overflow-hidden video-thumbnail">
+                    <img src="/assets/images/videos/meetup-2021-UrhNhXHugKc.jpg" alt="First Apache Unomi Meetup" class="w-100 h-100 img-cover" loading="lazy">
+                    <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay-lg"><i class="bi bi-play-fill text-white play-icon-sm"></i></span>
+                </a>
+            </div>
 
-            <h2>When and where</h2>
+            <h2 class="h4">When and where</h2>
 
             <p>November 18th, 2021 at 1600-1800 CET in an online meeting (see registration below).</p>
 
-            <h2>Agenda</h2>
+            <h2 class="h4">Agenda</h2>
 
             <ol>
                 <li>
@@ -80,7 +92,7 @@
                 </li>
 
                 <li>
-                    <p><strong>Apache Karaf 5 (15 minutes) by Jean-Baptise Onofr&eacute;, Apache Karaf PMC chair &amp;
+                    <p><strong>Apache Karaf 5 (15 minutes) by Jean-Baptiste Onofr&eacute;, Apache Karaf PMC chair &amp;
                         OpenSource Europe at
                         Huawei</strong></p>
                     <p>What's new in Apache Karaf 5 and how Unomi can leverage it.</p>
@@ -96,13 +108,13 @@
             </ol>
 
             <p class="text-center">
-                This event operated under the terms of <a href="http://apache.org/foundation/policies/conduct">The
+                This event operated under the terms of <a href="https://www.apache.org/foundation/policies/conduct">The
                 Apache
                 Software Foundation Code of Conduct</a> and its <a
                     href="https://www.apache.org/foundation/policies/privacy.html">Privacy Policy</a>.
             </p>
 
+            </div>
         </div>
-
     </div>
-</div>
\ No newline at end of file
+</section>
diff --git a/src/main/webapp/community/index.html b/src/main/webapp/community/index.html
index 2aa3a4d..ed10fb4 100644
--- a/src/main/webapp/community/index.html
+++ b/src/main/webapp/community/index.html
@@ -1,61 +1,278 @@
 ---
-title: Community
+title: Community &mdash; Get Help & Contact
+description: "Connect with the Apache Unomi community. Join mailing lists, Slack, monthly meetings, report bugs, and get help from developers and users worldwide."
+keywords: "Apache Unomi community, mailing list, Slack, JIRA, open source community, contributor, support channels, monthly meetings"
 layout: default
+structured_data: >
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "FAQPage",
+        "mainEntity": [
+            {
+                "@type": "Question",
+                "name": "How do I get help with Apache Unomi?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "The best way to get help is to subscribe to the users@unomi.apache.org mailing list by sending an email to users-subscribe@unomi.apache.org. You can also join the #unomi channel on the ASF Slack. If you have an @apache.org email, sign in directly at https://the-asf.slack.com. Otherwise, email users@unomi.apache.org to request a guest invitation. See https://infra.apache.org/slack.html for details."
+                }
+            },
+            {
+                "@type": "Question",
+                "name": "How do I join the Apache Unomi Slack channel?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "Send an email to users@unomi.apache.org asking for a guest invitation to the #unomi Slack channel. Include the email address you want the invite sent to. A project member will send you a guest invite. If you already have an @apache.org email you can sign in directly at https://the-asf.slack.com and join #unomi. Full details at https://infra.apache.org/slack.html"
+                }
+            },
+            {
+                "@type": "Question",
+                "name": "How do I report a bug in Apache Unomi?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "Report bugs on the Apache JIRA issue tracker at https://issues.apache.org/jira/browse/UNOMI. Create an ASF JIRA account to submit tickets. For security vulnerabilities, email security@apache.org instead."
+                }
+            },
+            {
+                "@type": "Question",
+                "name": "How do I subscribe to the Apache Unomi mailing list?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "Send an empty email to users-subscribe@unomi.apache.org for user discussions, or dev-subscribe@unomi.apache.org for development discussions. You will receive a confirmation email. The mailing list archives are available at https://lists.apache.org/list.html?users@unomi.apache.org"
+                }
+            },
+            {
+                "@type": "Question",
+                "name": "How do I contribute to Apache Unomi?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "You can contribute by answering questions on the mailing list, improving documentation, reporting bugs on JIRA, submitting pull requests on GitHub (https://github.com/apache/unomi), reviewing designs on the dev mailing list, or writing examples and tutorials. See https://unomi.apache.org/contribute/ for the full contribution guide."
+                }
+            }
+        ]
+    }
+    </script>
 ---
 
-      <div class="container mb-5 pt-5">
-        <div class="col-2 sidenav-menu pt-3">
-          <div class="pb-3 text-uppercase"><strong>Community</strong></div>
-          <ul class="list-unstyled mb-3">
-            <li><a href="events/index.html">Events</a></li>
-            <li><a href="index.html">Contact Us</a></li>
-            <li><a href="policies.html">Policies</a></li>
-            <li><a href="maturity-model-report.html">Maturity model report card</a></li>
-            <li><a href="team.html">Team</a></li>
-          </ul>
+<!-- Page Header -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Community</p>
+        <h1>Get Help &amp; Connect</h1>
+        <p class="lead">The Apache Unomi community is friendly, open, and here to help. Pick the channel that works best for you.</p>
+    </div>
+</section>
+
+<!-- How to Get Help (quick guide) -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-8">
+                <h2 class="h4 mb-3">Not sure where to start?</h2>
+                <p class="text-muted">Here&rsquo;s how most people get help with Apache Unomi.</p>
+            </div>
         </div>
-
-        <div class="col-8 pt-3 offset-4">
-          <h2 class="pb-3 mb-2">Contact Us</h2>
-          <p>There are many ways to reach the Apache Unomi user and developer communities - use whichever one seems best!</p>
-
-          <table class="table">
-            <thead>
-              <tr>
-                <th>How to contact us</th>
-                <th>When to use it</th>
-              </tr>
-            </thead>
-            <tbody>
-              <tr>
-                <td><a href="https://lists.apache.org/thread/70oo862br3d4g7j8dvnyy3o4z1p0ozfq">Monthly meeting</a></td>
-                <td>The Apache Unomi meets monthly online, with alternating times to accomodate most time zones. Current
-                  status and future work is usually discussed but anyone is welcome !
-                </td>
-              </tr>
-              <tr>
-                <td><a target="_blank" href="https://lists.apache.org/list.html?users@unomi.apache.org">users@</a> mailing list</td>
-                <td>Users discussions (<a href="mailto:users-subscribe@unomi.apache.org">Subscribe</a>, <a href="mailto:users-unsubscribe@unomi.apache.org">Unsubscribe</a>)</td>
-              </tr>
-              <tr>
-                <td><a target="_blank" href="https://lists.apache.org/list.html?dev@unomi.apache.org">dev@</a> mailing list</td>
-                <td>Development discussions (<a href="mailto:dev-subscribe@unomi.apache.org">Subscribe</a>, <a href="mailto:dev-unsubscribe@unomi.apache.org">Unsubscribe</a>)</td>
-              </tr>
-              <tr>
-                <td><a target="_blank" href="https://lists.apache.org/list.html?commits@unomi.apache.org">commits@</a> mailing list</td>
-                <td>Firehose of commits, bugs, pull requests, etc. (<a href="mailto:commits-subscribe@unomi.apache.org">Subscribe</a>, <a href="mailto:commits-unsubscribe@unomi.apache.org">Unsubscribe</a>)</td>
-              </tr>
-              <tr>
-                <td><a target="_blank" href="https://issues.apache.org/jira/browse/UNOMI">JIRA bug tracker</a></td>
-                <td>Report bugs / discover known issues</td>
-              </tr>
-              <tr>
-                <td><a target="_blank" href="https://the-asf.slack.com/messages/CBP2Z98Q7/">Unomi Slack channel</a></td>
-                <td>Any topics about Unomi. Note: Please join the #unomi channel after you <a href="https://s.apache.org/slack-invite">created an account</a>. Please do not ask Unomi questions in #general.</td>
-              </tr>
-            </tbody>
-          </table>
-
-          <p>If you wish to report a security vulnerability, please contact <a href="mailto:security@apache.org">security@apache.org</a>. Apache Unomi follows the typical <a target="_blank" href="https://apache.org/security/committers.html#vulnerability-handling">Apache vulnerability handling process</a>.</p>
+        <div class="row g-4 justify-content-center">
+            <div class="col-md-4">
+                <div class="text-center">
+                    <div class="step-number mx-auto mb-3">1</div>
+                    <h3 class="h6 fw-semibold">Check the Docs</h3>
+                    <p class="small text-muted">Start with the <a href="/documentation.html">documentation</a> &mdash; most common questions are answered there.</p>
+                </div>
+            </div>
+            <div class="col-md-4">
+                <div class="text-center">
+                    <div class="step-number mx-auto mb-3">2</div>
+                    <h3 class="h6 fw-semibold">Ask the Community</h3>
+                    <p class="small text-muted">Subscribe to the <strong>users@ mailing list</strong> and post your question. It&rsquo;s the most active channel.</p>
+                </div>
+            </div>
+            <div class="col-md-4">
+                <div class="text-center">
+                    <div class="step-number mx-auto mb-3">3</div>
+                    <h3 class="h6 fw-semibold">Chat on Slack</h3>
+                    <p class="small text-muted">For quick questions, join <strong>#unomi</strong> on the ASF Slack. <a href="#slack-access" class="fw-medium">See how to get access</a>.</p>
+                </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
+
+<hr class="section-divider">
+
+<!-- Communication Channels -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-7">
+                <p class="section-label">Connect</p>
+                <h2>Communication Channels</h2>
+            </div>
+        </div>
+        <div class="row g-4">
+
+            <!-- Mailing Lists (primary) -->
+            <div class="col-md-6" id="mailing-lists">
+                <div class="community-card">
+                    <div class="community-icon icon-primary">
+                        <i class="bi bi-envelope"></i>
+                    </div>
+                    <div>
+                        <h3 class="h6 fw-semibold mb-1">Users Mailing List</h3>
+                        <p class="small text-muted mb-2">The primary channel for user questions, discussions, and announcements. Searched and archived.</p>
+                        <div class="d-flex flex-wrap gap-2">
+                            <a href="mailto:users-subscribe@unomi.apache.org" class="badge badge-primary text-decoration-none">Subscribe</a>
+                            <a href="mailto:users-unsubscribe@unomi.apache.org" class="badge text-decoration-none badge-secondary">Unsubscribe</a>
+                            <a href="https://lists.apache.org/list.html?users@unomi.apache.org" target="_blank" rel="noopener" class="badge text-decoration-none badge-secondary">Archive <i class="bi bi-box-arrow-up-right"></i></a>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <div class="col-md-6">
+                <div class="community-card">
+                    <div class="community-icon icon-rose">
+                        <i class="bi bi-envelope-open"></i>
+                    </div>
+                    <div>
+                        <h3 class="h6 fw-semibold mb-1">Dev Mailing List</h3>
+                        <p class="small text-muted mb-2">Development discussions, design proposals, and technical decisions.</p>
+                        <div class="d-flex flex-wrap gap-2">
+                            <a href="mailto:dev-subscribe@unomi.apache.org" class="badge badge-primary text-decoration-none">Subscribe</a>
+                            <a href="mailto:dev-unsubscribe@unomi.apache.org" class="badge text-decoration-none badge-secondary">Unsubscribe</a>
+                            <a href="https://lists.apache.org/list.html?dev@unomi.apache.org" target="_blank" rel="noopener" class="badge text-decoration-none badge-secondary">Archive <i class="bi bi-box-arrow-up-right"></i></a>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <!-- Slack -->
+            <div class="col-md-6" id="slack-access">
+                <div class="community-card">
+                    <div class="community-icon icon-amber">
+                        <i class="bi bi-slack"></i>
+                    </div>
+                    <div>
+                        <h3 class="h6 fw-semibold mb-1">Slack &mdash; #unomi</h3>
+                        <p class="small text-muted mb-2">Real-time chat for quick questions and informal discussions.</p>
+                        <div class="d-flex flex-column gap-1">
+                            <p class="small fw-semibold mb-1">How to join:</p>
+                            <p class="small mb-1"><strong>1.</strong> Send an email to <a href="mailto:users@unomi.apache.org">users@unomi.apache.org</a> asking for an invitation to the <strong>#unomi</strong> Slack channel. Include the email address you want the invite sent to.</p>
+                            <p class="small mb-1"><strong>2.</strong> A project member will send you a guest invite. Accept it to join the channel.</p>
+                            <p class="small text-muted mb-1"><em>Already have an @apache.org email?</em> Sign in directly at <a href="https://the-asf.slack.com" target="_blank" rel="noopener">the-asf.slack.com</a> and join <a href="https://the-asf.slack.com/messages/CBP2Z98Q7/" target="_blank" rel="noopener">#unomi</a>.</p>
+                            <p class="small text-muted mb-0"><a href="https://infra.apache.org/slack.html" target="_blank" rel="noopener">ASF Slack access policy &amp; details <i class="bi bi-box-arrow-up-right"></i></a></p>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <!-- Monthly Meeting -->
+            <div class="col-md-6" id="monthly-meeting">
+                <div class="community-card">
+                    <div class="community-icon icon-success">
+                        <i class="bi bi-camera-video"></i>
+                    </div>
+                    <div>
+                        <h3 class="h6 fw-semibold mb-1">Monthly Meeting <span class="badge badge-primary ms-1">Open to all</span></h3>
+                        <p class="small text-muted mb-2"><strong>You don&rsquo;t need to be a contributor to attend</strong> &mdash; newcomers, users evaluating Unomi, and anyone curious about the project are very welcome. It&rsquo;s a great way to ask questions, see what&rsquo;s being worked on, and meet the team.</p>
+                        <p class="small fw-semibold mb-1">Schedule &amp; how to join:</p>
+                        <p class="small mb-1"><i class="bi bi-calendar3 me-1"></i> <strong>When:</strong> Second Thursday of each month, alternating 9:00 AM CET (even months) and 5:00 PM CET (odd months).</p>
+                        <p class="small mb-1"><i class="bi bi-camera-video me-1"></i> <strong>Join:</strong> <a href="https://us02web.zoom.us/j/85252119410" target="_blank" rel="noopener">Click here to join the Zoom call</a> at the scheduled time. No account needed.</p>
+                        <p class="small text-muted mb-1"><strong>Agenda:</strong> Round table &amp; introductions, next release, project roadmap, Q&amp;A.</p>
+                        <p class="small text-muted mb-0">Reminders are posted on <a href="/community/index.html#slack-access">Slack</a>. Can&rsquo;t attend? Meeting minutes are sent to the <a href="https://lists.apache.org/list.html?dev@unomi.apache.org" target="_blank" rel="noopener">dev mailing list</a>. <a href="https://lists.apache.org/thread/70oo862br3d4g7j8dvnyy3o4z1p0ozfq" target="_blank" rel="noopener">Original announcement <i class="bi bi-box-arrow-up-right"></i></a></p>
+                    </div>
+                </div>
+            </div>
+
+            <!-- JIRA -->
+            <div class="col-md-6">
+                <a href="https://issues.apache.org/jira/browse/UNOMI" target="_blank" rel="noopener" class="community-card text-decoration-none">
+                    <div class="community-icon icon-info">
+                        <i class="bi bi-bug"></i>
+                    </div>
+                    <div>
+                        <h3 class="h6 fw-semibold mb-1 text-dark">JIRA Issue Tracker</h3>
+                        <p class="small text-muted mb-0">Report bugs, request features, or browse known issues. Create an ASF JIRA account to submit tickets.</p>
+                    </div>
+                </a>
+            </div>
+
+            <!-- GitHub -->
+            <div class="col-md-6">
+                <a href="https://github.com/apache/unomi" target="_blank" rel="noopener" class="community-card text-decoration-none">
+                    <div class="community-icon icon-neutral">
+                        <i class="bi bi-github"></i>
+                    </div>
+                    <div>
+                        <h3 class="h6 fw-semibold mb-1 text-dark">GitHub</h3>
+                        <p class="small text-muted mb-0">Browse source code, submit pull requests, and follow development on GitHub.</p>
+                    </div>
+                </a>
+            </div>
+
+            <!-- Commits List -->
+            <div class="col-md-6">
+                <div class="community-card">
+                    <div class="community-icon icon-purple">
+                        <i class="bi bi-git"></i>
+                    </div>
+                    <div>
+                        <h3 class="h6 fw-semibold mb-1">Commits Mailing List</h3>
+                        <p class="small text-muted mb-2">Firehose of commits, CI results, and pull request notifications.</p>
+                        <div class="d-flex flex-wrap gap-2">
+                            <a href="mailto:commits-subscribe@unomi.apache.org" class="badge badge-primary text-decoration-none">Subscribe</a>
+                            <a href="https://lists.apache.org/list.html?commits@unomi.apache.org" target="_blank" rel="noopener" class="badge text-decoration-none badge-secondary">Archive <i class="bi bi-box-arrow-up-right"></i></a>
+                        </div>
+                    </div>
+                </div>
+            </div>
+
+            <!-- Security -->
+            <div class="col-md-6">
+                <div class="community-card">
+                    <div class="community-icon icon-danger">
+                        <i class="bi bi-shield-exclamation"></i>
+                    </div>
+                    <div>
+                        <h3 class="h6 fw-semibold mb-1">Security Vulnerabilities</h3>
+                        <p class="small text-muted mb-1">To report a security vulnerability, email <a href="mailto:security@apache.org">security@apache.org</a>.</p>
+                        <p class="small text-muted mb-0">See the <a href="https://apache.org/security/committers.html#vulnerability-handling" target="_blank" rel="noopener">Apache vulnerability handling process</a>.</p>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </div>
+</section>
+
+<!-- Sidebar links -->
+<section class="section section-alt">
+    <div class="container">
+        <div class="row g-4 justify-content-center text-center">
+            <div class="col-md-4">
+                <div class="feature-card">
+                    <div class="feature-icon mx-auto"><i class="bi bi-people"></i></div>
+                    <h3 class="h6 fw-semibold mb-2">Meet the Team</h3>
+                    <p class="small text-muted mb-2">The people behind Apache Unomi &mdash; PMC members and committers.</p>
+                    <a href="/community/team.html" class="small fw-semibold">View team <i class="bi bi-arrow-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-4">
+                <div class="feature-card">
+                    <div class="feature-icon mx-auto"><i class="bi bi-code-slash"></i></div>
+                    <h3 class="h6 fw-semibold mb-2">Contribute</h3>
+                    <p class="small text-muted mb-2">Help with code, docs, testing, or answering questions on the mailing list.</p>
+                    <a href="/contribute/index.html" class="small fw-semibold">Get involved <i class="bi bi-arrow-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-4">
+                <div class="feature-card">
+                    <div class="feature-icon mx-auto"><i class="bi bi-calendar-event"></i></div>
+                    <h3 class="h6 fw-semibold mb-2">Events</h3>
+                    <p class="small text-muted mb-2">Meetups, ApacheCon talks, and community events.</p>
+                    <a href="/community/events/index.html" class="small fw-semibold">View events <i class="bi bi-arrow-right"></i></a>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
diff --git a/src/main/webapp/community/maturity-model-report.html b/src/main/webapp/community/maturity-model-report.html
index eac29e0..7ba2182 100644
--- a/src/main/webapp/community/maturity-model-report.html
+++ b/src/main/webapp/community/maturity-model-report.html
@@ -1,27 +1,40 @@
 ---
 title: Podling Maturity Assessment
+description: "Apache Unomi maturity model assessment based on the ASF project maturity model."
+keywords: "Apache Unomi maturity model, project maturity, Apache project assessment, open source governance"
 layout: default
 ---
 
-      <div class="container mb-5 pt-5">
-        <div class="col-2 sidenav-menu pt-3">
-          <div class="pb-3 text-uppercase"><strong>Community</strong></div>
-          <ul class="list-unstyled mb-3">
-            <li><a href="events/index.html">Events</a></li>
-            <li><a href="index.html">Contact Us</a></li>
-            <li><a href="policies.html">Policies</a></li>
-            <li><a href="maturity-model-report.html">Maturity model report card</a></li>
-            <li><a href="team.html">Team</a></li>
-          </ul>
-        </div>
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Community</p>
+        <h1>Maturity Assessment</h1>
+        <p class="lead">Podling maturity report card based on the ASF project maturity model.</p>
+    </div>
+</section>
 
-        <div class="col-8 pt-3 offset-4">
-          <h2 class="pb-3 mb-2">Unomi Podling Maturity Assessment</h2>
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Community</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="index.html">Get Help & Contact</a></li>
+                        <li><a href="team.html">Team</a></li>
+                        <li><a href="events/index.html">Events</a></li>
+                        <li><a href="policies.html">Policies</a></li>
+                        <li><a href="maturity-model-report.html" class="active">Maturity Report</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
+          <h2 class="h4 pb-3 mb-2">Unomi Podling Maturity Assessment</h2>
 
           <h3>Overview</h3>
           <p>
             This is an assessment of the Unomi podling’s maturity, meant to help inform the decision (of the mentors, community, Incubator PMC and ASF Board of Directors) to graduate
-            it as a top-level Apache project. It is based on the ASF project maturity model at <a target="_blank" href="https://community.apache.org/apache-way/apache-project-maturity-model.html">https://community.apache.org/apache-way/apache-project-maturity-model.html</a>
+            it as a top-level Apache project. It is based on the ASF project maturity model at <a target="_blank" rel="noopener" href="https://community.apache.org/apache-way/apache-project-maturity-model.html">https://community.apache.org/apache-way/apache-project-maturity-model.html</a>
             Maintaining such a file is a new, experimental idea as part of the continuous improvement of the ASF incubation process.
           </p>
 
@@ -43,7 +56,7 @@
           <!-- Code -->
           <h4 class="pt-5 pb-3">Code</h4>
           <table class="table table-striped table-sm">
-            <thead class="thead-dark">
+            <thead class="table-dark">
               <tr>
                 <th>Code</th>
                 <th>Description</th>
@@ -55,37 +68,37 @@
               <tr>
                 <td><strong>CD10</strong></td>
                 <td>The project produces Open Source software, for distribution to the public at no charge.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>everything is hosted at the Apache Software Foundation</td>
               </tr>
               <tr>
                 <td><strong>CD10</strong></td>
                 <td>The project produces Open Source software, for distribution to the public at no charge.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>everything is hosted at the Apache Software Foundation</td>
               </tr>
               <tr>
                 <td><strong>CD20</strong></td>
                 <td>The project’s code is easily discoverable and publicly accessible.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
               <td>it is linked from the main project site and accessible in the public ASF git repository</td>
               </tr>
               <tr>
                 <td><strong>CD30</strong></td>
                 <td>The code can be built in a reproducible way using widely available standard tools.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>Apache Unomi can be built with Apache Maven in the usual way, using "mvn clean install" from the root of the project.</td>
               </tr>
               <tr>
                 <td><strong>CD40</strong></td>
                 <td>The full history of the project’s code is available via a source code control system, in a way that allows any released version to be recreated.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>everything is in the ASF Git repository.</td>
               </tr>
               <tr>
                 <td><strong>CD50</strong></td>
                 <td>The provenance of each line of code is established via the source code control system, in a reliable way based on strong authentication of the committer. When third-party contributions are committed, commit messages provide reliable information about the code provenance.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>Only ASF committers with CLAs may contribute to the project.</td>
               </tr>
             </tbody>
@@ -94,7 +107,7 @@
           <!-- License and Copyright -->
           <h4 class="pt-5 pb-3">License and Copyright</h4>
           <table class="table table-striped table-sm">
-            <thead class="thead-dark">
+            <thead class="table-dark">
               <tr>
                 <th>Code</th>
                 <th>Description</th>
@@ -106,31 +119,31 @@
               <tr>
                 <td><strong>LC10</strong></td>
                 <td>The code is released under the Apache License, version 2.<i>0.</i></td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>A LICENSE file is also at the root of the ASF Git repository</td>
               </tr>
               <tr>
                 <td><strong>LC20</strong></td>
                 <td>Libraries that are mandatory dependencies of the project’s code do not create more restrictions than the Apache License does.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>NOTICE files contain all the information and has been reviewed on two releases already</td>
               </tr>
               <tr>
                 <td><strong>LC30</strong></td>
                 <td>The libraries mentioned in LC20 are available as Open Source software.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>See LC20</td>
               </tr>
               <tr>
                 <td><strong>LC40</strong></td>
                 <td>Committers are bound by an Individual Contributor Agreement (the “Apache iCLA”) that defines which code they are allowed to commit and how they need to identify code that is not their own.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>All committers have registered iCLAs</td>
               </tr>
               <tr>
                 <td><strong>LC50</strong></td>
                 <td>The copyright ownership of everything that the project produces is clearly defined and documented.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>NOTICE file is up-to-date with all copyright ownership.</td>
               </tr>
             </tbody>
@@ -139,7 +152,7 @@
           <!-- Releases -->
           <h4 class="pt-5 pb-3">Releases</h4>
           <table class="table table-striped table-sm">
-            <thead class="thead-dark">
+            <thead class="table-dark">
               <tr>
                 <th>Code</th>
                 <th>Description</th>
@@ -151,25 +164,25 @@
               <tr>
                 <td><strong>RE10</strong></td>
                 <td>Releases consist of source code, distributed using standard and open archive formats that are expected to stay readable in the long term.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>Three major releases have been produced so far and have been reviewed by IPMCs</td>
               </tr>
               <tr>
                 <td><strong>RE20</strong></td>
                 <td>Releases are approved by the project’s PMC (see CS10), in order to make them an act of the Foundation.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>Happened for three major releases already</td>
               </tr>
               <tr>
                 <td><strong>RE30</strong></td>
                 <td>Releases are signed and/or distributed along with digests that can be reliably used to validate the downloaded archives.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>See the releases <a href="../download.html">here</a></td>
               </tr>
               <tr>
                 <td><strong>RE40</strong></td>
                 <td>Convenience binaries can be distributed alongside source code but they are not Apache Releases – they are just a convenience provided with no guarantee.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>See the releases <a href="../download.html">here</a></td>
               </tr>
             </tbody>
@@ -178,7 +191,7 @@
           <!-- Quality -->
           <h4 class="pt-5 pb-3">Quality</h4>
           <table class="table table-striped table-sm">
-            <thead class="thead-dark">
+            <thead class="table-dark">
               <tr>
                 <th>Code</th>
                 <th>Description</th>
@@ -190,25 +203,25 @@
               <tr>
                 <td><strong>QU10</strong></td>
                 <td>The project is open and honest about the quality of its code. Various levels of quality and maturity for various modules are natural and acceptable as long as they are clearly communicated.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>The project's quality is tracked through Apache's JIRA issue tracking system, and is released regularly to improve both overall quality as well as performance.</td>
               </tr>
               <tr>
                 <td><strong>QU20</strong></td>
                 <td>The project puts a very high priority on producing secure software.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>Security issues are treated with the highest priority.</td>
               </tr>
               <tr>
                 <td><strong>QU30</strong></td>
                 <td>The project provides a well-documented channel to report security issues, along with a documented way of responding to them.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>The website provides <a href="index.html">a link to the ASF security information.</a></td>
               </tr>
               <tr>
                 <td><strong>QU40</strong></td>
                 <td>The project puts a high priority on backwards compatibility and aims to document any incompatible changes and provide tools and documentation to help users transition to new features.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>The project exposes an API that is <a href="https://www.oasis-open.org/committees/cxs/">specified by an OASIS standard</a>.
                   Also, for APIs outside of the specification, compatibility is a major focus but if not always possible, deprecations
                   and migration documents are produced.</td>
@@ -216,7 +229,7 @@
               <tr>
                 <td><strong>QU50</strong></td>
                 <td>The project strives to respond to documented bug reports in a timely manner.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>The project uses <a href="https://issues.apache.org/jira/projects/UNOMI/summary">Apache's JIRA platform</a> to handle
                   bugs as well as any other types of issues reported on it. A focus is put on making sure that issues are responded to swiftly.</td>
               </tr>
@@ -226,7 +239,7 @@
           <!-- Community -->
           <h4 class="pt-5 pb-3">Community</h4>
           <table class="table table-striped table-sm">
-            <thead class="thead-dark">
+            <thead class="table-dark">
               <tr>
                 <th>Code</th>
                 <th>Description</th>
@@ -238,20 +251,20 @@
               <tr>
                 <td><strong>CO10</strong></td>
                 <td>The project has a well-known homepage that points to all the information required to operate according to this maturity model.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
-                <td>See the <a class="externalLink" target="_blank" href="http://unomi.apache.org">project’s home page</a> that includes a <a href="../contribute/index.html">contribute</a> section
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
+                <td>See the <a class="externalLink" target="_blank" rel="noopener" href="https://unomi.apache.org">project’s home page</a> that includes a <a href="../contribute/index.html">contribute</a> section
                   that describes how to become a committer as well as <a href="../contribute/become-a-committer.html">several</a> <a href="../contribute/committer-guide.html">documents</a> for on-board newcomers quickly</td>
               </tr>
               <tr>
                 <td><strong>CO20</strong></td>
                 <td>The community welcomes contributions from anyone who acts in good faith and in a respectful manner and adds value to the project.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>This is a part of the <a href="../contribute/index.html">contribution</a> guide. Here is an example of a recent addition of a committer and the way he was welcome, e.g., <a href="https://lists.apache.org/thread.html/f616d6894ae665325b60c829bb641bfaa43a2c1e354a930340b9645b@%3Cdev.unomi.apache.org%3E">this</a></td>
               </tr>
               <tr>
                 <td><strong>CO30</strong></td>
                 <td>Contributions include not only source code, but also documentation, constructive bug reports, constructive discussions, marketing and generally anything that adds value to the project.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>
                   The <a href="../contribute/index.html">contribution guide</a> specifically calls out many avenues for contribution. Specifically, several contributors have contributed documentation or bug fixes.
                 </td>
@@ -259,26 +272,26 @@
               <tr>
                 <td><strong>CO40</strong></td>
                 <td>The community is meritocratic and over time aims to give more rights and responsibilities to contributors who add value to the project.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>A specific <a href="../contribute/become-a-committer.html">"become a contributor"</a> page is publicly available that describes the process of how to gain more rights and responsibilities</td>
               </tr>
               <tr>
                 <td><strong>CO50</strong></td>
                 <td>The way in which contributors can be granted more rights such as commit access or decision power is clearly documented and is the same for all contributors.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>Again, the same <a href="../contribute/become-a-committer.html">"become a contributor"</a> page contains all this information.</td>
               </tr>
               <tr>
                 <td><strong>CO60</strong></td>
                 <td>The community operates based on consensus of its members (see CS10) who have decision power. Dictators, benevolent or not, are not welcome in Apache projects.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>The project works to build consensus. All votes have been unanimous so far. Usually a discussion happens before a vote on a technical or release issue, so the voting process is rarely a problem. Also, in the <a href="../contribute/become-a-committer.html">become a contributor</a> page, a code of conduct is put in place to
                 ensure contributors have a reference to it.</td>
               </tr>
               <tr>
                 <td><strong>CO70</strong></td>
                 <td>The project strives to answer user questions in a timely manner.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>The project typically provides detailed answers to user questions within a few hours via its <a href="https://lists.apache.org/list.html?users@unomi.apache.org">users@ mailing list</a>.</td>
               </tr>
             </tbody>
@@ -287,7 +300,7 @@
           <!-- Consensus Building -->
           <h4 class="pt-5 pb-3">Consensus Building</h4>
           <table class="table table-striped table-sm">
-            <thead class="thead-dark">
+            <thead class="table-dark">
               <tr>
                 <th>Code</th>
                 <th>Description</th>
@@ -299,31 +312,31 @@
               <tr>
                 <td><strong>CS10</strong></td>
                 <td>The project maintains a public list of its contributors who have decision power – the project’s PMC (Project Management Committee) consists of those contributors.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>The project has a <a href="team.html">team page</a> that lists all the contributors along with their associated roles.</td>
               </tr>
               <tr>
                 <td><strong>CS20</strong></td>
                 <td>Decisions are made by consensus among PMC members and are documented on the project’s main communications channel. Community opinions are taken into account but the PMC has the final word if needed.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>PPMC decisions have been unonimous so far, including voting new committers and new PPMC members. The project has been making important decisions on the project mailing lists. All community decisions have had a consensus without any PPMC action needed.</td>
               </tr>
               <tr>
                 <td><strong>CS30</strong></td>
                 <td>Documented voting rules are used to build consensus when discussion is not sufficient.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>The project uses the standard ASF voting rules. Voting rules are clearly stated before the voting starts for each individual vote.</td>
               </tr>
               <tr>
                 <td><strong>CS40</strong></td>
                 <td>In Apache projects, vetoes are only valid for code commits and are justified by a technical explanation, as per the Apache voting rules defined in CS30.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>The project hasn’t used a veto at any point and relies on robust code reviews, especially for any issues around licenses problems.</td>
               </tr>
               <tr>
                 <td><strong>CS50</strong></td>
                 <td>All “important” discussions happen asynchronously in written form on the project’s main communications channel. Offline, face-to-face or private discussions that affect the project are also documented on that channel.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>The project has been making important decisions on the project mailing lists. When communication occurs on side channels (Slack, face-to-face mostly), the mailing list is always used to communicate important information to the community.</td>
               </tr>
             </tbody>
@@ -332,7 +345,7 @@
           <!-- Independence -->
           <h4 class="pt-5 pb-3">Independence</h4>
           <table class="table table-striped table-sm">
-            <thead class="thead-dark">
+            <thead class="table-dark">
               <tr>
                 <th>Code</th>
                 <th>Description</th>
@@ -344,17 +357,19 @@
               <tr>
                 <td><strong>IN10</strong></td>
                 <td>The project is independent from any corporate or organizational influence.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>Although the project originated from a donation by a single corporate entity, it has strived to add external contributors and has now PPMC members that are part of 4 different corporations (Adobe, Talend, Yupiik, Jahia) and some contributors have
                 also moved on to new corporations.</td>
               </tr>
               <tr>
                 <td><strong>IN20</strong></td>
                 <td>Contributors act as themselves as opposed to representatives of a corporation or organization.</td>
-                <td class="text-center"><i class="fas fa-check text-success"></i></td>
+                <td class="text-center"><i class="bi bi-check-circle-fill text-success"></i></td>
                 <td>The project has experienced PPMC members that will make sure that contributors will be acting freely as individuals.</td>
               </tr>
             </tbody>
           </table>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/community/policies.html b/src/main/webapp/community/policies.html
index bea15da..3ee142d 100644
--- a/src/main/webapp/community/policies.html
+++ b/src/main/webapp/community/policies.html
@@ -1,33 +1,48 @@
 ---
 title: Policies
+description: "Apache Unomi project policies including release cadence and long term support."
+keywords: "Apache Unomi policies, project guidelines, community policies, Apache Software Foundation policies"
 layout: default
 ---
 
-      <div class="container mb-5 pt-5">
-        <div class="col-2 sidenav-menu pt-3">
-          <div class="pb-3 text-uppercase"><strong>Community</strong></div>
-          <ul class="list-unstyled mb-3">
-            <li><a href="events/index.html">Events</a></li>
-            <li><a href="index.html">Contact Us</a></li>
-            <li><a href="policies.html">Policies</a></li>
-            <li><a href="maturity-model-report.html">Maturity model report card</a></li>
-            <li><a href="team.html">Team</a></li>
-          </ul>
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Community</p>
+        <h1>Policies</h1>
+        <p class="lead">Major policies agreed upon by the Apache Unomi community.</p>
+    </div>
+</section>
+
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Community</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="index.html">Get Help & Contact</a></li>
+                        <li><a href="team.html">Team</a></li>
+                        <li><a href="events/index.html">Events</a></li>
+                        <li><a href="policies.html" class="active">Policies</a></li>
+                        <li><a href="maturity-model-report.html">Maturity Report</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
+                <h2 class="h4 pb-3 mb-2">Policies</h2>
+
+                <p>This page contains a list of major policies agreed upon by the Apache Unomi community.</p>
+
+                <h3 id="releases">Releases</h3>
+
+                <p>Apache Unomi makes minor releases every 6 weeks. Apache Unomi has a <a target="_blank" rel="noopener" href="https://calendar.google.com/calendar/embed?src=0p73sl034k80oob7seouanigd0%40group.calendar.google.com">calendar</a> for cutting the next release branch. After a release branch is cut, the community works quickly to finalize that release.</p>
+
+                <p>Apache Unomi aims to make 8 releases in a 12 month period. To accommodate users with longer upgrade cycles, some of these releases will be tagged as long term support (LTS) releases. LTS releases receive patches to fix major issues for 12 months, starting from the release&rsquo;s initial release date. There will be at least one new LTS release in a 12 month period, and LTS releases are considered deprecated after 12 months. The community will mark a release as a LTS release based on various factors, such as the number of LTS releases currently in flight and whether the accumulated feature set since the last LTS provides significant upgrade value. Non-LTS releases do not receive patches and are considered deprecated immediately after the next following minor release. We encourage you to update early and often; do not wait until the deprecation date of the version you are using.</p>
+
+                <p>It is up to the Apache Unomi community to decide whether an identified issue is a major issue that warrants a patch release. Some examples of major issues are high severity security issues and high risk data integrity issues.</p>
+
+                <p>If you wish to report a security vulnerability, please contact <a href="mailto:security@apache.org">security@apache.org</a>. Apache Unomi follows the typical <a target="_blank" rel="noopener" href="https://apache.org/security/committers.html#vulnerability-handling">Apache vulnerability handling process</a>.</p>
+            </div>
         </div>
-
-        <div class="col-8 pt-3 offset-4">
-          <h2 class="pb-3 mb-2"> Policies</h2>
-
-          <p>This page contains a list of major policies agreed upon by the Apache Unomi community.</p>
-
-          <h3 id="releases">Releases</h3>
-
-          <p>Apache Unomi makes minor releases every 6 weeks. Apache Unomi has a <a target="_blank" href="https://calendar.google.com/calendar/embed?src=0p73sl034k80oob7seouanigd0%40group.calendar.google.com">calendar</a> for cutting the next release branch. After a release branch is cut, the community works quickly to finalize that release.</p>
-
-          <p>Apache Unomi aims to make 8 releases in a 12 month period. To accommodate users with longer upgrade cycles, some of these releases will be tagged as long term support (LTS) releases. LTS releases receive patches to fix major issues for 12 months, starting from the releaseâ€&trade;s initial release date. There will be at least one new LTS release in a 12 month period, and LTS releases are considered deprecated after 12 months. The community will mark a release as a LTS release based on various factors, such as the number of LTS releases currently in flight and whether the accumulated feature set since the last LTS provides significant upgrade value. Non-LTS releases do not receive patches and are considered deprecated immediately after the next following minor release. We encourage you to update early and often; do not wait until the deprecation date of the version you are using.</p>
-
-          <p>It is up to the Apache Unomi community to decide whether an identified issue is a major issue that warrants a patch release. Some examples of major issues are high severity security issues and high risk data integrity issues.</p>
-
-          <p>If you wish to report a security vulnerability, please contact <a href="mailto:security@apache.org">security@apache.org</a>. Apache Unomi follows the typical <a target="_blank" href="https://apache.org/security/committers.html#vulnerability-handling">Apache vulnerability handling process</a>.</p>
-        </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/community/team.html b/src/main/webapp/community/team.html
index 76c18d8..051255a 100644
--- a/src/main/webapp/community/team.html
+++ b/src/main/webapp/community/team.html
@@ -1,218 +1,345 @@
 ---
 title: Team
+description: "Apache Unomi project team. PMC members, committers, and contributors."
+keywords: "Apache Unomi team, committers, PMC, contributors, project team, open source developers"
 layout: default
 ---
 
-      <div class="container mb-5 pt-5">
-        <div class="col-2 sidenav-menu pt-3">
-          <div class="pb-3 text-uppercase"><strong>Community</strong></div>
-          <ul class="list-unstyled mb-3">
-            <li><a href="events/index.html">Events</a></li>
-            <li><a href="index.html">Contact Us</a></li>
-            <li><a href="policies.html">Policies</a></li>
-            <li><a href="maturity-model-report.html">Maturity model report card</a></li>
-            <li><a href="team.html">Team</a></li>
-          </ul>
-        </div>
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Community</p>
+        <h1>Project Team</h1>
+        <p class="lead">The people behind Apache Unomi.</p>
+    </div>
+</section>
 
-        <div class="col-8 pt-3 offset-4">
-          <h2 class="pb-3 mb-2">Project Team</h2>
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Community</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="index.html">Get Help & Contact</a></li>
+                        <li><a href="team.html" class="active">Team</a></li>
+                        <li><a href="events/index.html">Events</a></li>
+                        <li><a href="policies.html">Policies</a></li>
+                        <li><a href="maturity-model-report.html">Maturity Report</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
+          <h2 class="h4 mb-3">Project Team</h2>
 
           <p>A successful project requires many people to play many roles. Some members write code or documentation, while others are valuable as testers, submitting patches and suggestions.</p>
 
           <p>The project team is comprised of Members and Contributors. Members have direct access to the source of a project and actively evolve the code-base. Contributors improve the project through submission of patches and suggestions to the Members. The number of Contributors to the project is unbounded. Get involved today. All contributions to the project are greatly appreciated.</p>
 
-          <h4 class="pb-3 pt-3">Members</h4>
+          <h4 class="h5 pb-3 pt-3">PMC &amp; Committers</h4>
           <p>The following is a list of developers with commit privileges that have directly contributed to the project in one way or another.</p>
 
-          <table class="table table-striped table-sm">
-            <thead class="thead-dark">
-              <tr>
-                <th>Image</th>
-                <th>Id</th>
-                <th>Name</th>
-                <th>Email</th>
-                <th>Organization</th>
-                <th>Organization URL</th>
-                <th>Roles</th>
-                <th>Time Zone</th>
-              </tr>
-            </thead>
-            <tbody>
-            <tr>
-                <td><img src="http://www.gravatar.com/avatar/4d3eed1c656ec68693eb61d8ccc6a3af?d=mm&s=60" alt="" /></td>
-                <td><a id="shuber"></a>shuber</td>
-                <td>Serge Huber</td>
-                <td><a class="externalLink" href="mailto:shuber@apache.org">shuber@apache.org</a></td>
-                <td>Jahia</td>
-                <td><a class="externalLink" target="_blank" href="https://www.jahia.com">https://www.jahia.com</a></td>
-                <td>PMC Chair, committer</td>
-                <td>+1</td>
-            </tr>
-            <tr>
-              <td><img src="http://www.gravatar.com/avatar/27790393b874159fe05609ca7ed812f9?d=mm&s=60" alt="" /></td>
-              <td><a id="jbonofre"></a>jbonofre</td>
-              <td>Jean-Baptiste Onofr&eacute;</td>
-              <td><a class="externalLink" href="mailto:jbonofre@apache.org">jbonofre@apache.org</a></td>
-              <td>Talend</td>
-              <td><a class="externalLink" target="_blank" href="https://www.talend.com">https://www.talend.com</a></td>
-              <td>Apache Member, PMC, committer</td>
-              <td>+1</td>
-            </tr>
-            <tr>
-                <td><img src="http://www.gravatar.com/avatar/9bbc37f4660389c1c54aee53b05a2a65?d=mm&s=60" alt="" /></td>
-                <td><a id="draier"></a>draier</td>
-                <td>Thomas Draier</td>
-                <td><a class="externalLink" href="mailto:draier@apache.org">draier@apache.org</a></td>
-                <td>Jahia</td>
-                <td><a class="externalLink" target="_blank" href="https://www.jahia.com">https://www.jahia.com</a></td>
-                <td>PMC, committer</td>
-                <td>+1</td>
-            </tr>
-            <tr>
-                <td><img src="http://www.gravatar.com/avatar/27790393b874159fe05609ca7ed812f9?d=mm&amp;s=60" alt="Gravatar picture" /></td>
-                <td><a name="fpapon"></a>fpapon</td>
-                <td>Francois Papon</td>
-                <td><a class="externalLink" href="mailto:fpapon@apache.org">fpapon@apache.org</a></td>
-                <td>Yupiik</td>
-                <td><a class="externalLink" href="https://www.yupiik.com">https://www.yupiik.com</a></td>
-                <td>PMC, committer</td>
-                <td>+4</td>
-            </tr>
-            <tr>
-                <td><img src="http://www.gravatar.com/avatar/f51aaca9a9943a59ecc3028aca9b113b?d=mm&s=60" alt="" /></td>
-                <td><a id="jkevan">jkevan</a></td>
-                <td>Kevan Jahanshahi</td>
-                <td><a class="externalLink" href="mailto:jkevan@apache.org">jkevan@apache.org</a></td>
-                <td>Jahia</td>
-                <td><a class="externalLink" target="_blank" href="https://www.jahia.com">https://www.jahia.com</a></td>
-                <td>PMC, committer</td>
-                <td>+1</td>
-            </tr>
-            <tr>
-                <td><img src="http://www.gravatar.com/avatar/e5f766ba9813c868249c07f9c5e349d6?d=mm&s=60" alt="" /></td>
-                <td><a id="dgriffon">dgriffon</a></td>
-                <td>David Griffon</td>
-                <td><a class="externalLink" href="mailto:dgriffon@apache.org">dgriffon@apache.org</a></td>
-                <td>Jahia</td>
-                <td><a class="externalLink" target="_blank" href="https://www.jahia.com">https://www.jahia.com</a></td>
-                <td>PMC, committer</td>
-                <td>+1</td>
-            </tr>
-            <tr>
-                <td><img src="http://www.gravatar.com/avatar/6d2d161467f0dc565ce0d55b9f73fe4f?d=mm&s=60" alt="" /></td>
-                <td><a id="dgaillard"></a>dgaillard</td>
-                <td>Damien Gaillard</td>
-                <td><a class="externalLink" href="mailto:dgaillard@apache.org">dgaillard@apache.org</a></td>
-                <td>Jahia</td>
-                <td><a class="externalLink" href="https://www.jahia.com">https://www.jahia.com</a></td>
-                <td>committer</td>
-                <td>+1</td>
-            </tr>
-            <tr>
-                <td><img src="https://www.gravatar.com/avatar/76b2e3ee9fc69020baad711c38b0186b?d=mm&s=60" alt="" /></td>
-                <td><a id="taybou"></a>taybou</td>
-                <td>Mohamed-Tayeb BENTERKI</td>
-                <td><a class="externalLink" href="mailto:taybou@apache.org">taybou@apache.org</a></td>
-                <td>Jahia</td>
-                <td><a class="externalLink" href="https://www.jahia.com">https://www.jahia.com</a></td>
-                <td>committer</td>
-                <td>+1</td>
-            </tr>
-            <tr>
-                <td><img src="http://www.gravatar.com/avatar/d21cd1073820fff86b953d57fbfadc83?d=mm&s=60" alt="" /></td>
-                <td><a id="shyrkov">shyrkov</a></td>
-                <td>Sergiy Shyrkov</td>
-                <td><a class="externalLink" href="mailto:shyrkov@apache.org">shyrkov@apache.org</a></td>
-                <td>Jahia</td>
-                <td><a class="externalLink" target="_blank" href="https://www.jahia.com">https://www.jahia.com</a></td>
-                <td>committer</td>
-                <td>+1</td>
-            </tr>
-            <tr>
-                <td><img src="http://www.gravatar.com/avatar/6affe2a2fc9f902578697788c7fc2a3e?d=mm&s=60" alt="" /></td>
-                <td><a id="qlamerand">qlamerand</a></td>
-                <td>Quentin Lamerand</td>
-                <td><a class="externalLink" href="mailto:qlamerand@apache.org">qlamerand@apache.org</a></td>
-                <td>IRCAM</td>
-                <td><a class="externalLink" target="_blank" href="https://www.ircam.fr">https://www.ircam.fr</a></td>
-                <td>committer</td>
-                <td>+1</td>
-            </tr>
-            <tr>
-                <td><img src="http://www.gravatar.com/avatar/1a18e08c27af0044a1c2218ceea839c3?d=mm&s=60" alt="" /></td>
-                <td><a id="metacosm"></a>metacosm</td>
-                <td>Chris Laprun</td>
-                <td><a class="externalLink" href="mailto:metacosm@apache.org">metacosm@apache.org</a></td>
-                <td>RedHat</td>
-                <td><a class="externalLink" target="_blank" href="https://www.redhat.com">https://www.redhat.com</a></td>
-                <td>committer</td>
-                <td>+1</td>
-            </tr>
-            <tr>
-                <td><img src="http://www.gravatar.com/avatar/8a23a295ccfaa914c8e40d5b36893c3c?d=mm&s=60" alt="" /></td>
-                <td><a id="amidani"></a>amidani</td>
-                <td>Abdelkader Midani</td>
-                <td><a class="externalLink" href="mailto:amidani@apache.org">amidani@apache.org</a></td>
-                <td>-</td>
-                <td>-</td>
-                <td>committer</td>
-                <td>+1</td>
-            </tr>
-            </tbody>
-            <tr>
-             <td><img src="http://www.gravatar.com/avatar/505b92f0f422152656b53018929316f4?d=mm&s=60" alt="" /></td>
-             <td><a id="bdelacretaz"></a>bdelacretaz</td>
-             <td>Bertrand Delacretaz</td>
-             <td><a class="externalLink" href="mailto:bdelacretaz@apache.org">bdelacretaz@apache.org</a></td>
-             <td>Adobe</td>
-             <td><a class="externalLink" target="_blank" href="https://www.adobe.com">https://www.adobe.com</a></td>
-             <td>Retired (was Mentor, PPMC)</td>
-             <td>+1</td>
-            </tr>
-            <tr>
-             <td><img src="http://www.gravatar.com/avatar/b103ce8281c7eef619e5e4bfcfccf639?d=mm&s=60" alt="" /></td>
-             <td><a id="rvs"></a>rvs</td>
-             <td>Roman Shaposhnik</td>
-             <td><a class="externalLink" href="mailto:rvs@apache.org">rvs@apache.org</a></td>
-             <td>Pivotal</td>
-             <td><a class="externalLink" target="_blank" href="https://pivotal.io">https://pivotal.io</a></td>
-             <td>Retired (was Mentor, PPMC)</td>
-             <td>-</td>
-            </tr>
-            <tr>
-             <td><img src="http://www.gravatar.com/avatar/6f919a5883b854b9ae41023ef281ef85?d=mm&s=60" alt="" /></td>
-             <td><a id="mattmann"></a>mattmann</td>
-             <td>Chris Mattmann</td>
-             <td><a class="externalLink" href="mailto:mattmann@apache.org">mattmann@apache.org</a></td>
-             <td>NASA JPL</td>
-             <td><a class="externalLink" target="_blank" href="https://www.jpl.nasa.gov">https://www.jpl.nasa.gov</a></td>
-             <td>Retired (was Mentor, PPMC)</td>
-             <td>-</td>
-            </tr>
-            <tr>
-             <td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=mm&s=60" alt="" /></td>
-             <td>-</td>
-             <td>C&eacute;dric Mailleux</td>
-             <td>-</td>
-             <td>Jahia</td>
-             <td><a class="externalLink" target="_blank" href="https://www.jahia.com">https://www.jahia.com</a></td>
-             <td>Retired (was initial committer, PPMC)</td>
-             <td>-5</td>
-            </tr>
-            <tr>
-             <td><img src="http://www.gravatar.com/avatar/00000000000000000000000000000000?d=mm&s=60" alt="" /></td>
-             <td>-</td>
-             <td>R&eacute;gis Mora</td>
-             <td>-</td>
-             <td>Pékin Accueil</td>
-             <td><a class="externalLink" target="_blank" href="https://www.pekin-accueil.com">https://www.pekin-accueil.com</a></td>
-             <td>Retired (was initial committer, PPMC)</td>
-             <td>+8</td>
-            </tr>
-          </table>
+          <div class="row g-3">
 
-          <h4 class="pb-3 pt-5">Contributors</h4>
+                <div class="col-md-6 col-lg-4" id="shuber">
+                    <div class="feature-card h-100">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/4d3eed1c656ec68693eb61d8ccc6a3af?d=mm&s=80" alt="Serge Huber" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Serge Huber</h3>
+                                <span class="small text-muted">shuber</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-primary">PMC Chair</span>
+                            <span class="badge badge-secondary">committer</span>
+                        </div>
+                        <p class="small text-muted mb-1"><a href="https://www.inoyu.dev" target="_blank" rel="noopener">Inoyu</a></p>
+                        <a href="mailto:shuber@apache.org" class="small text-muted">shuber@apache.org</a>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="jbonofre">
+                    <div class="feature-card h-100">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/27790393b874159fe05609ca7ed812f9?d=mm&s=80" alt="Jean-Baptiste Onofr&eacute;" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Jean-Baptiste Onofr&eacute;</h3>
+                                <span class="small text-muted">jbonofre</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-primary">Apache Member</span>
+                            <span class="badge badge-primary">PMC</span>
+                            <span class="badge badge-secondary">committer</span>
+                        </div>
+                        <p class="small text-muted mb-1"><a href="https://www.dremio.com" target="_blank" rel="noopener">Dremio</a></p>
+                        <a href="mailto:jbonofre@apache.org" class="small text-muted">jbonofre@apache.org</a>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="draier">
+                    <div class="feature-card h-100">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/9bbc37f4660389c1c54aee53b05a2a65?d=mm&s=80" alt="Thomas Draier" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Thomas Draier</h3>
+                                <span class="small text-muted">draier</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-primary">PMC</span>
+                            <span class="badge badge-secondary">committer</span>
+                        </div>
+                        <a href="mailto:draier@apache.org" class="small text-muted">draier@apache.org</a>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="fpapon">
+                    <div class="feature-card h-100">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/27790393b874159fe05609ca7ed812f9?d=mm&s=80" alt="Francois Papon" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Francois Papon</h3>
+                                <span class="small text-muted">fpapon</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-primary">PMC</span>
+                            <span class="badge badge-secondary">committer</span>
+                        </div>
+                        <p class="small text-muted mb-1"><a href="https://www.yupiik.com" target="_blank" rel="noopener">Yupiik</a></p>
+                        <a href="mailto:fpapon@apache.org" class="small text-muted">fpapon@apache.org</a>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="jkevan">
+                    <div class="feature-card h-100">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/f51aaca9a9943a59ecc3028aca9b113b?d=mm&s=80" alt="Kevan Jahanshahi" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Kevan Jahanshahi</h3>
+                                <span class="small text-muted">jkevan</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-primary">PMC</span>
+                            <span class="badge badge-secondary">committer</span>
+                        </div>
+                        <p class="small text-muted mb-1"><a href="https://www.jahia.com" target="_blank" rel="noopener">Jahia</a></p>
+                        <a href="mailto:jkevan@apache.org" class="small text-muted">jkevan@apache.org</a>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="dgriffon">
+                    <div class="feature-card h-100">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/e5f766ba9813c868249c07f9c5e349d6?d=mm&s=80" alt="David Griffon" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">David Griffon</h3>
+                                <span class="small text-muted">dgriffon</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-primary">PMC</span>
+                            <span class="badge badge-secondary">committer</span>
+                        </div>
+                        <p class="small text-muted mb-1"><a href="https://www.jahia.com" target="_blank" rel="noopener">Jahia</a></p>
+                        <a href="mailto:dgriffon@apache.org" class="small text-muted">dgriffon@apache.org</a>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="dgaillard">
+                    <div class="feature-card h-100">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/6d2d161467f0dc565ce0d55b9f73fe4f?d=mm&s=80" alt="Damien Gaillard" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Damien Gaillard</h3>
+                                <span class="small text-muted">dgaillard</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-secondary">committer</span>
+                        </div>
+                        <a href="mailto:dgaillard@apache.org" class="small text-muted">dgaillard@apache.org</a>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="taybou">
+                    <div class="feature-card h-100">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/76b2e3ee9fc69020baad711c38b0186b?d=mm&s=80" alt="Mohamed-Tayeb BENTERKI" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Mohamed-Tayeb Benterki</h3>
+                                <span class="small text-muted">taybou</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-secondary">committer</span>
+                        </div>
+                        <a href="mailto:taybou@apache.org" class="small text-muted">taybou@apache.org</a>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="shyrkov">
+                    <div class="feature-card h-100">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/d21cd1073820fff86b953d57fbfadc83?d=mm&s=80" alt="Sergiy Shyrkov" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Sergiy Shyrkov</h3>
+                                <span class="small text-muted">shyrkov</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-secondary">committer</span>
+                        </div>
+                        <a href="mailto:shyrkov@apache.org" class="small text-muted">shyrkov@apache.org</a>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="qlamerand">
+                    <div class="feature-card h-100">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/6affe2a2fc9f902578697788c7fc2a3e?d=mm&s=80" alt="Quentin Lamerand" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Quentin Lamerand</h3>
+                                <span class="small text-muted">qlamerand</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-secondary">committer</span>
+                        </div>
+                        <p class="small text-muted mb-1"><a href="https://www.ircam.fr" target="_blank" rel="noopener">IRCAM</a></p>
+                        <a href="mailto:qlamerand@apache.org" class="small text-muted">qlamerand@apache.org</a>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="metacosm">
+                    <div class="feature-card h-100">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/1a18e08c27af0044a1c2218ceea839c3?d=mm&s=80" alt="Chris Laprun" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Chris Laprun</h3>
+                                <span class="small text-muted">metacosm</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-secondary">committer</span>
+                        </div>
+                        <p class="small text-muted mb-1"><a href="https://www.redhat.com" target="_blank" rel="noopener">Red Hat</a></p>
+                        <a href="mailto:metacosm@apache.org" class="small text-muted">metacosm@apache.org</a>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="amidani">
+                    <div class="feature-card h-100">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/8a23a295ccfaa914c8e40d5b36893c3c?d=mm&s=80" alt="Abdelkader Midani" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Abdelkader Midani</h3>
+                                <span class="small text-muted">amidani</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-secondary">committer</span>
+                        </div>
+                        <a href="mailto:amidani@apache.org" class="small text-muted">amidani@apache.org</a>
+                    </div>
+                </div>
+
+          </div>
+
+          <h4 class="h5 pb-3 pt-5">Emeritus &amp; Former Mentors</h4>
+          <p class="small text-muted mb-3">People who helped shape Apache Unomi during incubation and earlier phases.</p>
+
+          <div class="row g-3">
+
+                <div class="col-md-6 col-lg-4" id="bdelacretaz">
+                    <div class="feature-card h-100 card-emeritus">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/505b92f0f422152656b53018929316f4?d=mm&s=80" alt="Bertrand Delacretaz" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Bertrand Delacretaz</h3>
+                                <span class="small text-muted">bdelacretaz</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-retired">Retired</span>
+                        </div>
+                        <p class="small text-muted mb-1">was Mentor, PPMC</p>
+                        <p class="small text-muted mb-0"><a href="https://www.adobe.com" target="_blank" rel="noopener">Adobe</a></p>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="rvs">
+                    <div class="feature-card h-100 card-emeritus">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/b103ce8281c7eef619e5e4bfcfccf639?d=mm&s=80" alt="Roman Shaposhnik" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Roman Shaposhnik</h3>
+                                <span class="small text-muted">rvs</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-retired">Retired</span>
+                        </div>
+                        <p class="small text-muted mb-1">was Mentor, PPMC</p>
+                        <p class="small text-muted mb-0"><a href="https://pivotal.io" target="_blank" rel="noopener">Pivotal</a></p>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4" id="mattmann">
+                    <div class="feature-card h-100 card-emeritus">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/6f919a5883b854b9ae41023ef281ef85?d=mm&s=80" alt="Chris Mattmann" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">Chris Mattmann</h3>
+                                <span class="small text-muted">mattmann</span>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-retired">Retired</span>
+                        </div>
+                        <p class="small text-muted mb-1">was Mentor, PPMC</p>
+                        <p class="small text-muted mb-0"><a href="https://www.jpl.nasa.gov" target="_blank" rel="noopener">NASA JPL</a></p>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4">
+                    <div class="feature-card h-100 card-emeritus">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/00000000000000000000000000000000?d=mm&s=80" alt="C&eacute;dric Mailleux" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">C&eacute;dric Mailleux</h3>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-retired">Retired</span>
+                        </div>
+                        <p class="small text-muted mb-1">was initial committer, PPMC</p>
+                        <p class="small text-muted mb-0"><a href="https://www.jahia.com" target="_blank" rel="noopener">Jahia</a></p>
+                    </div>
+                </div>
+
+                <div class="col-md-6 col-lg-4">
+                    <div class="feature-card h-100 card-emeritus">
+                        <div class="d-flex align-items-center mb-3">
+                            <img src="https://www.gravatar.com/avatar/00000000000000000000000000000000?d=mm&s=80" alt="R&eacute;gis Mora" class="rounded-circle me-3" width="48" height="48" loading="lazy">
+                            <div>
+                                <h3 class="h6 fw-semibold mb-0">R&eacute;gis Mora</h3>
+                            </div>
+                        </div>
+                        <div class="d-flex flex-wrap gap-1 mb-2">
+                            <span class="badge badge-retired">Retired</span>
+                        </div>
+                        <p class="small text-muted mb-0">was initial committer, PPMC</p>
+                    </div>
+                </div>
+
+          </div>
+
+          <h4 class="h5 pb-3 pt-5">Contributors</h4>
           <p>There are no contributors listed for this project. Please check back again later.</p>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/connectors.html b/src/main/webapp/connectors.html
index 44ece48..0275874 100644
--- a/src/main/webapp/connectors.html
+++ b/src/main/webapp/connectors.html
@@ -1,77 +1,25 @@
 ---
-title: Documentation
+title: Connectors
+description: "Apache Unomi connectors and integrations. MailChimp connector and custom plugin connectors."
+keywords: "Apache Unomi connectors, integrations, plugins, extensions, custom connectors"
 layout: default
+noindex: true
 ---
 
-    <div class="container mb-5 pt-5">
-      <h2 class="pb-2 mb-2 border-bottom">Connectors</h2>
-
-      <h4 class="pt-4 mt-2 text-dark">Featured</h4>
-
-      <div class="row mb-2">
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i> Stable</strong>
-              <h3 class="mb-0 text-dark">Salesforce CRM <span class="text-muted">1.5.7</span></h3>
-              <div class="mb-1 text-muted">Last update: July 27th, 2021</div>
-              <p class="card-text">
-                <a href="manual/1_5_x/index.html">Download</a><br>
-              </p>
+<!-- Redirect to Integrations page -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center text-center">
+            <div class="col-lg-8">
+                <div class="p-5 rounded-3 bg-primary-light">
+                    <div class="feature-icon feature-icon-lg mx-auto mb-3"><i class="bi bi-arrow-right-circle"></i></div>
+                    <h1 class="h3 mb-3">This page has moved</h1>
+                    <p class="text-muted mb-4">Connectors are now part of our comprehensive <strong>Integrations &amp; Ecosystem</strong> page.</p>
+                    <a href="/integrations.html" class="btn btn-primary btn-lg">
+                        <i class="bi bi-puzzle me-2"></i>Go to Integrations
+                    </a>
+                </div>
             </div>
-          </div>
         </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-warning"><i class="fas fa-circle"></i> Unstable</strong>
-              <h3 class="mb-0 text-dark">MailChimp <span class="text-muted">{{ site.data.unomi.latest.development.version }}</span></h3>
-              <div class="mb-1 text-muted">In development</div>
-              <p class="card-text">
-                <a href="manual/latest/index.html">Download</a><br>
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-12">
-          <p>Add your own connector to this page! Learn <a href="">how now</a>.</p>
-        </div>
-      </div>
-
-      <h4 class="pt-4 mt-2 text-dark">Build your own !</h4>
-
-      <div class="row mb-2">
-        <div class="col-md-8">
-          <p>Quick example of a Groovy connector</p>
-          <code>
-            <pre>
-import org.apache.unomi.api.services.EventService
-import org.jsoup.nodes.Document
-
-import static groovyx.net.http.HttpBuilder.configure
-
-Document page = configure {
-    request.uri = 'https://mvnrepository.com/artifact/org.codehaus.groovy/groovy-all'
-}.get()
-
-String license = page.select('span.b.lic').collect { it.text() }.join(', ')
-
-println "Event type:${event.getEventType()}"
-println "Profile ID=${event.getProfile().getItemId()}"
-println "Action name=${action.actionType.metadata.name}"
-println "Action parameters=${action.parameterValues}"
-
-println "Groovy is licensed under: ${license}"
-
-EventService.NO_CHANGE
-            </pre>
-          </code>
-        </div>
-        <div class="col-md-4">
-          <a href="">Learn</a> more about building your own Groovy connector !
-        </div>
-      </div>
     </div>
-
-      </div><!-- /.container -->
-
+</section>
diff --git a/src/main/webapp/contribute/become-a-committer.html b/src/main/webapp/contribute/become-a-committer.html
index 0c34c91..4073ad0 100644
--- a/src/main/webapp/contribute/become-a-committer.html
+++ b/src/main/webapp/contribute/become-a-committer.html
@@ -1,55 +1,54 @@
 ---
 title: Contribute | Become a committer
+description: "Learn how to become an Apache Unomi committer and what it means to be part of the project."
+keywords: "Apache committer, become committer, Unomi committer, open source committer, ASF committer guide"
 layout: default
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Contribute</p>
+        <h1>Become a Committer</h1>
+    </div>
+</section>
 
-      <div class="container">
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5 pt-3">
-          <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Contribute</strong></div>
-            <ul class="list-unstyled mb-3">
-              <li><a href="index.html">Get started contributing</a></li>
-              <li class="sidenav-menu-sub-title">Technical Docs</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="testing.html">Testing guide</a></li>
-                  <li><a href="dependencies-guide.html">Dependencies guide</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Policies</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li>
-                  <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Committers</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="become-a-committer.html">Become a committer</a></li>
-                  <li><a href="committer-guide.html">Committer guide</a></li>
-                  <li><a href="release-guide.html">Release guide</a></li>
-                </ul>
-              </li>
-            </ul>
-          </div>
-          <div class="col-8 pt-3 offset-4">
-            <h2>Become a Committer</h2>
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Contribute</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html">Getting Started</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Technical Docs</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="testing.html">Testing Guide</a></li>
+                        <li><a href="dependencies-guide.html">Dependencies Guide</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Policies</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="pre-commit-test-policies.html">Pre-commit Policies</a></li>
+                        <li><a href="post-commit-test-policies.html">Post-commit Policies</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Committers</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="become-a-committer.html" class="active">Become a Committer</a></li>
+                        <li><a href="committer-guide.html">Committer Guide</a></li>
+                        <li><a href="release-guide.html">Release Guide</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
+            <p>An Apache Unomi <a target="_blank" rel="noopener" href="https://www.apache.org/foundation/how-it-works.html#committers">committer</a> has write access to the repository for merging pull requests, but you don't have to be a code contributor to become a committer. Becoming a committer means that ou have the project's trust. Read the <a target="_blank" rel="noopener" href="https://www.apache.org/dev/committers.html#committer-responsibilities">ASF documentation</a> for more about being a committer in the Apache Software Foundation.</p>
 
-            <p>An Apache Unomi <a target="_blank" href="https://www.apache.org/foundation/how-it-works.html#committers">committer</a> has write access to the repository for merging pull requests, but you don't have to be a code contributor to become a committer. Becoming a committer means that ou have the project's trust. Read the <a target="_blank" href="https://www.apache.org/dev/committers.html#committer-responsibilities">ASF documentation</a> for more about being a committer in the Apache Software Foundation.</p>
-
-            <p>The <a target="_blank" href="https://www.apache.org/foundation/how-it-works.html#pmc-members">PMC</a> makes someone a committer via nomination, discussion, and then majority vote. We use data from as many sources as possible to inform our reasoning. Here are some examples:</p>
+            <p>The <a target="_blank" rel="noopener" href="https://www.apache.org/foundation/how-it-works.html#pmc-members">PMC</a> makes someone a committer via nomination, discussion, and then majority vote. We use data from as many sources as possible to inform our reasoning. Here are some examples:</p>
 
             <ul>
-              <li><a target="_blank" href="https://lists.apache.org/list.html?dev@unomi.apache.org">dev@ archives</a> and <a target="_blank" href="https://lists.apache.org/trends.html?dev@unomi.apache.org">statistics</a></li>
-              <li><a target="_blank" href="https://lists.apache.org/list.html?user@unomi.apache.org">user@ archives</a> and <a target="_blank" href="https://lists.apache.org/trends.html?user@unomi.apache.org">statistics</a></li>
-              <li>Git metrics for <a target="_blank" href="https://github.com/apache/unomi/graphs/contributors">Unomi</a> and the <a target="_blank" href="https://github.com/apache/unomi-site/graphs/contributors">Unomi site</a></li>
-              <li>Code reviews given and received on <a target="_blank" href="https://github.com/apache/unomi/pulls">Unomi</a> and the <a target="_blank" href="https://github.com/apache/unomi-site/pulls">Unomi site</a></li>
+              <li><a target="_blank" rel="noopener" href="https://lists.apache.org/list.html?dev@unomi.apache.org">dev@ archives</a> and <a target="_blank" rel="noopener" href="https://lists.apache.org/trends.html?dev@unomi.apache.org">statistics</a></li>
+              <li><a target="_blank" rel="noopener" href="https://lists.apache.org/list.html?user@unomi.apache.org">user@ archives</a> and <a target="_blank" rel="noopener" href="https://lists.apache.org/trends.html?user@unomi.apache.org">statistics</a></li>
+              <li>Git metrics for <a target="_blank" rel="noopener" href="https://github.com/apache/unomi/graphs/contributors">Unomi</a> and the <a target="_blank" rel="noopener" href="https://github.com/apache/unomi-site/graphs/contributors">Unomi site</a></li>
+              <li>Code reviews given and received on <a target="_blank" rel="noopener" href="https://github.com/apache/unomi/pulls">Unomi</a> and the <a target="_blank" rel="noopener" href="https://github.com/apache/unomi-site/pulls">Unomi site</a></li>
               <li>Clear areas of ownership (runtime, API, persistence, documentation, etc.)</li>
               <li>Public events</li>
               <li>Firsthand PMC testimonials</li>
@@ -65,7 +64,7 @@
 
             <h4>Knows, upholds, and reinforces the Apache Software Foundation code of conduct</h4>
 
-            <p>See the <a target="_blank" href="https://www.apache.org/foundation/policies/conduct.html">ASF documentation</a>. In particular, they manifestly strive to:</p>
+            <p>See the <a target="_blank" rel="noopener" href="https://www.apache.org/foundation/policies/conduct.html">ASF documentation</a>. In particular, they manifestly strive to:</p>
 
             <ul>
               <li>Be open</li>
@@ -80,7 +79,7 @@
 
             <h4>Knows, upholds, and reinforces the responsibilities of an Apache Software Foundation committer</h4>
 
-            <p>See the <a target="_blank" href="https://www.apache.org/dev/committers.html#committer-responsibilities">ASF documentation</a>.</p>
+            <p>See the <a target="_blank" rel="noopener" href="https://www.apache.org/dev/committers.html#committer-responsibilities">ASF documentation</a>.</p>
 
             <ul>
               <li>They help create a product that will outlive the interest of any particular volunteer (including themselves)</li>
@@ -103,10 +102,11 @@
                   <li>They earnestly try to make Unomi better with their own code</li>
                   <li>They earnestly try to make Unomi better with code review</li>
                   <li>They accept and integrate feedback on their code</li>
-                  <li>They know, follow, and enforce Unomiâ€&trade;s practices while reviewing/merging code - style, documentation, testing, backward compatibility, etc.</li>
+                  <li>They know, follow, and enforce Unomi&rsquo;s practices while reviewing/merging code - style, documentation, testing, backward compatibility, etc.</li>
                 </ul>
               </li>
             </ul>
-          </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/contribute/committer-guide.html b/src/main/webapp/contribute/committer-guide.html
index c05f9a6..dd878af 100644
--- a/src/main/webapp/contribute/committer-guide.html
+++ b/src/main/webapp/contribute/committer-guide.html
@@ -1,47 +1,46 @@
 ---
 title: Contribute | Committer guide
+description: "Guidelines for Apache Unomi committers on reviewing and merging code."
+keywords: "Unomi committer guide, committer responsibilities, Apache committer, git workflow, code review"
 layout: default
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Contribute</p>
+        <h1>Committer Guide</h1>
+    </div>
+</section>
 
-      <div class="container">
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5 pt-3">
-          <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Contribute</strong></div>
-            <ul class="list-unstyled mb-3">
-              <li><a href="index.html">Get started contributing</a></li>
-              <li class="sidenav-menu-sub-title">Technical Docs</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="testing.html">Testing guide</a></li>
-                  <li><a href="dependencies-guide.html">Dependencies guide</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Policies</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li>
-                  <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Committers</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="become-a-committer.html">Become a committer</a></li>
-                  <li><a href="committer-guide.html">Committer guide</a></li>
-                  <li><a href="release-guide.html">Release guide</a></li>
-                </ul>
-              </li>
-            </ul>
-          </div>
-          <div class="col-8 pt-3 offset-4">
-            <h2>Committer Guide</h2>
-
-            <p>This guide is for <a target="_blank" href="https://www.apache.org/foundation/how-it-works.html#committers">committers</a> and covers Unomi's guidelines for reviewing and merging code.</p>
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Contribute</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html">Getting Started</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Technical Docs</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="testing.html">Testing Guide</a></li>
+                        <li><a href="dependencies-guide.html">Dependencies Guide</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Policies</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="pre-commit-test-policies.html">Pre-commit Policies</a></li>
+                        <li><a href="post-commit-test-policies.html">Post-commit Policies</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Committers</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="become-a-committer.html">Become a Committer</a></li>
+                        <li><a href="committer-guide.html" class="active">Committer Guide</a></li>
+                        <li><a href="release-guide.html">Release Guide</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
+            <p>This guide is for <a target="_blank" rel="noopener" href="https://www.apache.org/foundation/how-it-works.html#committers">committers</a> and covers Unomi's guidelines for reviewing and merging code.</p>
 
             <h3>Always get to LGTM ("Looks good to me!")</h3>
 
@@ -56,9 +55,9 @@
             <h3>Contributor License Agreement</h3>
 
             <p>If you are merging a larger contribution, please make sure that the contributor has an ICLA on file with the Apache Secretary. You can view the list of
-            committers <a target="_blank" href="http://home.apache.org/phonebook.html?unix=committers">here</a>, as well as <a target="_blank" href="http://home.apache.org/unlistedclas.html">ICLA-signers who aren't yet committers</a>.</p>
+            committers <a target="_blank" rel="noopener" href="https://home.apache.org/phonebook.html?unix=committers">here</a>, as well as <a target="_blank" rel="noopener" href="https://home.apache.org/unlistedclas.html">ICLA-signers who aren't yet committers</a>.</p>
 
-            <p>For smaller contributions, however, this is not required. In this case, we rely on <a target="_blank" href="http://www.apache.org/licenses/LICENSE-2.0#contributions">clause five</a> of the Apache License, Version 2.0, describing licensing of intentionally submitted contributions.</p>
+            <p>For smaller contributions, however, this is not required. In this case, we rely on <a target="_blank" rel="noopener" href="https://www.apache.org/licenses/LICENSE-2.0#contributions">clause five</a> of the Apache License, Version 2.0, describing licensing of intentionally submitted contributions.</p>
 
             <h3>Tests</h3>
 
@@ -84,6 +83,7 @@
             <pre class="alert alert-primary"><code>Merge pull request #1234: [UNOMI-7873] Fix the foo bizzle bazzle</code></pre>
 
             <p>If you have comments to add, put them in the body of the commit message.</p>
-          </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/contribute/dependencies-guide.html b/src/main/webapp/contribute/dependencies-guide.html
index 0a73654..6114aca 100644
--- a/src/main/webapp/contribute/dependencies-guide.html
+++ b/src/main/webapp/contribute/dependencies-guide.html
@@ -1,48 +1,47 @@
 ---
 title: Contribute | Dependencies guide
+description: "Learn about policies for keeping Apache Unomi dependencies up to date."
+keywords: "Apache Unomi dependencies, BOM, dependency management, Maven, third-party libraries, license compliance"
 layout: default
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Contribute</p>
+        <h1>Dependencies Guide</h1>
+    </div>
+</section>
 
-      <div class="container">
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5 pt-3">
-          <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Contribute</strong></div>
-            <ul class="list-unstyled mb-3">
-              <li><a href="index.html">Get started contributing</a></li>
-              <li class="sidenav-menu-sub-title">Technical Docs</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="testing.html">Testing guide</a></li>
-                  <li><a href="dependencies-guide.html">Dependencies guide</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Policies</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li>
-                  <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Committers</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="become-a-committer.html">Become a committer</a></li>
-                  <li><a href="committer-guide.html">Committer guide</a></li>
-                  <li><a href="release-guide.html">Release guide</a></li>
-                </ul>
-              </li>
-            </ul>
-          </div>
-          <div class="col-8 pt-3 offset-4">
-            <h2>Dependencies Guide</h2>
-
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Contribute</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html">Getting Started</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Technical Docs</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="testing.html">Testing Guide</a></li>
+                        <li><a href="dependencies-guide.html" class="active">Dependencies Guide</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Policies</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="pre-commit-test-policies.html">Pre-commit Policies</a></li>
+                        <li><a href="post-commit-test-policies.html">Post-commit Policies</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Committers</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="become-a-committer.html">Become a Committer</a></li>
+                        <li><a href="committer-guide.html">Committer Guide</a></li>
+                        <li><a href="release-guide.html">Release Guide</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
             <p>This document describes policies for keeping Unomi dependencies up to date.</p>
-            <p>Old dependencies cause user pain and can result in a system being unusable for some users. Many users do not use Unomi in isolation and bundle other dependencies in the same deployment. These additional dependencies might pull in incompatible dependencies to userâ€&trade;s environment which can again result in broken Unomi pipelines, sometimes with undefined behavior. To prevent this, users will have to update their deployment environment or worse yet may end up not being able to use Unomi along with some of the other dependencies at all.</p>
+            <p>Old dependencies cause user pain and can result in a system being unusable for some users. Many users do not use Unomi in isolation and bundle other dependencies in the same deployment. These additional dependencies might pull in incompatible dependencies to user&rsquo;s environment which can again result in broken Unomi pipelines, sometimes with undefined behavior. To prevent this, users will have to update their deployment environment or worse yet may end up not being able to use Unomi along with some of the other dependencies at all.</p>
 
             <p>If a component <em>X</em> chooses to override the version of a dependency <em>D</em> from <em>a</em> to <em>b</em> and another component <em>Y</em> is incompatible with version <em>b</em> of <em>D</em>, deployment of a user that uses both components <em>X</em> and <em>Y</em> will end up in a broken state.</p>
 
@@ -52,9 +51,49 @@
 
             <p>This picture can become even more complicated during runtime. Runner specific code might be incompatible with dependencies included by certain modules and if these dependencies leak into runtime, a pipeline might end up in a broken state.</p>
 
-            <p>The overall issue is not common to Unomi and well known in the industry as the Diamond <a target="_blank" href="https://en.wikipedia.org/wiki/Dependency_hell">Dependency problem (or Dependency Hell)</a>.</p>
+            <p>The overall issue is not common to Unomi and well known in the industry as the Diamond <a target="_blank" rel="noopener" href="https://en.wikipedia.org/wiki/Dependency_hell">Dependency problem (or Dependency Hell)</a>.</p>
 
-            <p>One common solution for the diamond dependency problem is <a target="_blank" href="https://semver.org/">semantic versioning</a>. The basic idea is that dependencies will be versioned in the form <em>x.y.z</em> where <em>x</em> is the <em>major version</em>, <em>y</em> is the <em>minor version</em>, and <em>z</em> is the <em>patch version</em>. A major version change may be backwards incompatible and is expected to be rare. Minor and patch versions may be released more regularly but are expected to be backwards compatible. But in practice, important fixes (such as security patches) might get released in the form of minor or patch version updates and it will be healthy for the Unomi project to depend on recently released minor versions of dependencies.</p>
+            <h3>Bill of Materials (BOM)</h3>
+
+            <p>Starting with Unomi 3, the project uses a <strong>Bill of Materials (BOM)</strong> to centralize and align all dependency versions across the codebase. The BOM is structured in two layers:</p>
+
+            <ul>
+                <li><strong><a target="_blank" rel="noopener" href="https://github.com/apache/unomi/blob/master/bom/pom.xml"><code>unomi-bom</code></a></strong> &mdash; The main BOM. It imports the <a target="_blank" rel="noopener" href="https://karaf.apache.org/">Apache Karaf</a> BOM, the Unomi artifacts BOM (below), and declares managed versions for all third-party dependencies used across the project: Jackson, CXF, Elasticsearch, OpenSearch, Groovy, GraphQL, Jetty, Kafka, JUnit, and many more. Every module in the Unomi build inherits from this BOM, ensuring consistent library versions everywhere.</li>
+                <li><strong><a target="_blank" rel="noopener" href="https://github.com/apache/unomi/blob/master/bom/artifacts/pom.xml"><code>unomi-bom-artifacts</code></a></strong> &mdash; A nested BOM that manages all of Unomi&rsquo;s own module artifacts (API, services, persistence SPI, plugins, extensions, GraphQL, router, shell commands, etc.) with version-aligned declarations. This is especially useful for developers building custom extensions or integrations, as importing this single BOM pulls in consistent versions of all Unomi modules.</li>
+            </ul>
+
+            <p><strong>Using the BOM in your own project:</strong> If you are building a custom Unomi extension, plugin, or integration, you can import the Unomi BOM in your own <code>pom.xml</code> to avoid having to manually track dependency versions:</p>
+
+            <pre class="alert alert-primary"><code>&lt;dependencyManagement&gt;
+    &lt;dependencies&gt;
+        &lt;dependency&gt;
+            &lt;groupId&gt;org.apache.unomi&lt;/groupId&gt;
+            &lt;artifactId&gt;unomi-bom&lt;/artifactId&gt;
+            &lt;version&gt;3.0.0&lt;/version&gt;
+            &lt;type&gt;pom&lt;/type&gt;
+            &lt;scope&gt;import&lt;/scope&gt;
+        &lt;/dependency&gt;
+    &lt;/dependencies&gt;
+&lt;/dependencyManagement&gt;</code></pre>
+
+            <p>After importing the BOM, you can declare dependencies on Unomi modules and their transitive libraries without specifying versions &mdash; they will be resolved from the BOM automatically:</p>
+
+            <pre class="alert alert-primary"><code>&lt;dependencies&gt;
+    &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.unomi&lt;/groupId&gt;
+        &lt;artifactId&gt;unomi-api&lt;/artifactId&gt;
+        &lt;!-- version inherited from BOM --&gt;
+    &lt;/dependency&gt;
+    &lt;dependency&gt;
+        &lt;groupId&gt;org.apache.unomi&lt;/groupId&gt;
+        &lt;artifactId&gt;unomi-persistence-spi&lt;/artifactId&gt;
+        &lt;!-- version inherited from BOM --&gt;
+    &lt;/dependency&gt;
+&lt;/dependencies&gt;</code></pre>
+
+            <p>This approach ensures your extension always uses dependency versions that have been tested together as part of the Unomi release, significantly reducing the risk of version conflicts at runtime.</p>
+
+            <p>One common solution for the diamond dependency problem is <a target="_blank" rel="noopener" href="https://semver.org/">semantic versioning</a>. The basic idea is that dependencies will be versioned in the form <em>x.y.z</em> where <em>x</em> is the <em>major version</em>, <em>y</em> is the <em>minor version</em>, and <em>z</em> is the <em>patch version</em>. A major version change may be backwards incompatible and is expected to be rare. Minor and patch versions may be released more regularly but are expected to be backwards compatible. But in practice, important fixes (such as security patches) might get released in the form of minor or patch version updates and it will be healthy for the Unomi project to depend on recently released minor versions of dependencies.</p>
 
             <h3>Identifying outdated dependencies</h3>
 
@@ -106,13 +145,14 @@
 
             <p><strong>Dependencies of Java SDK components that may cause issues to other components if leaked should be vendored.</strong></p>
 
-            <p><a target="_blank" href="https://www.ardanlabs.com/blog/2013/10/manage-dependencies-with-godep.html">Vendoring</a> is the process of creating copies of third party dependencies. Combined with repackaging, vendoring will allow Unomi components to depend on third party libraries without causing conflicts to other components. Vendoring should be done in a case-by-case basis since this can increase the total number of dependencies deployed in userâ€&trade;s enviroment.</p>
+            <p><a target="_blank" rel="noopener" href="https://www.ardanlabs.com/blog/2013/10/manage-dependencies-with-godep.html">Vendoring</a> is the process of creating copies of third party dependencies. Combined with repackaging, vendoring will allow Unomi components to depend on third party libraries without causing conflicts to other components. Vendoring should be done in a case-by-case basis since this can increase the total number of dependencies deployed in user&rsquo;s enviroment.</p>
 
             <h3>Dependency updates and backwards compatibility</h3>
 
-            <p>Unomi releases <a target="_blank" href="https://unomi.apache.org/downloads/">adhere to</a> semantic versioning. Hence, community members should take care when updating dependencies. Minor version updates to dependencies should be backwards compatible in most cases. Some updates to dependencies though may result in backwards incompatible API or functionality changes to Unomi. PR reviewers and committers should take care to detect any dependency updates that could potentially introduce backwards incompatible changes to Unomi before merging and PRs that update dependencies should include a statement regarding this verification in the form of a PR comment. Dependency updates that result in backwards incompatible changes to non-experimental features of Unomi should be held till next major version release of Unomi.</p>
+            <p>Unomi releases <a target="_blank" rel="noopener" href="https://unomi.apache.org/download.html">adhere to</a> semantic versioning. Hence, community members should take care when updating dependencies. Minor version updates to dependencies should be backwards compatible in most cases. Some updates to dependencies though may result in backwards incompatible API or functionality changes to Unomi. PR reviewers and committers should take care to detect any dependency updates that could potentially introduce backwards incompatible changes to Unomi before merging and PRs that update dependencies should include a statement regarding this verification in the form of a PR comment. Dependency updates that result in backwards incompatible changes to non-experimental features of Unomi should be held till next major version release of Unomi.</p>
 
             <p>Any exceptions to this policy should only occur in extreme cases (for example, due to a security vulnerability of an existing dependency that is only fixed in a subsequent major version) and should be discussed in the Unomi dev list. Note that backwards incompatible changes to experimental features may be introduced in a minor version release.</p>
-          </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/contribute/index.html b/src/main/webapp/contribute/index.html
index 18cc4db..df5adab 100644
--- a/src/main/webapp/contribute/index.html
+++ b/src/main/webapp/contribute/index.html
@@ -1,75 +1,126 @@
 ---
 title: Contribute
+description: "Contribute to Apache Unomi. Help with code, documentation, bug reports, answering questions, and more."
+keywords: "contribute Apache Unomi, open source contribution, how to contribute, pull requests, JIRA, developer guide"
 layout: default
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
+<!-- Page Header -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Contribute</p>
+        <h1>Contribute to Apache Unomi</h1>
+        <p class="lead">The Apache Unomi community welcomes contributions of all kinds.</p>
+    </div>
+</section>
 
-      <div class="container">
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5 pt-3">
-          <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Contribute</strong></div>
-            <ul class="list-unstyled mb-3">
-              <li><a href="index.html">Get started contributing</a></li>
-              <li class="sidenav-menu-sub-title">Technical Docs</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="testing.html">Testing guide</a></li>
-                  <li><a href="dependencies-guide.html">Dependencies guide</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Policies</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li>
-                  <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Committers</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="become-a-committer.html">Become a committer</a></li>
-                  <li><a href="committer-guide.html">Committer guide</a></li>
-                  <li><a href="release-guide.html">Release guide</a></li>
-                </ul>
-              </li>
-            </ul>
-          </div>
-          <div class="col-8 pt-3 offset-4">
-            <h2 class="pb-1">Apache Unomi Contribution Guide</h2>
-            <p>The Apache Unomi community welcomes contributions from anyone!</p>
-            <p>There are lots of opportunities:</p>
-            <ul>
-              <li>ask or answer questions on the <a href="../community/index.html">mailing lists</a> or Slack</li>
-              <li>review proposed design ideas on <a href="../community/index.html">dev@unomi.apache.org</a></li>
-              <li>improve the documentation</li>
-              <li>contribute <a target="_blank" href="https://issues.apache.org/jira/browse/UNOMI">bug reports</a></li>
-              <li>write new examples</li>
-            </ul>
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <!-- Sidebar -->
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Contribute</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html" class="active">Getting Started</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Technical Docs</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="testing.html">Testing Guide</a></li>
+                        <li><a href="dependencies-guide.html">Dependencies Guide</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Policies</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="pre-commit-test-policies.html">Pre-commit Policies</a></li>
+                        <li><a href="post-commit-test-policies.html">Post-commit Policies</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Committers</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="become-a-committer.html">Become a Committer</a></li>
+                        <li><a href="committer-guide.html">Committer Guide</a></li>
+                        <li><a href="release-guide.html">Release Guide</a></li>
+                    </ul>
+                </div>
+            </div>
 
-            <p>Most importantly, if you have an idea of how to contribute, then do it!</p>
+            <!-- Main Content -->
+            <div class="col-lg-9">
+                <h2 class="h4 mb-3">How to Contribute</h2>
+                <p>There are many ways to contribute, no matter your experience level:</p>
 
-            <h3 class="pt-1">Source repository</h3>
-            <p>This project uses Git to manage its source code. Instructions on Git use can be found at <a target="_blank" href="https://git-scm.com/doc">https://git-scm.com/doc</a></p>
+                <div class="row g-3 mb-4">
+                    <div class="col-md-6">
+                        <div class="d-flex align-items-start">
+                            <div class="feature-icon feature-icon-md me-3"><i class="bi bi-chat-dots"></i></div>
+                            <div>
+                                <h3 class="h6 fw-semibold mb-1">Answer Questions</h3>
+                                <p class="small text-muted mb-0">Help users on the <a href="/community/index.html">mailing list</a> or Slack.</p>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-md-6">
+                        <div class="d-flex align-items-start">
+                            <div class="feature-icon feature-icon-md me-3"><i class="bi bi-file-text"></i></div>
+                            <div>
+                                <h3 class="h6 fw-semibold mb-1">Improve Documentation</h3>
+                                <p class="small text-muted mb-0">Fix typos, add examples, or write new guides.</p>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-md-6">
+                        <div class="d-flex align-items-start">
+                            <div class="feature-icon feature-icon-md me-3"><i class="bi bi-bug"></i></div>
+                            <div>
+                                <h3 class="h6 fw-semibold mb-1">Report Bugs</h3>
+                                <p class="small text-muted mb-0">File issues on <a href="https://issues.apache.org/jira/browse/UNOMI" target="_blank" rel="noopener">JIRA</a>.</p>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-md-6">
+                        <div class="d-flex align-items-start">
+                            <div class="feature-icon feature-icon-md me-3"><i class="bi bi-code-slash"></i></div>
+                            <div>
+                                <h3 class="h6 fw-semibold mb-1">Submit Code</h3>
+                                <p class="small text-muted mb-0">Send pull requests with bug fixes, features, or examples.</p>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-md-6">
+                        <div class="d-flex align-items-start">
+                            <div class="feature-icon feature-icon-md me-3"><i class="bi bi-eye"></i></div>
+                            <div>
+                                <h3 class="h6 fw-semibold mb-1">Review Designs</h3>
+                                <p class="small text-muted mb-0">Discuss proposals on <a href="https://lists.apache.org/list.html?dev@unomi.apache.org" target="_blank" rel="noopener">dev@unomi.apache.org</a>.</p>
+                            </div>
+                        </div>
+                    </div>
+                    <div class="col-md-6">
+                        <div class="d-flex align-items-start">
+                            <div class="feature-icon feature-icon-md me-3"><i class="bi bi-share"></i></div>
+                            <div>
+                                <h3 class="h6 fw-semibold mb-1">Spread the Word</h3>
+                                <p class="small text-muted mb-0">Write blog posts, give talks, or share your experience.</p>
+                            </div>
+                        </div>
+                    </div>
+                </div>
 
-            <h4 class="pt-2">Web Browser Access</h4>
-            <p>The following is a link to a browsable version of the source repository:<br/>
-              <a target="_blank" href="https://gitbox.apache.org/repos/asf?p=unomi.git">https://gitbox.apache.org/repos/asf?p=unomi.git</a>
-            </p>
+                <hr class="my-4">
 
-            <h4 class="pt-2">Anonymous Access</h4>
-            <p>The source can be checked out anonymously from Git with this command (See <a target="_blank" href="https://git-scm.com/docs/git-clone">https://git-scm.com/docs/git-clone</a>):</p>
-            <pre class="alert alert-primary"><code>$ git clone https://gitbox.apache.org/repos/asf/unomi.git</code></pre>
+                <h2 class="h4 mb-3">Source Repository</h2>
+                <p class="small text-muted">Apache Unomi uses Git. Learn more at <a href="https://git-scm.com/doc" target="_blank" rel="noopener">git-scm.com</a>.</p>
 
-            <h4 class="pt-2">Developer Access</h4>
-            <p>Only project developers can access the Git tree via this method (See <a target="_blank" href="https://git-scm.com/docs/git-clone">https://git-scm.com/docs/git-clone</a>):</p>
-            <pre class="alert alert-primary"><code>$ git clone https://gitbox.apache.org/repos/asf/unomi.git</code></pre>
+                <div class="mb-3">
+                    <h3 class="h6 fw-semibold mb-2"><i class="bi bi-github me-2"></i>GitHub (recommended)</h3>
+                    <pre><code>git clone https://github.com/apache/unomi.git</code></pre>
+                </div>
 
-            <h4 class="pt-3">Access from Behind a Firewall</h4>
-            <p>Refer to the documentation of the SCM used for more information about access behind a firewall.</p>
-          </div>
+                <div class="mb-3">
+                    <h3 class="h6 fw-semibold mb-2"><i class="bi bi-git me-2"></i>Apache GitBox</h3>
+                    <pre><code>git clone https://gitbox.apache.org/repos/asf/unomi.git</code></pre>
+                    <p class="small text-muted">Browse: <a href="https://gitbox.apache.org/repos/asf?p=unomi.git" target="_blank" rel="noopener">Web view</a></p>
+                </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/contribute/manual-release-guide.html b/src/main/webapp/contribute/manual-release-guide.html
index e7b58bd..06ba469 100644
--- a/src/main/webapp/contribute/manual-release-guide.html
+++ b/src/main/webapp/contribute/manual-release-guide.html
@@ -1,44 +1,46 @@
 ---
-title: Contribute | Manual Release guide
+title: Manual Release Guide
+description: "Manual release guide for Apache Unomi release managers"
+keywords: "Apache Unomi release, manual release guide, Maven release, ASF release process, artifact signing"
 layout: default
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Contribute</p>
+        <h1>Manual Release Guide</h1>
+    </div>
+</section>
 
-      <div class="container">
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5 pt-3">
-          <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Contribute</strong></div>
-            <ul class="list-unstyled mb-3">
-              <li><a href="index.html">Get started contributing</a></li>
-              <li class="sidenav-menu-sub-title">Technical Docs</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="testing.html">Testing guide</a></li>
-                  <li><a href="dependencies-guide.html">Dependencies guide</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Policies</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li>
-                  <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Committers</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="become-a-committer.html">Become a committer</a></li>
-                  <li><a href="committer-guide.html">Committer guide</a></li>
-                  <li><a href="release-guide.html">Release guide</a></li>
-                </ul>
-              </li>
-            </ul>
-          </div>
-          <div class="col-8 pt-3 offset-4">
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Contribute</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html">Getting Started</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Technical Docs</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="testing.html">Testing Guide</a></li>
+                        <li><a href="dependencies-guide.html">Dependencies Guide</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Policies</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="pre-commit-test-policies.html">Pre-commit Policies</a></li>
+                        <li><a href="post-commit-test-policies.html">Post-commit Policies</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Committers</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="become-a-committer.html">Become a Committer</a></li>
+                        <li><a href="committer-guide.html">Committer Guide</a></li>
+                        <li><a href="release-guide.html">Release Guide</a></li>
+                        <li><a href="manual-release-guide.html" class="active">Manual Release Guide</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
             <h2 id="apache-unomi-release-guide">Manual Apache Unomi Release Guide</h2>
 
             <p>The Apache Unomi project periodically declares and publishes releases. A release is one or more packages of the project artifact(s) that are approved for general public distribution and use. They may come with various degrees of caveat regarding their perceived quality and potential for change, such as "alpha", "beta", "stable", etc.</p>
@@ -47,7 +49,7 @@
 
             <p>Each release is executed by a <em>Release Manager</em>, who is selected among the Unomi committers. This document describes the process that the Release Manager follows to perform a release. Any changes to this process should be discussed and adopted on the <a href="../community/index.html">dev@ mailing list</a>.</p>
 
-            <p>Please remember that publishing software has legal consequences. This guide complements the foundation-wide <a href="https://www.apache.org/dev/release.html" target="_blank">Product Release Policy</a> and <a href="https://www.apache.org/dev/release-distribution" target="_blank">Release Distribution Policy</a>.</p>
+            <p>Please remember that publishing software has legal consequences. This guide complements the foundation-wide <a href="https://www.apache.org/dev/release.html" target="_blank" rel="noopener">Product Release Policy</a> and <a href="https://www.apache.org/dev/release-distribution" target="_blank" rel="noopener">Release Distribution Policy</a>.</p>
 
             <h2 id="overview">Overview</h2>
 
@@ -76,7 +78,7 @@
 
             <p>In general, the community prefers to have a rotating set of 3-5 Release Managers. Keeping a small core set of managers allows enough people to build expertise in this area and improve processes over time, without Release Managers needing to re-learn the processes for each release. That said, if you are a committer interested in serving the community in this way, please reach out to the community on the dev@ mailing list.</p>
 
-            <p>Basically we will be following the procedure described <a href="https://www.apache.org/dev/publishing-maven-artifacts.html" target="_blank">here</a> with a few more steps and details before and after.</p>
+            <p>Basically we will be following the procedure described <a href="https://www.apache.org/dev/publishing-maven-artifacts.html" target="_blank" rel="noopener">here</a> with a few more steps and details before and after.</p>
 
 
             <h3 id="checklist-to-proceed-to-the-next-step">Checklist to proceed to the next step</h3>
@@ -116,7 +118,7 @@
                       This should tell you which key was used and display the email address.
                   </li>
                   <li>
-                      Make sure your public KEY is available in this files (if not add your key to the files and commit/push):
+                      Make sure your public KEY is available in these files (if not add your key to the files and commit/push):
                       <ol>
                           <li><a href="https://github.com/apache/unomi/blob/master/KEYS">GIT https://github.com/apache/unomi/blob/master/KEYS (cherry-pick to the branches if necessary)</a></li>
                           <li><a href="https://dist.apache.org/repos/dist/dev/unomi/KEYS">SVN https://dist.apache.org/repos/dist/dev/unomi/KEYS</a></li>
@@ -137,7 +139,7 @@
               <li>
                   Update all JIRAs, close the ones that are still not closed, review tickets that can be closed, postpone to another release tickets that are not managed now.
                   You can use this JIRA page: <a href="https://issues.apache.org/jira/projects/UNOMI?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased">Unomi JIRA releases</a>.
-                  Then review the list of tickets that need to be updated, also additionally you can check the list of commits since previous release and insure they are closed using fix version: {{ site.data.unomi.next.stable.version }}.
+                  Then review the list of tickets that need to be updated, also additionally you can check the list of commits since previous release and ensure they are closed using fix version: {{ site.data.unomi.next.stable.version }}.
                   Ideally all tickets listed for version: {{ site.data.unomi.next.stable.version }} should be closed or moved to the next version in case they are not finished/started.
               </li>
                 <li>
@@ -150,7 +152,7 @@
             <ol>
               <li>Clone and checkout the project using:
                 <pre class="alert alert-primary"><code>git clone https://gitbox.apache.org/repos/asf/unomi.git</code></pre>
-                 in a separate directory, to make sure you don’t have any additional files in the build
+                 in a separate directory, to make sure you don't have any additional files in the build
                   (such as allCountries.zip or other binary files that should not be there)</li>
                 <li>
                     Simply checkout an existing branch for release
@@ -179,7 +181,7 @@
               <li>Check that there are no JARs or ZIP files in the source code, you can do this by looking at the generated RAT report here :
                 <pre class="alert alert-primary"><code>less target/unomi-root-{{ site.data.unomi.next.development.version }}.rat</code></pre>
               </li>
-              <li>Check that the KEYS file only contains signatures with @apache.org addresses (if there are non @apache.org don’t remove them because they have
+              <li>Check that the KEYS file only contains signatures with @apache.org addresses (if there are non @apache.org don't remove them because they have
                 been used to sign older releases)
               </li>
               <li>Check the Copyright notice years in the NOTICE file and anywhere else where it might be (by using search and replace)</li>
@@ -190,7 +192,7 @@
 gpg: signing failed: Inappropriate ioctl for device</code></pre>
                 you can either try to sign a file like this:
                 <pre class="alert alert-primary"><code>gpg -ab test.txt</code></pre>
-                this will ask for your password and remember it in the agent for a while, or if you want a more permanent solution: <a href="https://dan.cx/2016/11/gpg-inappropriate-ioctl-for-device-errors" target="_blank">https://dan.cx/2016/11/gpg-inappropriate-ioctl-for-device-errors</a>
+                this will ask for your password and remember it in the agent for a while, or if you want a more permanent solution: <a href="https://dan.cx/2016/11/gpg-inappropriate-ioctl-for-device-errors" target="_blank" rel="noopener">https://dan.cx/2016/11/gpg-inappropriate-ioctl-for-device-errors</a>
               </li>
             </ol>
 
@@ -198,8 +200,8 @@
             <h3 id="publish-repository">Repository</h3>
 
             <ol>
-              <li>Setup server passwords for publishing as document here:
-                <a href="https://www.apache.org/dev/publishing-maven-artifacts.html" target="_blank">https://www.apache.org/dev/publishing-maven-artifacts.html</a> and <a href="https://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords" target="_blank">https://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords</a>
+              <li>Setup server passwords for publishing as documented here:
+                <a href="https://www.apache.org/dev/publishing-maven-artifacts.html" target="_blank" rel="noopener">https://www.apache.org/dev/publishing-maven-artifacts.html</a> and <a href="https://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords" target="_blank" rel="noopener">https://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords</a>
               </li>
               <li>Check into the target directory and unzip the source release and compile it using:
                 <pre class="alert alert-primary"><code>pushd target
@@ -227,14 +229,14 @@
               <li>
                 <pre class="alert alert-primary"><code>mvn -DskipITs=true -DskipTests=true -Drelease.arguments="-Papache-release,integration-tests -DskipITs=true -DskipTests=true" -P integration-tests,docker,\!run-tests release:perform</code></pre>
               </li>
-              <li>If something fails, make sure you first drop the staging repository created here: <a href="https://repository.apache.org/#stagingRepositories" target="_blank">https://repository.apache.org/#stagingRepositories</a>.<br>
-If you need to relaunch the <code>release:perform</code> and don’t have a release.properties, create a <code>release.properties</code> file with the following contents:
+              <li>If something fails, make sure you first drop the staging repository created here: <a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener">https://repository.apache.org/#stagingRepositories</a>.<br>
+If you need to relaunch the <code>release:perform</code> and don't have a release.properties, create a <code>release.properties</code> file with the following contents:
                 <pre class="alert alert-primary"><code>scm.url=scm:git:https://gitbox.apache.org/repos/asf?p=unomi.git
 scm.tag=unomi-root-{{ site.data.unomi.next.stable.version }}
 and run mvn release:perform</code></pre>
               </li>
-              <li>Connect to <a href="https://repository.apache.org/#stagingRepositories" target="_blank">https://repository.apache
-                  .org/#stagingRepositories</a> and look for the open staging repositories, you should have two (one for everything and the other for KAR/features) for releases &lt;= 1.2 and just one for versions &gt;= 1.3.0 (because of changes in the Karaf plugins). Close the repositories and given a meaningful comment when closing such as:<br>
+              <li>Connect to <a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener">https://repository.apache
+                  .org/#stagingRepositories</a> and look for the open staging repositories, you should have two (one for everything and the other for KAR/features) for releases &lt;= 1.2 and just one for versions &gt;= 1.3.0 (because of changes in the Karaf plugins). Close the repositories and give a meaningful comment when closing such as:<br>
                 <strong>Apache Unomi {{ site.data.unomi.next.stable.version }} Release Candidate 1</strong>
               </li>
             </ol>
@@ -250,9 +252,9 @@
               </li>
               <li>
                 Copy all the Zip and Tarbars including ASC (but do not copy the SHA1 or MD5 sum) files from:
-                <a href="https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi/{{ site.data.unomi.next.stable.version }}/" target="_blank">https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi/{{ site.data.unomi.next.stable.version }}/</a>
+                <a href="https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi/{{ site.data.unomi.next.stable.version }}/" target="_blank" rel="noopener">https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi/{{ site.data.unomi.next.stable.version }}/</a>
                 and
-                <a href="https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi-root/{{ site.data.unomi.next.stable.version }}/" target="_blank">https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi-root/{{ site.data.unomi.next.stable.version }}/</a>
+                <a href="https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi-root/{{ site.data.unomi.next.stable.version }}/" target="_blank" rel="noopener">https://repository.apache.org/content/repositories/orgapacheunomi-1014/org/apache/unomi/unomi-root/{{ site.data.unomi.next.stable.version }}/</a>
                   using commands such as : <pre class="alert alert-primary"><code>export REPO_ID=orgapacheunomi-1033
 wget https://repository.apache.org/content/repositories/$REPO_ID/org/apache/unomi/unomi-root/{{ site.data.unomi.next.stable.version }}/unomi-root-{{ site.data.unomi.next.stable.version }}-source-release.zip
 wget https://repository.apache.org/content/repositories/$REPO_ID/org/apache/unomi/unomi-root/{{ site.data.unomi.next.stable.version }}/unomi-root-{{ site.data.unomi.next.stable.version }}-source-release.zip.asc
@@ -287,9 +289,9 @@
                 <pre class="alert alert-primary"><code>svn commit -m "Apache {{ site.data.unomi.next.stable.version }} Release (for PMC voting)"</code></pre>
               </li>
                 <li>Send out to the Unomi mailing list a mail to start the voting process, see <a href="#mail-1">[1]</a></li>
-                <li>If the vote is refused or cancelled, peform the following steps to restart the release process:
+                <li>If the vote is refused or cancelled, perform the following steps to restart the release process:
                     <ol>
-                        <li>Drop the release in <a href="https://repository.apache.org/#stagingRepositories" target="_blank">Nexus</a></li>
+                        <li>Drop the release in <a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener">Nexus</a></li>
                         <li>Remove the tag in Git:
                             <pre class="alert alert-primary"><code>git push --delete origin unomi-root-{{ site.data.unomi.next.stable.version }}
 git tag -d unomi-root-{{ site.data.unomi.next.stable.version }}</code></pre>
@@ -318,7 +320,7 @@
                 In JIRA mark the version as released and add a release date
               </li>
               <li>
-                Connect to <a href="https://repository.apache.org/#stagingRepositories" target="_blank">https://repository.apache.org/#stagingRepositories</a> and look for the open staging repositories, you should have one. Select the staging repositoriy and click on <code>release</code>.
+                Connect to <a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener">https://repository.apache.org/#stagingRepositories</a> and look for the open staging repositories, you should have one. Select the staging repository and click on <code>release</code>.
               </li>
               <li>Update the website (in project `unomi-site`) to point to the new release on the download page by
                   first copying the previous archive release and replacing all the version numbers with the current release
@@ -329,10 +331,10 @@
                   <pre class="alert alert-primary"><code>git clone https://gitbox.apache.org/repos/asf/unomi-site.git</code></pre>
                   Perform any modifications, notably change the versions in the pom.xml file:
                   <pre class="alert alert-primary"><code>    &lt;properties&gt;
-        &lt;latest.stable.version&gt;1.5.4&lt;/latest.stable.version&gt;
-        &lt;next.development.version&gt;1.5.5-SNAPSHOT&lt;/next.development.version&gt;
-        &lt;next.stable.version&gt;1.5.5&lt;/next.stable.version&gt;
-        &lt;latest.development.version&gt;2.0.0-SNAPSHOT&lt;/latest.development.version&gt;
+        &lt;latest.stable.version&gt;3.0.0&lt;/latest.stable.version&gt;
+        &lt;next.development.version&gt;3.1.0-SNAPSHOT&lt;/next.development.version&gt;
+        &lt;next.stable.version&gt;3.1.0&lt;/next.stable.version&gt;
+        &lt;latest.development.version&gt;3.1.0-SNAPSHOT&lt;/latest.development.version&gt;
     &lt;/properties&gt;
 </code></pre>
                  Then modify the index.html, download.html to add the new files. For the documentation see the next step.
@@ -459,12 +461,12 @@
               <li>Release recorded in reporter.apache.org.</li>
               <li>Release announced on social media.</li>
               <li>Completion declared on the dev@ mailing list.</li>
-                <li>Check that old release where removed from the dist server</li>
+                <li>Check that old releases were removed from the dist server</li>
             </ol>
 
             <h2 id="improve-the-process">Improve the process</h2>
 
-            <p>It is important that we improve the release processes over time. Once you’ve finished the release, please take a step back and look what areas of this process and be improved. Perhaps some part of the process can be simplified. Perhaps parts of this guide can be clarified.</p>
+            <p>It is important that we improve the release processes over time. Once you've finished the release, please take a step back and look at what areas of this process can be improved. Perhaps some part of the process can be simplified. Perhaps parts of this guide can be clarified.</p>
 
             <p>If we have specific ideas, please start a discussion on the dev@ mailing list and/or propose a pull request to update this guide. Thanks!</p>
 
@@ -567,10 +569,10 @@
 experiences.
 
 More details regarding Apache Unomi can be found here:
-http://unomi.apache.org/
+https://unomi.apache.org/
 
 The release artifacts can be downloaded here:
-https://dist.apache.org/repos/dist/release/incubator/unomi/{{ site.data.unomi.next.stable.version }}/
+https://dist.apache.org/repos/dist/release/unomi/{{ site.data.unomi.next.stable.version }}/
 
 All JIRAs completed for this release are tagged with 'FixVersion =
 {{ site.data.unomi.next.stable.version }}'; the JIRA release notes can be found here:
@@ -581,6 +583,7 @@
 The Apache Unomi Team
 
             </code></pre>
-          </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/contribute/post-commit-guides.html b/src/main/webapp/contribute/post-commit-guides.html
index 9ac45cb..92c506f 100644
--- a/src/main/webapp/contribute/post-commit-guides.html
+++ b/src/main/webapp/contribute/post-commit-guides.html
@@ -1,45 +1,46 @@
 ---
-title: Contribute | Post-commit guides
+title: Post-commit Guides
+description: "Guides for handling post-commit test failures in Apache Unomi"
+keywords: "post-commit guide, Apache Unomi, new committer, ASF procedures, committer onboarding"
 layout: default
 ---
 
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Contribute</p>
+        <h1>Post-commit Guides</h1>
+    </div>
+</section>
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
-
-      <div class="container">
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5 pt-3">
-          <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Contribute</strong></div>
-            <ul class="list-unstyled mb-3">
-              <li><a href="index.html">Get started contributing</a></li>
-              <li class="sidenav-menu-sub-title">Technical Docs</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="testing.html">Testing guide</a></li>
-                  <li><a href="dependencies-guide.html">Dependencies guide</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Policies</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li>
-                  <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Committers</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="become-a-committer.html">Become a committer</a></li>
-                  <li><a href="committer-guide.html">Committer guide</a></li>
-                  <li><a href="release-guide.html">Release guide</a></li>
-                </ul>
-              </li>
-            </ul>
-          </div>
-          <div class="col-8 pt-3 offset-4">
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Contribute</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html">Getting Started</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Technical Docs</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="testing.html">Testing Guide</a></li>
+                        <li><a href="dependencies-guide.html">Dependencies Guide</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Policies</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="pre-commit-test-policies.html">Pre-commit Policies</a></li>
+                        <li><a href="post-commit-test-policies.html">Post-commit Policies</a></li>
+                        <li><a href="post-commit-guides.html" class="active">Post-commit Guides</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Committers</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="become-a-committer.html">Become a Committer</a></li>
+                        <li><a href="committer-guide.html">Committer Guide</a></li>
+                        <li><a href="release-guide.html">Release Guide</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
             <h2>Post-commit test task guides</h2>
 
             <p>These guides provide steps for common post-commit test failure tasks.</p>
@@ -51,7 +52,7 @@
             <ol>
               <li>If you can triage it yourself, go for it.</li>
               <li>Look at the GitHub blame for the files with problematic code.</li>
-              <li>Ask in the <a target="_blank" href="https://the-asf.slack.com/messages/CBP2Z98Q7/">Unomi Slack chat</a>.</li>
+              <li>Ask in the <a target="_blank" rel="noopener" href="https://the-asf.slack.com/messages/CBP2Z98Q7/">Unomi Slack chat</a>.</li>
               <li>Write to the dev list: dev@unomi.apache.org</li>
             </ol>
 
@@ -92,6 +93,7 @@
             </ul>
 
             <p>While the test is disabled, contributors should not push code to the failing test's coverage area. The code area is not properly tested until you fix the test.</p>
-          </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/contribute/post-commit-policies-details.html b/src/main/webapp/contribute/post-commit-policies-details.html
index 70f677f..78a3916 100644
--- a/src/main/webapp/contribute/post-commit-policies-details.html
+++ b/src/main/webapp/contribute/post-commit-policies-details.html
@@ -1,44 +1,46 @@
 ---
-title: Contribute | Post-commit policies details
+title: Post-commit Details
+description: "Detailed information about Apache Unomi post-commit test policies"
+keywords: "Apache Unomi policies, commit policies, code review, testing requirements, ASF guidelines"
 layout: default
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Contribute</p>
+        <h1>Post-commit Details</h1>
+    </div>
+</section>
 
-      <div class="container">
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5 pt-3">
-          <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Contribute</strong></div>
-            <ul class="list-unstyled mb-3">
-              <li><a href="index.html">Get started contributing</a></li>
-              <li class="sidenav-menu-sub-title">Technical Docs</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="testing.html">Testing guide</a></li>
-                  <li><a href="dependencies-guide.html">Dependencies guide</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Policies</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li>
-                  <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Committers</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="become-a-committer.html">Become a committer</a></li>
-                  <li><a href="committer-guide.html">Committer guide</a></li>
-                  <li><a href="release-guide.html">Release guide</a></li>
-                </ul>
-              </li>
-            </ul>
-          </div>
-          <div class="col-8 pt-3 offset-4">
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Contribute</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html">Getting Started</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Technical Docs</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="testing.html">Testing Guide</a></li>
+                        <li><a href="dependencies-guide.html">Dependencies Guide</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Policies</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="pre-commit-test-policies.html">Pre-commit Policies</a></li>
+                        <li><a href="post-commit-test-policies.html">Post-commit Policies</a></li>
+                        <li><a href="post-commit-policies-details.html" class="active">Post-commit Details</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Committers</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="become-a-committer.html">Become a Committer</a></li>
+                        <li><a href="committer-guide.html">Committer Guide</a></li>
+                        <li><a href="release-guide.html">Release Guide</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
             <h2>Post-commit policies details</h2>
 
             <p>A post-commit test failure means that there is a bug in the code. The longer the bug exists, the harder it is to fix it due to ongoing code contributions. As a result, we want to fix bugs quickly. The Unomi community's post-commit test policies help keep our code and test results in a good state.</p>
@@ -65,13 +67,13 @@
             <p>Flaky tests are considered failing tests, and fixing a flaky test is a critical/P1 issue.</p>
 
             <p>Flaky tests are tests that randomly succeed or fail while using the same code version. Flaky test failures are one of the most dangerous types of failures
-            because they are easy to ignore – another run of the flaky test might pass successfully. However, these failures can hide real bugs and flaky tests often
+            because they are easy to ignore &mdash; another run of the flaky test might pass successfully. However, these failures can hide real bugs and flaky tests often
             slowly accumulate. Someone must repeatedly triage the failures, and flaky tests are often the hardest ones to fix.</p>
 
             <p>Flaky tests do not provide a reliable quality signal, so it is important to quickly fix the flakiness. If a fix will take awhile to implement, it is safer
             to disable the test until the fix is ready.</p>
 
-            <p>Martin Fowler has a good <a target="_blank" href="https://martinfowler.com/articles/nonDeterminism.html">article</a> about non-determinism in tests.</p>
+            <p>Martin Fowler has a good <a target="_blank" rel="noopener" href="https://martinfowler.com/articles/nonDeterminism.html">article</a> about non-determinism in tests.</p>
 
             <h3 id="remove_flake">Flaky tests must be fixed or removed</h3>
 
@@ -85,6 +87,7 @@
 
             <p>When you implement a fix for a post-commit test failure, add a new pre-commit test that will detect similar failures in the future. For example, you can
             implement a new unit test that covers a problematic code branch.</p>
-          </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/contribute/post-commit-test-policies.html b/src/main/webapp/contribute/post-commit-test-policies.html
index 936b790..0b030ed 100644
--- a/src/main/webapp/contribute/post-commit-test-policies.html
+++ b/src/main/webapp/contribute/post-commit-test-policies.html
@@ -1,46 +1,45 @@
 ---
 title: Contribute | Post-commit test policies
+description: "Learn about Apache Unomi post-commit test policies and requirements."
+keywords: "Apache Unomi testing, post-commit tests, test policies, CI testing, quality assurance"
 layout: default
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Contribute</p>
+        <h1>Post-commit tests policies</h1>
+    </div>
+</section>
 
-      <div class="container">
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5 pt-3">
-          <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Contribute</strong></div>
-            <ul class="list-unstyled mb-3">
-              <li><a href="index.html">Get started contributing</a></li>
-              <li class="sidenav-menu-sub-title">Technical Docs</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="testing.html">Testing guide</a></li>
-                  <li><a href="dependencies-guide.html">Dependencies guide</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Policies</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li>
-                  <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Committers</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="become-a-committer.html">Become a committer</a></li>
-                  <li><a href="committer-guide.html">Committer guide</a></li>
-                  <li><a href="release-guide.html">Release guide</a></li>
-                </ul>
-              </li>
-            </ul>
-          </div>
-          <div class="col-8 pt-3 offset-4">
-            <h2>Post-commit tests policies</h2>
-
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Contribute</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html">Getting Started</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Technical Docs</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="testing.html">Testing Guide</a></li>
+                        <li><a href="dependencies-guide.html">Dependencies Guide</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Policies</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="pre-commit-test-policies.html">Pre-commit Policies</a></li>
+                        <li><a href="post-commit-test-policies.html" class="active">Post-commit Policies</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Committers</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="become-a-committer.html">Become a Committer</a></li>
+                        <li><a href="committer-guide.html">Committer Guide</a></li>
+                        <li><a href="release-guide.html">Release Guide</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
             <p>Post-commit tests validate that Unomi works correctly in a live environment. The tests also catch errors that are hard to predict in the design and implementation stages</p>
 
             <p>Even though post-commit tests run after the code is merged into the repository,  it is important that the tests pass reliably. Jenkins executes post-commit tests against the HEAD of the master branch. If post-commit tests fail, there is a problem with the HEAD build. In addition, post-commit tests are time consuming to run, and it is often hard to triage test failures.</p>
@@ -64,7 +63,7 @@
             <h4>I found a test failure</h4>
 
             <ol>
-              <li>Create a <a target="_blank" href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20UNOMI%20AND%20component%20%3D%20test-failures">JIRA issue</a> and assign it to yourself.</li>
+              <li>Create a <a target="_blank" rel="noopener" href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20UNOMI%20AND%20component%20%3D%20test-failures">JIRA issue</a> and assign it to yourself.</li>
               <li>Do high level triage of the failure.</li>
               <li><a href="post-commit-guides.html#find_specialist">Assign the JIRA issue to a relevant person</a>.</li>
             </ol>
@@ -94,6 +93,7 @@
             <ul>
               <li><a href="testing.html#best_practices">Best practices for writing tests</a></li>
             </ul>
-          </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/contribute/pre-commit-test-policies.html b/src/main/webapp/contribute/pre-commit-test-policies.html
index 7a0ada9..8391876 100644
--- a/src/main/webapp/contribute/pre-commit-test-policies.html
+++ b/src/main/webapp/contribute/pre-commit-test-policies.html
@@ -1,46 +1,45 @@
 ---
 title: Contribute | Pre-commit test policies
+description: "Learn about Apache Unomi pre-commit test policies and requirements."
+keywords: "Apache Unomi testing, pre-commit tests, test policies, code quality, testing guidelines"
 layout: default
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Contribute</p>
+        <h1>Pre-commit test policies</h1>
+    </div>
+</section>
 
-      <div class="container">
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5 pt-3">
-          <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Contribute</strong></div>
-            <ul class="list-unstyled mb-3">
-              <li><a href="index.html">Get started contributing</a></li>
-              <li class="sidenav-menu-sub-title">Technical Docs</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="testing.html">Testing guide</a></li>
-                  <li><a href="dependencies-guide.html">Dependencies guide</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Policies</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li>
-                  <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Committers</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="become-a-committer.html">Become a committer</a></li>
-                  <li><a href="committer-guide.html">Committer guide</a></li>
-                  <li><a href="release-guide.html">Release guide</a></li>
-                </ul>
-              </li>
-            </ul>
-          </div>
-          <div class="col-8 pt-3 offset-4">
-            <h2 id="definitions">Pre-commit test policies</h2>
-
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Contribute</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html">Getting Started</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Technical Docs</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="testing.html">Testing Guide</a></li>
+                        <li><a href="dependencies-guide.html">Dependencies Guide</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Policies</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="pre-commit-test-policies.html" class="active">Pre-commit Policies</a></li>
+                        <li><a href="post-commit-test-policies.html">Post-commit Policies</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Committers</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="become-a-committer.html">Become a Committer</a></li>
+                        <li><a href="committer-guide.html">Committer Guide</a></li>
+                        <li><a href="release-guide.html">Release Guide</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
             <h3>Definition</h3>
 
             <ul>
@@ -87,6 +86,7 @@
               <li>Roll out a fix within 24 hours.</li>
               <li>Disable the slow test or feature temporarily (make sure there is a tracking issue to re-enable it).</li>
             </ul>
-          </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/contribute/release-guide.html b/src/main/webapp/contribute/release-guide.html
index ef01b56..33c0a57 100644
--- a/src/main/webapp/contribute/release-guide.html
+++ b/src/main/webapp/contribute/release-guide.html
@@ -1,44 +1,45 @@
 ---
-title: Contribute | Release guide
+title: Release Guide
+description: "Guide for Apache Unomi release managers on how to perform a release"
+keywords: "Apache Unomi release, release guide, ASF release, Maven release, version management"
 layout: default
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Contribute</p>
+        <h1>Release Guide</h1>
+    </div>
+</section>
 
-      <div class="container">
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5 pt-3">
-          <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Contribute</strong></div>
-            <ul class="list-unstyled mb-3">
-              <li><a href="index.html">Get started contributing</a></li>
-              <li class="sidenav-menu-sub-title">Technical Docs</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="testing.html">Testing guide</a></li>
-                  <li><a href="dependencies-guide.html">Dependencies guide</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Policies</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li>
-                  <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Committers</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="become-a-committer.html">Become a committer</a></li>
-                  <li><a href="committer-guide.html">Committer guide</a></li>
-                  <li><a href="release-guide.html">Release guide</a></li>
-                </ul>
-              </li>
-            </ul>
-          </div>
-          <div class="col-8 pt-3 offset-4">
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Contribute</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html">Getting Started</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Technical Docs</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="testing.html">Testing Guide</a></li>
+                        <li><a href="dependencies-guide.html">Dependencies Guide</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Policies</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="pre-commit-test-policies.html">Pre-commit Policies</a></li>
+                        <li><a href="post-commit-test-policies.html">Post-commit Policies</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Committers</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="become-a-committer.html">Become a Committer</a></li>
+                        <li><a href="committer-guide.html">Committer Guide</a></li>
+                        <li><a href="release-guide.html" class="active">Release Guide</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
             <h2 id="apache-unomi-release-guide">Apache Unomi Release Guide</h2>
 
             <p>The Apache Unomi project periodically declares and publishes releases. A release is one or more packages of the project artifact(s) that are approved for general public distribution and use. They may come with various degrees of caveat regarding their perceived quality and potential for change, such as "alpha", "beta", "stable", etc.</p>
@@ -47,7 +48,7 @@
 
             <p>Each release is executed by a <em>Release Manager</em>, who is selected among the Unomi committers. This document describes the process that the Release Manager follows to perform a release. Any changes to this process should be discussed and adopted on the <a href="../community/index.html">dev@ mailing list</a>.</p>
 
-            <p>Please remember that publishing software has legal consequences. This guide complements the foundation-wide <a href="https://www.apache.org/dev/release.html" target="_blank">Product Release Policy</a> and <a href="https://www.apache.org/dev/release-distribution" target="_blank">Release Distribution Policy</a>.</p>
+            <p>Please remember that publishing software has legal consequences. This guide complements the foundation-wide <a href="https://www.apache.org/dev/release.html" target="_blank" rel="noopener">Product Release Policy</a> and <a href="https://www.apache.org/dev/release-distribution" target="_blank" rel="noopener">Release Distribution Policy</a>.</p>
 
             <h2 id="overview">Overview</h2>
 
@@ -76,7 +77,7 @@
 
             <p>In general, the community prefers to have a rotating set of 3-5 Release Managers. Keeping a small core set of managers allows enough people to build expertise in this area and improve processes over time, without Release Managers needing to re-learn the processes for each release. That said, if you are a committer interested in serving the community in this way, please reach out to the community on the dev@ mailing list.</p>
 
-            <p>Basically we will be following the procedure described <a href="https://www.apache.org/dev/publishing-maven-artifacts.html" target="_blank">here</a> with a few more steps and details before and after.</p>
+            <p>Basically we will be following the procedure described <a href="https://www.apache.org/dev/publishing-maven-artifacts.html" target="_blank" rel="noopener">here</a> with a few more steps and details before and after.</p>
 
 
             <h3 id="checklist-to-proceed-to-the-next-step">Checklist to proceed to the next step</h3>
@@ -116,7 +117,7 @@
                       This should tell you which key was used and display the email address.
                   </li>
                   <li>
-                      Make sure your public KEY is available in this files (if not add your key to the files and commit/push):
+                      Make sure your public KEY is available in these files (if not add your key to the files and commit/push):
                       <ol>
                           <li><a href="https://github.com/apache/unomi/blob/master/KEYS">GIT https://github.com/apache/unomi/blob/master/KEYS (cherry-pick to the branches if necessary)</a></li>
                           <li><a href="https://dist.apache.org/repos/dist/dev/unomi/KEYS">SVN https://dist.apache.org/repos/dist/dev/unomi/KEYS</a></li>
@@ -137,7 +138,7 @@
               <li>
                   Update all JIRAs, close the ones that are still not closed, review tickets that can be closed, postpone to another release tickets that are not managed now.
                   You can use this JIRA page: <a href="https://issues.apache.org/jira/projects/UNOMI?selectedItem=com.atlassian.jira.jira-projects-plugin%3Arelease-page&status=unreleased">Unomi JIRA releases</a>.
-                  Then review the list of tickets that need to be updated, also additionally you can check the list of commits since previous release and insure they are closed using fix version: {{ site.data.unomi.next.stable.version }}.
+                  Then review the list of tickets that need to be updated, also additionally you can check the list of commits since previous release and ensure they are closed using fix version: {{ site.data.unomi.next.stable.version }}.
                   Ideally all tickets listed for version: {{ site.data.unomi.next.stable.version }} should be closed or moved to the next version in case they are not finished/started.
               </li>
                 <li>
@@ -158,8 +159,8 @@
               <li>Make sure you have a Docker installation properly configured on the machine building the project,
                   as it is required to build everything.
               </li>
-                <li>Setup server passwords for publishing as document here:
-                    <a href="https://www.apache.org/dev/publishing-maven-artifacts.html" target="_blank">https://www.apache.org/dev/publishing-maven-artifacts.html</a> and <a href="https://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords" target="_blank">https://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords</a>
+                <li>Setup server passwords for publishing as documented here:
+                    <a href="https://www.apache.org/dev/publishing-maven-artifacts.html" target="_blank" rel="noopener">https://www.apache.org/dev/publishing-maven-artifacts.html</a> and <a href="https://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords" target="_blank" rel="noopener">https://maven.apache.org/guides/mini/guide-encryption.html#How_to_encrypt_server_passwords</a>
                 </li>
               <li>Launch the first build script using.
                 <pre class="alert alert-primary"><code>./release-stage-1.sh {{ site.data.unomi.next.stable.version }} BRANCH_NAME</code></pre>
@@ -170,7 +171,7 @@
               <li>Check that there are no JARs or ZIP files in the source code, you can do this by looking at the generated RAT report here :
                 <pre class="alert alert-primary"><code>less target/unomi-root-{{ site.data.unomi.next.development.version }}.rat</code></pre>
               </li>
-              <li>Check that the KEYS file only contains signatures with @apache.org addresses (if there are non @apache.org don’t remove them because they have
+              <li>Check that the KEYS file only contains signatures with @apache.org addresses (if there are non @apache.org don't remove them because they have
                 been used to sign older releases)
               </li>
               <li>Check the Copyright notice years in the NOTICE file and anywhere else where it might be (by using search and replace)</li>
@@ -181,21 +182,21 @@
 gpg: signing failed: Inappropriate ioctl for device</code></pre>
                 you can either try to sign a file like this:
                 <pre class="alert alert-primary"><code>gpg -ab test.txt</code></pre>
-                this will ask for your password and remember it in the agent for a while, or if you want a more permanent solution: <a href="https://dan.cx/2016/11/gpg-inappropriate-ioctl-for-device-errors" target="_blank">https://dan.cx/2016/11/gpg-inappropriate-ioctl-for-device-errors</a>
+                this will ask for your password and remember it in the agent for a while, or if you want a more permanent solution: <a href="https://dan.cx/2016/11/gpg-inappropriate-ioctl-for-device-errors" target="_blank" rel="noopener">https://dan.cx/2016/11/gpg-inappropriate-ioctl-for-device-errors</a>
               </li>
             </ol>
 
             <h2 id="publish-the-release">Publish the release</h2>
             <h3 id="publish-repository">Repository</h3>
               <ol>
-              <li>If something fails, make sure you first drop the staging repository created here: <a href="https://repository.apache.org/#stagingRepositories" target="_blank">https://repository.apache.org/#stagingRepositories</a>.<br>
-If you need to relaunch the <code>release:perform</code> and don’t have a release.properties, create a <code>release.properties</code> file with the following contents:
+              <li>If something fails, make sure you first drop the staging repository created here: <a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener">https://repository.apache.org/#stagingRepositories</a>.<br>
+If you need to relaunch the <code>release:perform</code> and don't have a release.properties, create a <code>release.properties</code> file with the following contents:
                 <pre class="alert alert-primary"><code>scm.url=scm:git:https://gitbox.apache.org/repos/asf?p=unomi.git
 scm.tag=unomi-root-{{ site.data.unomi.next.stable.version }}
 and run mvn release:perform</code></pre>
               </li>
-              <li>Connect to <a href="https://repository.apache.org/#stagingRepositories" target="_blank">https://repository.apache
-                  .org/#stagingRepositories</a> and look for the open staging repositories, you should have two (one for everything and the other for KAR/features) for releases &lt;= 1.2 and just one for versions &gt;= 1.3.0 (because of changes in the Karaf plugins). Close the repositories and given a meaningful comment when closing such as:<br>
+              <li>Connect to <a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener">https://repository.apache
+                  .org/#stagingRepositories</a> and look for the open staging repositories, you should have two (one for everything and the other for KAR/features) for releases &lt;= 1.2 and just one for versions &gt;= 1.3.0 (because of changes in the Karaf plugins). Close the repositories and give a meaningful comment when closing such as:<br>
                 <strong>Apache Unomi {{ site.data.unomi.next.stable.version }} Release Candidate 1</strong>. If no artefact related to Unomi is present, something wrong happened in <code>release-stage-1.sh</code>.
               </li>
             </ol>
@@ -207,9 +208,9 @@
                   where NEXUS-UNOMI-ID is the ID generated by Nexus for the staging artifacts.
               </li>
                 <li>Send out to the Unomi mailing list a mail to start the voting process, see <a href="#mail-1">[1]</a></li>
-                <li>If the vote is refused or cancelled, peform the following steps to restart the release process:
+                <li>If the vote is refused or cancelled, perform the following steps to restart the release process:
                     <ol>
-                        <li>Drop the release in <a href="https://repository.apache.org/#stagingRepositories" target="_blank">Nexus</a></li>
+                        <li>Drop the release in <a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener">Nexus</a></li>
                         <li>Remove the tag in Git:
                             <pre class="alert alert-primary"><code>git push --delete origin unomi-root-{{ site.data.unomi.next.stable.version }}
 git tag -d unomi-root-{{ site.data.unomi.next.stable.version }}</code></pre>
@@ -238,7 +239,7 @@
                 In JIRA mark the version as released and add a release date
               </li>
               <li>
-                Connect to <a href="https://repository.apache.org/#stagingRepositories" target="_blank">https://repository.apache.org/#stagingRepositories</a> and look for the open staging repositories, you should have one. Select the staging repositoriy and click on <code>release</code>.
+                Connect to <a href="https://repository.apache.org/#stagingRepositories" target="_blank" rel="noopener">https://repository.apache.org/#stagingRepositories</a> and look for the open staging repositories, you should have one. Select the staging repository and click on <code>release</code>.
               </li>
               <li>Update the website (in project `unomi-site`) to point to the new release on the download page by
                   first copying the previous archive release and replacing all the version numbers with the current release
@@ -251,12 +252,12 @@
                   <pre class="alert alert-primary"><code>
                       latest:
                           stable:
-                            version: 2.3.0
-                          .development:
-                            version: 2.4.0-SNAPSHOT
+                            version: 3.0.0
+                          development:
+                            version: 3.1.0-SNAPSHOT
                         next:
                           stable:
-                            version: 2.4.0
+                            version: 3.1.0
                       ...
                 </code></pre>
                  Then modify the <code>index.html</code>, <code>download.html</code> to add the new files. For the documentation see the next step or git <a href="https://github.com/apache/unomi-site/blob/master/README.md">README</a>.
@@ -274,7 +275,7 @@
                     This generates the site in the <code>target/site</code> folder.
                 </li>
                 <li>
-                  Once the site build, deploy the web site changes using:
+                  Once the site builds, deploy the web site changes using:
                   <pre class="alert alert-primary"><code>
 mvn install scm-publish:publish-scm -Dusername=YOUR_APACHE_USERNAME -Dpassword=YOUR_APACHE_PASSWORD</code></pre>
                 </li>
@@ -300,9 +301,9 @@
 LATEST_DIR="latest"
 
 # Stable version (release branch)
-STABLE_BRANCH="unomi-2.7.x"
-STABLE_VERSION="2.7.0"
-STABLE_DIR="2_7_x"
+STABLE_BRANCH="unomi-3.0.x"
+STABLE_VERSION="3.0.0"
+STABLE_DIR="3_0_x"
                       </code></pre>
                   </li>
                   <li>
@@ -383,12 +384,12 @@
               <li>Release recorded in reporter.apache.org.</li>
               <li>Release announced on social media.</li>
               <li>Completion declared on the dev@ mailing list.</li>
-                <li>Check that old release where removed from the dist server</li>
+                <li>Check that old releases were removed from the dist server</li>
             </ol>
 
             <h2 id="improve-the-process">Improve the process</h2>
 
-            <p>It is important that we improve the release processes over time. Once you’ve finished the release, please take a step back and look what areas of this process and be improved. Perhaps some part of the process can be simplified. Perhaps parts of this guide can be clarified.</p>
+            <p>It is important that we improve the release processes over time. Once you've finished the release, please take a step back and look at what areas of this process can be improved. Perhaps some part of the process can be simplified. Perhaps parts of this guide can be clarified.</p>
 
             <p>If we have specific ideas, please start a discussion on the dev@ mailing list and/or propose a pull request to update this guide. Thanks!</p>
 
@@ -491,10 +492,10 @@
 experiences.
 
 More details regarding Apache Unomi can be found here:
-http://unomi.apache.org/
+https://unomi.apache.org/
 
 The release artifacts can be downloaded here:
-https://dist.apache.org/repos/dist/release/incubator/unomi/{{ site.data.unomi.next.stable.version }}/
+https://dist.apache.org/repos/dist/release/unomi/{{ site.data.unomi.next.stable.version }}/
 
 All JIRAs completed for this release are tagged with 'FixVersion =
 {{ site.data.unomi.next.stable.version }}'; the JIRA release notes can be found here:
@@ -505,6 +506,7 @@
 The Apache Unomi Team
 
             </code></pre>
-          </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/contribute/testing.html b/src/main/webapp/contribute/testing.html
index 4068f96..7345908 100644
--- a/src/main/webapp/contribute/testing.html
+++ b/src/main/webapp/contribute/testing.html
@@ -1,58 +1,58 @@
 ---
 title: Contribute | Testing
+description: "Learn how to write tests for Apache Unomi, which tests are appropriate where, and when tests are run."
+keywords: "Apache Unomi testing, unit tests, integration tests, Pax Exam, JUnit, Maven Surefire, CI/CD, GitHub Actions"
 layout: default
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Contribute</p>
+        <h1>Apache Unomi Testing</h1>
+    </div>
+</section>
 
-      <div class="container">
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5 pt-3">
-          <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Contribute</strong></div>
-            <ul class="list-unstyled mb-3">
-              <li><a href="index.html">Get started contributing</a></li>
-              <li class="sidenav-menu-sub-title">Technical Docs</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="testing.html">Testing guide</a></li>
-                  <li><a href="dependencies-guide.html">Dependencies guide</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Policies</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li>
-                  <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Committers</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="become-a-committer.html">Become a committer</a></li>
-                  <li><a href="committer-guide.html">Committer guide</a></li>
-                  <li><a href="release-guide.html">Release guide</a></li>
-                </ul>
-              </li>
-            </ul>
-          </div>
-          <div class="col-8 pt-3 offset-4">
-            <h2 class="pb-1">Apache Unomi Testing</h2>
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Contribute</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html">Getting Started</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Technical Docs</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="testing.html" class="active">Testing Guide</a></li>
+                        <li><a href="dependencies-guide.html">Dependencies Guide</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Policies</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="pre-commit-test-policies.html">Pre-commit Policies</a></li>
+                        <li><a href="post-commit-test-policies.html">Post-commit Policies</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Committers</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="become-a-committer.html">Become a Committer</a></li>
+                        <li><a href="committer-guide.html">Committer Guide</a></li>
+                        <li><a href="release-guide.html">Release Guide</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
             <p>This document outlines how to write tests, which tests are appropriate where, and when tests are run, with some additional information about the testing systems at the bottom.</p>
 
             <h3 id="testing-scenarios">Testing Scenarios</h3>
 
-            <p>Ideally, all available tests should be run against a pull request (PR) before it's allowed to be committed to Unomi's <a target="_blank" href="https://github.com/apache/unomi">Github</a> repo. This is not possible, however, due to a combination of time and resource constraints. Running all tests for each PR would take hours or even days using available resources, which would slow down development considerably.</p>
+            <p>Ideally, all available tests should be run against a pull request (PR) before it's allowed to be committed to Unomi's <a target="_blank" rel="noopener" href="https://github.com/apache/unomi">Github</a> repo. This is not possible, however, due to a combination of time and resource constraints. Running all tests for each PR would take hours or even days using available resources, which would slow down development considerably.</p>
 
             <p>Thus tests are split into <em>pre-commit</em> and <em>post-commit</em> suites. Pre-commit is fast, while post-commit is comprehensive. As their names imply, pre-commit tests are run on each PR before it is committed, while post-commits run periodically against the master branch (i.e. on already committed PRs).</p>
 
-            <p>Unomi uses <a target="_blank" href="https://builds.apache.org/job/unomi-master/">Jenkins</a> to run pre-commit and post-commit tests.</p>
+            <p>Unomi uses <a target="_blank" rel="noopener" href="https://github.com/apache/unomi/actions/workflows/unomi-ci-build-tests.yml">GitHub Actions</a> to run pre-commit and post-commit tests.</p>
 
             <h4 id="pre-commit">Pre-commit</h4>
 
-            <p>The pre-commit test suite verifies correctness via two testing tools: unit tests and end-to-end (E2E) tests. Unit tests ensure correctness at a basic level, while WordCount E2E tests are run to verify that a basic level of functionality exists.</p>
+            <p>The pre-commit test suite verifies correctness via two testing tools: unit tests and integration tests. Unit tests ensure correctness at a basic level, while a full build (<code>mvn clean install</code>) compiles all modules and runs unit tests to verify that a basic level of functionality exists.</p>
 
             <p>This combination of tests hits the appropriate tradeoff between a desire for
             short (ideally &lt;30m) pre-commit times and a desire to verify that PRs going
@@ -62,13 +62,11 @@
 
             <h4 id="post-commit">Post-commit</h4>
 
-            <p>Running in post-commit removes as stringent of a time constraint, which gives us the ability to do some more comprehensive testing. In post-commit we have a test suite running the ValidatesRunner tests against each supported runner, and another for running the full set of E2E tests against each runner.
-            Currently-supported runners are Dataflow, Flink, Spark, and Gearpump, with others soon to follow. Work is ongoing to enable Flink, Spark, and Gearpump in
-            the E2E framework, with full support targeted for end of August 2016. Post-commit tests run periodically, with timing defined in their Jenkins configurations.</p>
+            <p>Running in post-commit removes the stringent time constraint, which gives us the ability to do more comprehensive testing. In post-commit the full integration test suite is executed against both supported search engines &mdash; <strong>Elasticsearch</strong> and <strong>OpenSearch</strong> &mdash; via the <code>-Pintegration-tests</code> Maven profile. The suite is defined in <a target="_blank" rel="noopener" href="https://github.com/apache/unomi/blob/master/itests/src/test/java/org/apache/unomi/itests/AllITs.java"><code>AllITs.java</code></a> and currently contains 30+ test classes covering profiles, segments, events, conditions, rules, privacy, import/export, GraphQL API, JSON Schema validation, health checks, and data migration scenarios.</p>
 
-            <p>Adding new post-commit E2E tests is generally as easy as adding a *IT.java file to the repository - Failsafe will notice it and run it - but if you want to do more interesting things, take a look at <a target="_blank" href="https://github.com/apache/unomi/blob/master/examples/java/src/test/java/org/apache/unomi/examples/WordCountIT.java">WordCountIT.java</a>.</p>
+            <p>Adding new integration tests is generally as easy as adding a <code>*IT.java</code> file to the <code>itests/</code> module and registering it in the <code>AllITs.java</code> suite class. New tests should extend <a target="_blank" rel="noopener" href="https://github.com/apache/unomi/blob/master/itests/src/test/java/org/apache/unomi/itests/BaseIT.java"><code>BaseIT</code></a>, which provides access to all Unomi OSGi services, an HTTP client for REST API calls, and helper methods for waiting and retrying asynchronous operations.</p>
 
-            <p>Post-commit test results can be found in <a target="_blank" href="https://builds.apache.org/view/A-D/view/Unomi/">Jenkins</a>.</p>
+            <p>Post-commit test results can be found in <a target="_blank" rel="noopener" href="https://github.com/apache/unomi/actions/workflows/unomi-ci-build-tests.yml">GitHub Actions</a>.</p>
 
             <h3 id="testing-types">Testing Types</h3>
 
@@ -78,19 +76,48 @@
 
             <h4 id="how-to-run-java-needsrunner-tests">How to run Java tests</h4>
 
-            <p>//TODO add description</p>
+            <p>Apache Unomi uses <strong>JUnit 4</strong> for unit tests and the <strong>Maven Surefire Plugin</strong> for execution. Unit tests are located in each module&rsquo;s <code>src/test/java</code> directory and follow standard Maven conventions. To run all unit tests across the project:</p>
 
-            <pre class="alert alert-primary"><code>$ .mvn test -Dtest=MyClassTest</code></pre>
+            <pre class="alert alert-primary"><code>$ mvn clean test</code></pre>
+
+            <p>To run a specific test class:</p>
+
+            <pre class="alert alert-primary"><code>$ mvn test -Dtest=MyClassTest</code></pre>
+
+            <p>To run the full integration test suite (requires Elasticsearch or OpenSearch running):</p>
+
+            <pre class="alert alert-primary"><code>$ mvn clean install -Pintegration-tests</code></pre>
+
+            <p>For OpenSearch instead of Elasticsearch, add <code>-Duse.opensearch=true</code>. Integration tests use the <strong>Maven Failsafe Plugin</strong> and follow the <code>*IT.java</code> naming convention.</p>
 
             <h4 id="e2e">E2E</h4>
 
-            <p>End-to-End tests are meant to verify at the very highest level that the Unomi codebase is working as intended. Because they are implemented as a thin wrapper around existing pipelines, they can be used to prove that the core Unomi functionality is available. They will be used to verify //TODO</p>
+            <p>Integration tests (E2E) are meant to verify at the very highest level that the Unomi codebase is working as intended. They boot a real Apache Karaf container with Unomi deployed inside it, connected to a real search engine (Elasticsearch or OpenSearch). These tests verify that core Unomi services are fully operational end-to-end, including profile management, event collection, segmentation, rule execution, context serving, consent and privacy controls, data import/export workflows, GraphQL API operations, JSON Schema validation, and data migration between versions.</p>
 
             <h3 id="testing-systems">Testing Systems</h3>
 
-            <h4 id="e2e-testing-framework">E2E Testing</h4>
+            <h4 id="e2e-testing-framework">Integration Testing Framework</h4>
 
-            <p>//TODO</p>
+            <p>Unomi&rsquo;s integration tests use the following technology stack:</p>
+
+            <ul>
+                <li><strong><a target="_blank" rel="noopener" href="https://ops4j1.jira.com/wiki/spaces/PAXEXAM4/overview">Pax Exam</a></strong> &mdash; An OSGi testing framework that provisions and manages the Apache Karaf container used during tests. It handles downloading the Unomi distribution, configuring features, and injecting OSGi services into test classes.</li>
+                <li><strong><a target="_blank" rel="noopener" href="https://karaf.apache.org/">Apache Karaf</a> Test Support</strong> &mdash; Provides the base class (<code>KarafTestSupport</code>) for container-based integration tests, enabling Karaf shell command execution and OSGi service lookups.</li>
+                <li><strong><a target="_blank" rel="noopener" href="https://maven.apache.org/surefire/maven-failsafe-plugin/">Maven Failsafe Plugin</a></strong> &mdash; Executes the integration tests during the <code>integration-test</code> phase and verifies results in the <code>verify</code> phase. Tests follow the <code>*IT.java</code> naming convention.</li>
+                <li><strong>Embedded Elasticsearch / Docker OpenSearch</strong> &mdash; The Elasticsearch profile uses the <code>elasticsearch-maven-plugin</code> to start an embedded Elasticsearch instance, while the OpenSearch profile uses the <code>docker-maven-plugin</code> to spin up an OpenSearch container.</li>
+                <li><strong><a target="_blank" rel="noopener" href="https://www.jacoco.org/">JaCoCo</a></strong> &mdash; Optionally collects code coverage data during integration test runs.</li>
+            </ul>
+
+            <p>All test classes extend <a target="_blank" rel="noopener" href="https://github.com/apache/unomi/blob/master/itests/src/test/java/org/apache/unomi/itests/BaseIT.java"><code>BaseIT</code></a>, which provides access to injected Unomi services (ProfileService, RulesService, SegmentService, etc.), a pre-configured HTTP client for REST API testing, and utility methods for polling asynchronous operations.</p>
+
+            <h4 id="ci">Continuous Integration</h4>
+
+            <p>Unomi uses <strong>GitHub Actions</strong> for continuous integration. The <a target="_blank" rel="noopener" href="https://github.com/apache/unomi/blob/master/.github/workflows/unomi-ci-build-tests.yml"><code>unomi-ci-build-tests.yml</code></a> workflow is triggered on every push to <code>master</code> and on pull requests. It runs in two stages:</p>
+
+            <ol>
+                <li><strong>Unit tests</strong> &mdash; A full <code>mvn clean install</code> build with a 15-minute timeout. This must pass before integration tests begin.</li>
+                <li><strong>Integration tests</strong> &mdash; Run in a matrix against both Elasticsearch (port 9400) and OpenSearch (port 9401) using JDK 17. Test results and logs are archived as GitHub Actions artifacts on failure.</li>
+            </ol>
 
             <h3 id="best_practices">Best practices for writing tests</h3>
 
@@ -142,6 +169,7 @@
             <p>Post-commit tests validate that Unomi works correctly in broad variety of scenarios. The tests catch errors that are hard to predict in the design and implementation stages</p>
 
             <p>However, we often write a test to verify a specific scenario. In this situation, it is usually possible to implement the test as a unit test or a component test. You can add your unit tests or component tests to the pre-commit test suite, and the pre-commit test results give you faster code health feedback during the development stage, when a bug is cheap to fix.</p>
-          </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/contribute/website.html b/src/main/webapp/contribute/website.html
index 8da8bdb..30d74ad 100644
--- a/src/main/webapp/contribute/website.html
+++ b/src/main/webapp/contribute/website.html
@@ -1,55 +1,57 @@
 ---
-title: Contribute | Website
+title: Website Guide
+description: "Guide for contributing to the Apache Unomi website, including Jekyll setup, content editing, and publishing."
+keywords: "Apache Unomi website, contribute website, Jekyll, site development, documentation"
 layout: default
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Contribute</p>
+        <h1>Website Guide</h1>
+    </div>
+</section>
 
-      <div class="container">
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5 pt-3">
-          <div class="col-2 sidenav-menu pt-3">
-            <div class="pb-3 text-uppercase"><strong>Contribute</strong></div>
-            <ul class="list-unstyled mb-3">
-              <li><a href="index.html">Get started contributing</a></li>
-              <li class="sidenav-menu-sub-title">Technical Docs</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="testing.html">Testing guide</a></li>
-                  <li><a href="dependencies-guide.html">Dependencies guide</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Policies</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="pre-commit-test-policies.html">Pre-commit test policies</a></li>
-                  <li><a href="post-commit-test-policies.html">Post-commit test policies</a></li>
-                </ul>
-              </li>
-              <li class="sidenav-menu-sub-title">Committers</li>
-              <li>
-                <ul class="list-unstyled sidenav-menu-sub-list">
-                  <li><a href="become-a-committer.html">Become a committer</a></li>
-                  <li><a href="committer-guide.html">Committer guide</a></li>
-                  <li><a href="release-guide.html">Release guide</a></li>
-                </ul>
-              </li>
-            </ul>
-          </div>
-          <div class="col-8 pt-3 offset-4">
+<section class="section">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-3">
+                <div class="sidenav-menu">
+                    <div class="menu-title">Contribute</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="index.html">Getting Started</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Technical Docs</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="testing.html">Testing Guide</a></li>
+                        <li><a href="dependencies-guide.html">Dependencies Guide</a></li>
+                        <li><a href="website.html" class="active">Website Guide</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Policies</div>
+                    <ul class="list-unstyled mb-3">
+                        <li><a href="pre-commit-test-policies.html">Pre-commit Policies</a></li>
+                        <li><a href="post-commit-test-policies.html">Post-commit Policies</a></li>
+                    </ul>
+                    <div class="menu-title mt-3">Committers</div>
+                    <ul class="list-unstyled mb-0">
+                        <li><a href="become-a-committer.html">Become a Committer</a></li>
+                        <li><a href="committer-guide.html">Committer Guide</a></li>
+                        <li><a href="release-guide.html">Release Guide</a></li>
+                    </ul>
+                </div>
+            </div>
+            <div class="col-lg-9">
             <h2 class="pb-1">Website Contributions</h2>
 
             <p>Contributions to the website require the same steps as contributions to the main repository, so start with the instructions for <a href="index.html">Contributing Code</a>.</p>
 
-            <p>The Unomi website is in the <a target="_blank" href="https://github.com/apache/unomi-site">Unomi Site GitHub mirror</a> repository in the <code>asf-site</code> branch (<em>not</em> <code>master</code>).</p>
+            <p>The Unomi website is in the <a target="_blank" rel="noopener" href="https://github.com/apache/unomi-site">Unomi Site GitHub mirror</a> repository in the <code>asf-site</code> branch (<em>not</em> <code>master</code>).</p>
 
-            <p>Issues are tracked in the <a target="_blank" href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20UNOMI%20AND%20component%20%3D%20website">website</a> component in JIRA.</p>
+            <p>Issues are tracked in the <a target="_blank" rel="noopener" href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20UNOMI%20AND%20component%20%3D%20website">website</a> component in JIRA.</p>
 
             <h3 id="one-time-setup">One-time Setup</h3>
 
-            <p>The <a target="_blank" href="https://github.com/apache/unomi-site/blob/asf-site/README.md">README file</a> in the website repository has more information on how to set up the required dependencies for your development environment.</p>
+            <p>The <a target="_blank" rel="noopener" href="https://github.com/apache/unomi-site/blob/asf-site/README.md">README file</a> in the website repository has more information on how to set up the required dependencies for your development environment.</p>
 
             <p>The general guidelines for cloning a repository can be adjusted to use the <code>asf-site</code> branch of <code>unomi-site</code>:</p>
 
@@ -76,7 +78,7 @@
 
             <p class="alert alert-primary"><code>$ git checkout -- content</code></p>
 
-            <p>When you are ready, submit a pull request using the <a target="_blank" href="https://github.com/apache/unomi-site">Unomi Site GitHub mirror</a>, including the JIRA issue as usual.</p>
+            <p>When you are ready, submit a pull request using the <a target="_blank" rel="noopener" href="https://github.com/apache/unomi-site">Unomi Site GitHub mirror</a>, including the JIRA issue as usual.</p>
 
             <p>During review, committers will patch in your PR, generate the static <code>content/</code>, and review the changes.</p>
 
@@ -85,6 +87,7 @@
             <p>We have a bot that runs tests and merges changes to the website. When the pull request is fully ready to be merged, a committer can comment</p>
 
             <p class="alert alert-primary"><code>@asfgit merge</code></p>
-          </div>
+            </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/documentation.html b/src/main/webapp/documentation.html
index 5aaceb3..444144e 100644
--- a/src/main/webapp/documentation.html
+++ b/src/main/webapp/documentation.html
@@ -1,459 +1,395 @@
 ---
 title: Documentation
+description: "Apache Unomi documentation hub. Find the latest manual, REST API reference, Javadoc, tutorials, use cases, migration guides, and security advisories."
+keywords: "Apache Unomi documentation, user manual, REST API, Javadoc, developer guide, configuration"
 layout: default
+structured_data: >
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "CollectionPage",
+        "name": "Apache Unomi Documentation",
+        "description": "Comprehensive documentation for Apache Unomi: user manual, REST API reference, Javadoc, tutorials, migration guides, and security advisories.",
+        "url": "https://unomi.apache.org/documentation.html",
+        "mainEntity": {
+            "@type": "ItemList",
+            "name": "Apache Unomi Documentation Resources",
+            "itemListElement": [
+                { "@type": "ListItem", "position": 1, "name": "Latest Manual", "url": "https://unomi.apache.org/manual/latest/index.html" },
+                { "@type": "ListItem", "position": 2, "name": "REST API Reference", "url": "https://unomi.apache.org/rest-api-doc/index.html" },
+                { "@type": "ListItem", "position": 3, "name": "Java API (Javadoc)", "url": "https://unomi.apache.org/unomi-api/apidocs/index.html" },
+                { "@type": "ListItem", "position": 4, "name": "Tutorials", "url": "https://unomi.apache.org/tutorial.html" }
+            ]
+        }
+    }
+    </script>
 ---
 
-    <div class="container mb-5 pt-5">
-      <h2 class="pb-2 mb-2 border-bottom">Documentation</h2>
-
-      <h4 class="pt-4 mt-2 text-dark">Latest versions</h4>
-
-      <div class="row mb-2">
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i> Stable</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">3.0.x</span></h3>
-              <p class="card-text">
-                <a href="manual/3_0_x/index.html">online</a><br>
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/3.0.0/unomi-manual-3_0_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/3.0.0/unomi-manual-3_0_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/3.0.0/unomi-manual-3_0_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/3.0.0/unomi-manual-3_0_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/3.0.0/unomi-manual-3_0_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/3.0.0/unomi-manual-3_0_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-warning"><i class="fas fa-circle"></i> Unstable</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">{{ site.data.unomi.latest.development.version }}</span></h3>
-              <div class="mb-1 text-muted">In development</div>
-              <p class="card-text">
-                <a href="manual/latest/index.html">online</a><br>
-              </p>
-            </div>
-          </div>
-        </div>
-      </div>
-
-      <h4 class="pt-4 mt-2 text-dark">Archives</h4>
-
-      <div class="row mb-2">
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">2.6.x</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.6.0/unomi-manual-2_6_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.6.0/unomi-manual-2_6_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.6.0/unomi-manual-2_6_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.6.0/unomi-manual-2_6_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.6.0/unomi-manual-2_6_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.6.0/unomi-manual-2_6_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">2.5.x</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.5.0/unomi-manual-2_5_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.5.0/unomi-manual-2_5_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.5.0/unomi-manual-2_5_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.5.0/unomi-manual-2_5_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.5.0/unomi-manual-2_5_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.5.0/unomi-manual-2_5_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">2.4.x</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.4.0/unomi-manual-2_4_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.4.0/unomi-manual-2_4_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.4.0/unomi-manual-2_4_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.4.0/unomi-manual-2_4_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.4.0/unomi-manual-2_4_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/2.4.0/unomi-manual-2_4_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">2.3.x</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.3.0/unomi-manual-2_3_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/2.3.0/unomi-manual-2_3_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.3.0/unomi-manual-2_3_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.3.0/unomi-manual-2_3_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/2.3.0/unomi-manual-2_3_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.3.0/unomi-manual-2_3_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">2.2.x</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.2.0/unomi-manual-2_2_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/2.2.0/unomi-manual-2_2_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.2.0/unomi-manual-2_2_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.2.0/unomi-manual-2_2_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/2.2.0/unomi-manual-2_2_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.2.0/unomi-manual-2_2_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">2.1.x</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.1.0/unomi-manual-2_1_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/2.1.0/unomi-manual-2_1_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.1.0/unomi-manual-2_1_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.1.0/unomi-manual-2_1_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/2.1.0/unomi-manual-2_1_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.1.0/unomi-manual-2_1_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">2.0.x</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.0.0/unomi-manual-2_0_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/2.0.0/unomi-manual-2_0_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.0.0/unomi-manual-2_0_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.0.0/unomi-manual-2_0_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/2.0.0/unomi-manual-2_0_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/2.0.0/unomi-manual-2_0_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">1.9.x</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/1.9.0/unomi-manual-1_9_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/1.9.0/unomi-manual-1_9_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/1.9.0/unomi-manual-1_9_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/1.9.0/unomi-manual-1_9_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/1.9.0/unomi-manual-1_9_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://dist.apache.org/repos/dist/release/unomi/1.9.0/unomi-manual-1_9_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">1.7.x</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.7.0/unomi-manual-1_7_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/1.7.0/unomi-manual-1_7_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.7.0/unomi-manual-1_7_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.7.0/unomi-manual-1_7_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/1.7.0/unomi-manual-1_7_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.7.0/unomi-manual-1_7_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">1.6.x</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.6.0/unomi-manual-1_6_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/1.6.0/unomi-manual-1_6_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.6.0/unomi-manual-1_6_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.6.0/unomi-manual-1_6_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/1.6.0/unomi-manual-1_6_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.6.0/unomi-manual-1_6_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">1.5.x</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.5.0/unomi-manual-1_5_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/1.5.0/unomi-manual-1_5_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.5.0/unomi-manual-1_5_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.5.0/unomi-manual-1_5_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/1.5.0/unomi-manual-1_5_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.5.0/unomi-manual-1_5_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">1.4.x</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.4.0/unomi-manual-1_4_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/1.4.0/unomi-manual-1_4_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.4.0/unomi-manual-1_4_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.4.0/unomi-manual-1_4_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/unomi/1.4.0/unomi-manual-1_4_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/unomi/1.4.0/unomi-manual-1_4_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">1.3.x-incubating</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-manual-1_3_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-manual-1_3_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-manual-1_3_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-manual-1_3_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-manual-1_3_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-manual-1_3_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">1.2.x-incubating</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-manual-1_2_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-manual-1_2_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-manual-1_2_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-manual-1_2_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-manual-1_2_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-manual-1_2_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-        </div>
-        <div class="col-md-4">
-          <div class="card flex-md-row mb-4 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-info"><i class="fas fa-circle"></i> Archive</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">1.1.x-incubating</span></h3>
-              <p class="card-text">
-                <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-manual-1_1_x.zip">html (zipped)</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-manual-1_1_x.zip.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-manual-1_1_x.zip.sha512">SHA512</a> ]<br>
-                <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-manual-1_1_x.pdf">pdf</a>
-                [ <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-manual-1_1_x.pdf.asc">PGP</a> |
-                <a target="_blank" href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-manual-1_1_x.pdf.sha512">SHA512</a> ]
-              </p>
-            </div>
-          </div>
-      </div>
-      </div>
+<!-- Page Header -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Docs</p>
+        <h1>Documentation</h1>
+        <p class="lead">Everything you need to learn, build with, and operate Apache Unomi.</p>
     </div>
+</section>
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
-      <div class="container">
+<!-- Quick Links -->
+<section class="section">
+    <div class="container">
+        <h2 class="visually-hidden">Quick Links</h2>
+        <div class="row g-4">
+            <div class="col-md-6 col-lg-3">
+                <a href="/get-started.html" class="feature-card d-block text-decoration-none h-100">
+                    <div class="feature-icon"><i class="bi bi-rocket-takeoff"></i></div>
+                    <h3 class="h6 fw-semibold text-dark">Getting Started</h3>
+                    <p class="small text-muted mb-0">New to Unomi? Start here with a quick overview and Docker setup.</p>
+                </a>
+            </div>
+            <div class="col-md-6 col-lg-3">
+                <a href="https://unomi.apache.org/manual/3_0_x/index.html" class="feature-card d-block text-decoration-none h-100">
+                    <div class="feature-icon"><i class="bi bi-book"></i></div>
+                    <h3 class="h6 fw-semibold text-dark">Stable Manual <span class="text-muted fw-normal">3.0.x</span></h3>
+                    <p class="small text-muted mb-0">The comprehensive guide for the current stable release.</p>
+                </a>
+            </div>
+            <div class="col-md-6 col-lg-3">
+                <a href="https://unomi.apache.org/rest-api-doc/index.html" class="feature-card d-block text-decoration-none h-100">
+                    <div class="feature-icon"><i class="bi bi-braces"></i></div>
+                    <h3 class="h6 fw-semibold text-dark">REST API</h3>
+                    <p class="small text-muted mb-0">Complete REST API reference for profiles, events, segments, and more.</p>
+                </a>
+            </div>
+            <div class="col-md-6 col-lg-3">
+                <a href="https://unomi.apache.org/unomi-api/apidocs/index.html" class="feature-card d-block text-decoration-none h-100" target="_blank" rel="noopener">
+                    <div class="feature-icon"><i class="bi bi-code-square"></i></div>
+                    <h3 class="h6 fw-semibold text-dark">Javadoc</h3>
+                    <p class="small text-muted mb-0">Java API documentation for plugin and extension developers.</p>
+                </a>
+            </div>
+        </div>
+    </div>
+</section>
 
-        <!-- Migrating ES -->
-        <div class="row mb-5 mt-5">
-          <div class="col">
-            <h2 class="pb-3 border-bottom">API Documentation</h2>
-            <h3 class="pt-3 pb-2 text-dark">Javadoc</h3>
-            <p>Click <a class="btn-link" target="_blank"
-                        href="https://unomi.apache.org/unomi-api/latest/apidocs/index.html">here</a> to view the Javadoc documentation</p>
+<hr class="section-divider">
 
-            <h4 class="pt-4 pb-2 text-dark">REST</h4>
+<!-- Explore by Topic -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-7">
+                <p class="section-label">Explore</p>
+                <h2>Documentation by Topic</h2>
+            </div>
+        </div>
+        <div class="row g-4">
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <div class="feature-icon icon-success"><i class="bi bi-box-seam"></i></div>
+                    <h3 class="h6 fw-semibold">Installation &amp; Configuration</h3>
+                    <p class="small text-muted mb-2">Docker setup, manual installation, Elasticsearch configuration, and production deployment.</p>
+                    <a href="https://unomi.apache.org/manual/latest/index.html#_quick_start" class="small fw-semibold">Installation guide <i class="bi bi-arrow-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <div class="feature-icon icon-info"><i class="bi bi-braces"></i></div>
+                    <h3 class="h6 fw-semibold">REST API &amp; Integration</h3>
+                    <p class="small text-muted mb-2">Send events, query profiles, manage segments, and integrate with external systems.</p>
+                    <a href="https://unomi.apache.org/rest-api-doc/index.html" class="small fw-semibold">REST API docs <i class="bi bi-arrow-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <div class="feature-icon icon-amber"><i class="bi bi-shield-lock"></i></div>
+                    <h3 class="h6 fw-semibold">Privacy &amp; GDPR</h3>
+                    <p class="small text-muted mb-2">Consent management, data portability, anonymization, and profile deletion.</p>
+                    <a href="https://unomi.apache.org/manual/latest/index.html" class="small fw-semibold">Privacy manual <i class="bi bi-arrow-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <div class="feature-icon icon-rose"><i class="bi bi-puzzle"></i></div>
+                    <h3 class="h6 fw-semibold">Extending Unomi</h3>
+                    <p class="small text-muted mb-2">Build plugins, custom actions, rules, conditions, and Groovy connectors.</p>
+                    <a href="https://unomi.apache.org/manual/latest/index.html" class="small fw-semibold">Plugin guide <i class="bi bi-arrow-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <div class="feature-icon"><i class="bi bi-lightbulb"></i></div>
+                    <h3 class="h6 fw-semibold">Use Cases</h3>
+                    <p class="small text-muted mb-2">Web personalization, mobile analytics, centralized profile management, and more.</p>
+                    <a href="/use-cases.html" class="small fw-semibold">View use cases <i class="bi bi-arrow-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <div class="feature-icon icon-neutral-dark"><i class="bi bi-play-circle"></i></div>
+                    <h3 class="h6 fw-semibold">Videos &amp; Tutorials</h3>
+                    <p class="small text-muted mb-2">Conference talks, video tutorials, articles, and community presentations.</p>
+                    <a href="/resources.html" class="small fw-semibold">Browse resources <i class="bi bi-arrow-right"></i></a>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
 
-            <p>
-              Starting with version 1.6, the REST API is no longer updated here since it is embedded directly in the
-              server as OpenAPI documentation. You can find it here: <a href="http://localhost:8181/cxs/api-docs?url=openapi.json">http://localhost:8181/cxs/api-docs?url=openapi.json</a>
-              once the server was started.
-            </p>
+<hr class="section-divider">
 
-            <table class="table table-striped table-sm">
-              <thead class="thead-dark">
-                <th>Name</th>
-                <th>Description</th>
-                <th>REST API Documentation</th>
-                <th>Since version</th>
-                <th class="text-center">Status</th>
-              </thead>
-              <tbody>
-                <tr>
-                  <td><strong>userList</strong></td>
-                  <td>Manage user</td>
-                  <td><a href="https://unomi.apache.org/rest-api-doc/index.html#568140055" target="_blank">view</a></td>
-                  <td>1.3.0-incubating</td>
-                  <td class="text-center"><strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i></strong>
-                </tr>
-                <tr>
-                  <td><strong>campaigns</strong></td>
-                  <td>Manage campaign</td>
-                  <td><a href="https://unomi.apache.org/rest-api-doc/#-241880339" target="_blank">view</a></td>
-                  <td>1.3.0-incubating</td>
-                  <td class="text-center"><strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i></strong>
-                </tr>
-                <tr>
-                  <td><strong>cluster</strong></td>
-                  <td>Manage cluster</td>
-                  <td><a href="https://unomi.apache.org/rest-api-doc/#1007094421" target="_blank">view</a></td>
-                  <td>1.3.0-incubating</td>
-                  <td class="text-center"><strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i></strong>
-                </tr>
-                <tr>
-                  <td><strong>definitions</strong></td>
-                  <td>Manage definitions</td>
-                  <td><a href="https://unomi.apache.org/rest-api-doc/#1834364863" target="_blank">view</a></td>
-                  <td>1.3.0-incubating</td>
-                  <td class="text-center"><strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i></strong>
-                </tr>
-                <tr>
-                  <td><strong>goals</strong></td>
-                  <td>Manage goal</td>
-                  <td><a href="https://unomi.apache.org/rest-api-doc/#-379780403" target="_blank">view</a></td>
-                  <td>1.3.0-incubating</td>
-                  <td class="text-center"><strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i></strong>
-                </tr>
-                <tr>
-                  <td><strong>profile</strong></td>
-                  <td>Manage profile</td>
-                  <td><a href="https://unomi.apache.org/rest-api-doc/#-1907885015" target="_blank">view</a></td>
-                  <td>1.3.0-incubating</td>
-                  <td class="text-center"><strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i></strong>
-                </tr>
-                <tr>
-                  <td><strong>query</strong></td>
-                  <td>Manage query</td>
-                  <td><a href="https://unomi.apache.org/rest-api-doc/#371361199" target="_blank">view</a></td>
-                  <td>1.3.0-incubating</td>
-                  <td class="text-center"><strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i></strong>
-                </tr>
-                <tr>
-                  <td><strong>rules</strong></td>
-                  <td>Manage rule</td>
-                  <td><a href="https://unomi.apache.org/rest-api-doc/#-1505954579" target="_blank">view</a></td>
-                  <td>1.3.0-incubating</td>
-                  <td class="text-center"><strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i></strong>
-                </tr>
-                <tr>
-                  <td><strong>scoring</strong></td>
-                  <td>Manage scoring</td>
-                  <td><a href="https://unomi.apache.org/rest-api-doc/#-1379828888" target="_blank">view</a></td>
-                  <td>1.3.0-incubating</td>
-                  <td class="text-center"><strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i></strong>
-                </tr>
-                <tr>
-                  <td><strong>segments</strong></td>
-                  <td>Manage segment</td>
-                  <td><a href="https://unomi.apache.org/rest-api-doc/#1558745832" target="_blank">view</a></td>
-                  <td>1.3.0-incubating</td>
-                  <td class="text-center"><strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i></strong>
-                </tr>
-                <tr>
-                  <td><strong>patches</strong></td>
-                  <td>Manage patch</td>
-                  <td><a href="https://unomi.apache.org/rest-api-doc/#943335618" target="_blank">view</a></td>
-                  <td>1.4.0</td>
-                  <td class="text-center"><strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i></strong>
-                </tr>
-                <tr>
-                  <td><strong>events</strong></td>
-                  <td>Manage event</td>
-                  <td><a href="https://unomi.apache.org/rest-api-doc/#1768188821" target="_blank">view</a></td>
-                  <td>1.4.0</td>
-                  <td class="text-center"><strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i></strong>
-                </tr>
-              </tbody>
-            </table>
-          </div><!-- /.blog-main -->
+<!-- Manual Versions -->
+<section class="section section-alt" id="versions">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-7">
+                <p class="section-label">Versions</p>
+                <h2>Manual by Version</h2>
+            </div>
         </div>
 
-        <!-- Migrating ES -->
-        <div class="row mb-5 mt-5">
-          <div class="col">
-            <h2 class="pb-3 mb-3 border-bottom">Migrating ElasticSearch</h2>
-            <h3 class="mb-3 text-dark">Introduction</h3>
-            <p>
-              In this section of the documentation we will explain some general notions of how to migrate between ElasticSearch versions, as well as present specific migration steps to migrate from one version of ElasticSearch used by Apache Unomi to another, if it is needed.
-            </p>
-
-            <h3 class="pt-3 mb-3 text-dark">General steps and notions</h3>
-            <p>
-              Depending on the type of ElasticSearch install you may have, the migration steps will differ. Basically when dealing with a single node (standalone) installation, a simple procedure may be used that simply copies some directories over, while in the case of a cluster installation ElasticSearch Snapshot and Restore functionality must be used.
-            </p>
-            <h4 class="mb-2">Standalone (one node migration)</h4>
-            <p>
-              In the case of a standalone install, it is generally sufficient, provided the versions are compatible (meaning that only one major version seperates the two installs), to simply copy over the data directory over to the new version. Also you will need to make sure that you copy over any custom settings from the <code>config/elasticsearch.yml</code> file over to the new version.
-            </p>
-            <h4 class="mb-2">Cluster migration</h4>
-            <p>
-              Here we recommend you read the <a target="_blank" href="https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-upgrade.html">official upgrading documentation</a>.
-            </p>
-
-            <h3 class="pt-3 mb-3 text-dark">Migrating between versions used by Apache Unomi.</h3>
-            <h4 class="mb-2">Cluster migration</h4>
-            <p>
-              Steps:
-            </p>
-            <ol>
-              <li>Depending on your install, perform either the standalone or cluster migration</li>
-              <li>That's it !</li>
-            </ol>
-          </div><!-- /.blog-main -->
+        <!-- Latest -->
+        <div class="row g-4 mb-4 justify-content-center">
+            <div class="col-md-5">
+                <div class="version-card featured">
+                    <div class="d-flex align-items-center mb-2">
+                        <span class="badge badge-success me-2"><i class="bi bi-circle-fill me-1 badge-dot-sm"></i> Stable</span>
+                        <span class="fw-semibold">Recommended</span>
+                    </div>
+                    <h3 class="h5 fw-bold mb-1">Unomi 3.0.x</h3>
+                    <div class="d-flex flex-wrap gap-2 mt-3">
+                        <a href="https://unomi.apache.org/manual/3_0_x/index.html" class="btn btn-primary btn-sm">Read Online</a>
+                        <a href="https://dist.apache.org/repos/dist/release/unomi/3.0.0/unomi-manual-3_0_x.zip" target="_blank" rel="noopener" class="btn btn-outline-primary btn-sm">HTML (zip)</a>
+                        <a href="https://dist.apache.org/repos/dist/release/unomi/3.0.0/unomi-manual-3_0_x.pdf" target="_blank" rel="noopener" class="btn btn-outline-primary btn-sm">PDF</a>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-5">
+                <div class="version-card">
+                    <div class="d-flex align-items-center mb-2">
+                        <span class="badge badge-warning me-2"><i class="bi bi-circle-fill me-1 badge-dot-sm"></i> Development</span>
+                    </div>
+                    <h3 class="h5 fw-bold mb-1">Unomi {{ site.data.unomi.latest.development.version }}</h3>
+                    <p class="small text-muted mb-2">In development &mdash; may contain unreleased features.</p>
+                    <a href="https://unomi.apache.org/manual/latest/index.html" class="btn btn-outline-primary btn-sm">Read Online</a>
+                </div>
+            </div>
         </div>
 
-        <div class="row mb-5 mt-5">
-          <div class="col">
-            <h2 class="pb-3 mb-3 border-bottom">Security Advisories</h2>
-            <p>
-              <a href="security/cve-2020-11975.txt">CVE-2020-11975</a> : Remote Code Execution in Apache Unomi
-            </p>
-            <p>
-              <a href="security/cve-2020-13942.txt">CVE-2020-13942</a> : Remote Code Execution in Apache Unomi
-            </p>
-            <p>
-              <a href="security/cve-2021-31164.txt">CVE-2021-31164</a> : CRLF Log injection in Apache Unomi
-            </p>
-          </div>
+        <!-- Archives (collapsed) -->
+        <div class="row justify-content-center">
+            <div class="col-lg-10">
+                <details class="mt-3">
+                    <summary class="fw-semibold text-primary cursor-pointer">
+                        <i class="bi bi-archive me-1"></i> Archived Versions (2.7.x &ndash; 1.1.x)
+                    </summary>
+                    <div class="table-responsive mt-3">
+                        <table class="table table-sm align-middle">
+                            <thead>
+                                <tr>
+                                    <th>Version</th>
+                                    <th>Online</th>
+                                    <th>HTML (zip)</th>
+                                    <th>PDF</th>
+                                </tr>
+                            </thead>
+                            <tbody>
+                                <tr>
+                                    <td class="fw-semibold">2.7.x</td>
+                                    <td><a href="https://unomi.apache.org/manual/2_7_x/index.html">Online</a></td>
+                                    <td><a href="https://dist.apache.org/repos/dist/release/unomi/2.7.0/unomi-manual-2_7_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://dist.apache.org/repos/dist/release/unomi/2.7.0/unomi-manual-2_7_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">2.6.x</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://dist.apache.org/repos/dist/release/unomi/2.6.0/unomi-manual-2_6_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://dist.apache.org/repos/dist/release/unomi/2.6.0/unomi-manual-2_6_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">2.5.x</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://dist.apache.org/repos/dist/release/unomi/2.5.0/unomi-manual-2_5_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://dist.apache.org/repos/dist/release/unomi/2.5.0/unomi-manual-2_5_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">2.4.x</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://dist.apache.org/repos/dist/release/unomi/2.4.0/unomi-manual-2_4_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://dist.apache.org/repos/dist/release/unomi/2.4.0/unomi-manual-2_4_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">2.3.x</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/2.3.0/unomi-manual-2_3_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/2.3.0/unomi-manual-2_3_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">2.2.x</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/2.2.0/unomi-manual-2_2_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/2.2.0/unomi-manual-2_2_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">2.1.x</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/2.1.0/unomi-manual-2_1_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/2.1.0/unomi-manual-2_1_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">2.0.x</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/2.0.0/unomi-manual-2_0_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/2.0.0/unomi-manual-2_0_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">1.9.x</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://dist.apache.org/repos/dist/release/unomi/1.9.0/unomi-manual-1_9_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://dist.apache.org/repos/dist/release/unomi/1.9.0/unomi-manual-1_9_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">1.7.x</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/1.7.0/unomi-manual-1_7_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/1.7.0/unomi-manual-1_7_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">1.6.x</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/1.6.0/unomi-manual-1_6_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/1.6.0/unomi-manual-1_6_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">1.5.x</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/1.5.0/unomi-manual-1_5_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/1.5.0/unomi-manual-1_5_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">1.4.x</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/1.4.0/unomi-manual-1_4_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://archive.apache.org/dist/unomi/1.4.0/unomi-manual-1_4_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">1.3.x-incubating</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-manual-1_3_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-manual-1_3_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">1.2.x-incubating</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-manual-1_2_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-manual-1_2_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                                <tr>
+                                    <td class="fw-semibold">1.1.x-incubating</td>
+                                    <td>&mdash;</td>
+                                    <td><a href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-manual-1_1_x.zip" target="_blank" rel="noopener">Download</a></td>
+                                    <td><a href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-manual-1_1_x.pdf" target="_blank" rel="noopener">Download</a></td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </details>
+            </div>
         </div>
+    </div>
+</section>
 
+<!-- REST API Reference Table -->
+<section class="section" id="rest-api">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-7">
+                <p class="section-label">API Reference</p>
+                <h2>REST API Endpoints</h2>
+                <p class="text-muted">Since v1.6, the REST API is embedded as OpenAPI docs in the server at<br><code>http://localhost:8181/cxs/api-docs?url=openapi.json</code></p>
+            </div>
+        </div>
+        <div class="row justify-content-center">
+            <div class="col-lg-8">
+                <div class="table-responsive">
+                    <table class="table table-sm align-middle">
+                        <thead>
+                            <tr><th>Endpoint</th><th>Description</th><th>Since</th></tr>
+                        </thead>
+                        <tbody>
+                            <tr><td class="fw-semibold">profiles</td><td>Manage user profiles</td><td>1.3</td></tr>
+                            <tr><td class="fw-semibold">events</td><td>Send and query events</td><td>1.4</td></tr>
+                            <tr><td class="fw-semibold">segments</td><td>Manage segments</td><td>1.3</td></tr>
+                            <tr><td class="fw-semibold">rules</td><td>Manage rules</td><td>1.3</td></tr>
+                            <tr><td class="fw-semibold">scoring</td><td>Manage scoring plans</td><td>1.3</td></tr>
+                            <tr><td class="fw-semibold">campaigns</td><td>Manage campaigns</td><td>1.3</td></tr>
+                            <tr><td class="fw-semibold">goals</td><td>Manage goals</td><td>1.3</td></tr>
+                            <tr><td class="fw-semibold">definitions</td><td>Manage definitions</td><td>1.3</td></tr>
+                            <tr><td class="fw-semibold">cluster</td><td>Manage cluster</td><td>1.3</td></tr>
+                            <tr><td class="fw-semibold">query</td><td>Run queries</td><td>1.3</td></tr>
+                            <tr><td class="fw-semibold">userList</td><td>Manage user lists</td><td>1.3</td></tr>
+                            <tr><td class="fw-semibold">patches</td><td>Manage patches</td><td>1.4</td></tr>
+                        </tbody>
+                    </table>
+                </div>
+                <p class="small text-muted text-center mt-2">
+                    <a href="https://unomi.apache.org/rest-api-doc/index.html">View full REST API documentation <i class="bi bi-arrow-right"></i></a>
+                </p>
+            </div>
+        </div>
+    </div>
+</section>
 
-      </div><!-- /.container -->
+<hr class="section-divider">
 
+<!-- Elasticsearch Migration & Security -->
+<section class="section section-alt">
+    <div class="container">
+        <div class="row g-5">
+            <div class="col-lg-6">
+                <h2 class="h4 mb-3"><i class="bi bi-database-gear me-2 text-primary"></i>Elasticsearch Migration</h2>
+                <p class="small text-muted">When migrating between Elasticsearch versions used by Unomi:</p>
+                <ul class="small text-muted">
+                    <li class="mb-2"><strong>Standalone:</strong> Copy the data directory and custom <code>elasticsearch.yml</code> settings to the new version.</li>
+                    <li class="mb-2"><strong>Cluster:</strong> Use Elasticsearch <a href="https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-upgrade.html" target="_blank" rel="noopener">Snapshot and Restore</a> functionality.</li>
+                </ul>
+            </div>
+            <div class="col-lg-6">
+                <h2 class="h4 mb-3"><i class="bi bi-shield-check me-2 text-primary"></i>Security Advisories</h2>
+                <ul class="list-unstyled small">
+                    <li class="d-flex align-items-center mb-2">
+                        <span class="badge bg-danger badge-cve me-2">CVE</span>
+                        <a href="/security/cve-2021-31164.txt">CVE-2021-31164</a><span class="text-muted ms-2">&mdash; CRLF Log injection</span>
+                    </li>
+                    <li class="d-flex align-items-center mb-2">
+                        <span class="badge bg-danger badge-cve me-2">CVE</span>
+                        <a href="/security/cve-2020-13942.txt">CVE-2020-13942</a><span class="text-muted ms-2">&mdash; Remote Code Execution</span>
+                    </li>
+                    <li class="d-flex align-items-center mb-2">
+                        <span class="badge bg-danger badge-cve me-2">CVE</span>
+                        <a href="/security/cve-2020-11975.txt">CVE-2020-11975</a><span class="text-muted ms-2">&mdash; Remote Code Execution</span>
+                    </li>
+                </ul>
+                <p class="small text-muted">Report vulnerabilities to <a href="mailto:security@apache.org">security@apache.org</a>.</p>
+            </div>
+        </div>
+    </div>
+</section>
+
+<!-- Need Help CTA -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-8">
+                <div class="cta-banner text-center">
+                    <h3 class="h4 mb-3">Can&rsquo;t find what you need?</h3>
+                    <p class="mb-4">The community is happy to help. Ask on the mailing list or chat on Slack.</p>
+                    <div class="d-flex flex-wrap justify-content-center gap-3">
+                        <a href="/community/index.html" class="btn btn-light fw-semibold">
+                            <i class="bi bi-chat-dots me-2"></i>Get Help
+                        </a>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
diff --git a/src/main/webapp/download.html b/src/main/webapp/download.html
index c0f9f1e..309dd0d 100644
--- a/src/main/webapp/download.html
+++ b/src/main/webapp/download.html
@@ -1,821 +1,155 @@
 ---
 title: Download
+description: "Download the latest Apache Unomi release. Binary and source distributions with PGP signatures and SHA512 checksums."
+keywords: "Apache Unomi download, Unomi latest version, Unomi binary, Unomi source code, CDP download, Unomi Docker image"
 layout: default
+structured_data: >
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "SoftwareSourceCode",
+        "name": "Apache Unomi",
+        "codeRepository": "https://github.com/apache/unomi",
+        "programmingLanguage": "Java",
+        "runtimePlatform": "Apache Karaf",
+        "license": "https://www.apache.org/licenses/LICENSE-2.0",
+        "downloadUrl": "https://unomi.apache.org/download.html"
+    }
+    </script>
 ---
 
-    <div class="container pt-5">
-      <h2 class="pb-3 mb-2">Download</h2>
+<!-- Page Header -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Download</p>
+        <h1>Download Apache Unomi</h1>
+        <p class="lead">Get the latest stable release or browse the archive of previous versions.</p>
+    </div>
+</section>
 
-      <div class="row mb-2">
-        <div class="col-md-6">
-          <div class="card flex-md-row mb-2 box-shadow h-md-250">
-            <div class="card-body d-flex flex-column align-items-start">
-              <strong class="d-inline-block mb-2 text-success"><i class="fas fa-circle"></i> Latest release</strong>
-              <h3 class="mb-0 text-dark">Unomi <span class="text-muted">3.0.0</span></h3>
-              <div class="mb-1 text-muted">November 10th, 2025</div>
-              <p class="card-text mb-auto">
-                Binary Distribution :
-                  <a target="_blank" href="https://www.apache.org/dyn/closer.lua/unomi/3.0.0/unomi-3.0.0-bin.tar.gz">tar.gz</a>
-                  [<a target="_blank" href="https://www.apache.org/dist/unomi/3.0.0/unomi-3.0.0-bin.tar.gz.asc">PGP</a>]
-                  [<a target="_blank" href="https://www.apache.org/dist/unomi/3.0.0/unomi-3.0.0-bin.tar.gz.sha512">SHA512</a>] -
-                  <a target="_blank" href="https://www.apache.org/dyn/closer.lua/unomi/3.0.0/unomi-3.0.0-bin.zip">zip</a>
-                  [<a target="_blank" href="https://www.apache.org/dist/unomi/3.0.0/unomi-3.0.0-bin.zip.asc">PGP</a>]
-                  [<a target="_blank" href="https://www.apache.org/dist/unomi/3.0.0/unomi-3.0.0-bin.zip.sha512">SHA512</a>]
-              </p>
-              <p class="card-text mb-auto">
-                Source Distribution :
-                  <a target="_blank" href="https://www.apache.org/dyn/closer.lua/unomi/3.0.0/unomi-3.0.0-src.zip">zip</a>
-                  [<a target="_blank" href="https://www.apache.org/dist/unomi/3.0.0/unomi-3.0.0-src.zip.asc">PGP</a>]
-                  [<a target="_blank" href="https://www.apache.org/dist/unomi/3.0.0/unomi-3.0.0-src.zip.sha512">SHA512</a>]
-              </p>
-            <a class="btn btn-outline-dark mt-3" href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12355172" role="button" target="_blank">Release notes &raquo;</a>
-            </div>
+<!-- Latest Release -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-8">
+                <div class="version-card featured p-4">
+                    <div class="d-flex align-items-center mb-3">
+                        <span class="badge badge-success me-2"><i class="bi bi-circle-fill me-1 badge-dot-sm"></i> Latest Stable</span>
+                        <span class="fw-semibold">Recommended</span>
+                    </div>
+                    <h2 class="h3 fw-bold mb-1">Apache Unomi {{ site.data.unomi.latest.stable.version }}</h2>
+                    <p class="text-muted small mb-3">Released {{ site.data.unomi.latest.stable.date }}</p>
+
+                    <h3 class="h6 fw-semibold mb-2">Binary Distribution</h3>
+                    <div class="d-flex flex-wrap gap-2 mb-3">
+                        <a href="https://www.apache.org/dyn/closer.lua/unomi/{{ site.data.unomi.latest.stable.version }}/unomi-{{ site.data.unomi.latest.stable.version }}-bin.tar.gz" target="_blank" rel="noopener" class="btn btn-primary btn-sm">
+                            <i class="bi bi-download me-1"></i> tar.gz
+                        </a>
+                        <a href="https://www.apache.org/dyn/closer.lua/unomi/{{ site.data.unomi.latest.stable.version }}/unomi-{{ site.data.unomi.latest.stable.version }}-bin.zip" target="_blank" rel="noopener" class="btn btn-primary btn-sm">
+                            <i class="bi bi-download me-1"></i> zip
+                        </a>
+                    </div>
+                    <p class="small text-muted mb-3">
+                        Verify: <a href="https://www.apache.org/dist/unomi/{{ site.data.unomi.latest.stable.version }}/unomi-{{ site.data.unomi.latest.stable.version }}-bin.tar.gz.asc" target="_blank" rel="noopener">PGP (tar.gz)</a> &bull;
+                        <a href="https://www.apache.org/dist/unomi/{{ site.data.unomi.latest.stable.version }}/unomi-{{ site.data.unomi.latest.stable.version }}-bin.tar.gz.sha512" target="_blank" rel="noopener">SHA512 (tar.gz)</a> &bull;
+                        <a href="https://www.apache.org/dist/unomi/{{ site.data.unomi.latest.stable.version }}/unomi-{{ site.data.unomi.latest.stable.version }}-bin.zip.asc" target="_blank" rel="noopener">PGP (zip)</a> &bull;
+                        <a href="https://www.apache.org/dist/unomi/{{ site.data.unomi.latest.stable.version }}/unomi-{{ site.data.unomi.latest.stable.version }}-bin.zip.sha512" target="_blank" rel="noopener">SHA512 (zip)</a>
+                    </p>
+
+                    <h3 class="h6 fw-semibold mb-2">Source Distribution</h3>
+                    <div class="d-flex flex-wrap gap-2 mb-3">
+                        <a href="https://www.apache.org/dyn/closer.lua/unomi/{{ site.data.unomi.latest.stable.version }}/unomi-{{ site.data.unomi.latest.stable.version }}-src.zip" target="_blank" rel="noopener" class="btn btn-outline-primary btn-sm">
+                            <i class="bi bi-file-earmark-code me-1"></i> Source (zip)
+                        </a>
+                    </div>
+                    <p class="small text-muted mb-3">
+                        Verify: <a href="https://www.apache.org/dist/unomi/{{ site.data.unomi.latest.stable.version }}/unomi-{{ site.data.unomi.latest.stable.version }}-src.zip.asc" target="_blank" rel="noopener">PGP</a> &bull;
+                        <a href="https://www.apache.org/dist/unomi/{{ site.data.unomi.latest.stable.version }}/unomi-{{ site.data.unomi.latest.stable.version }}-src.zip.sha512" target="_blank" rel="noopener">SHA512</a>
+                    </p>
+
+                    <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12355172" target="_blank" rel="noopener" class="btn btn-outline-primary btn-sm">
+                        <i class="bi bi-journal-text me-1"></i> Release Notes
+                    </a>
+                </div>
           </div>
-        </div>
-
       </div>
     </div>
+</section>
 
+<!-- Installation & Verification -->
+<section class="section section-alt">
       <div class="container">
-        <div class="row mb-3 mt-3">
-            <div class="col">
-              <div class="pb-1">
-                <h2 class="pb-2">Installation</h2>
-                Take a look on the <a href="get-started.html#quickstart">5 Minutes Quick start</a> for install.
+        <div class="row g-5 justify-content-center">
+            <div class="col-lg-5">
+                <div class="feature-icon mb-3"><i class="bi bi-rocket-takeoff"></i></div>
+                <h2 class="h5 fw-semibold">Installation</h2>
+                <p class="small text-muted">Get up and running quickly with our <a href="/get-started.html#quickstart">Docker Quick Start</a> or follow the <a href="https://unomi.apache.org/manual/latest/index.html#_quick_start" target="_blank" rel="noopener">manual installation guide</a>.</p>
+            </div>
+            <div class="col-lg-5">
+                <div class="feature-icon mb-3"><i class="bi bi-shield-check"></i></div>
+                <h2 class="h5 fw-semibold">Verify Integrity</h2>
+                <p class="small text-muted mb-2">Always verify downloads using PGP signatures. Download the <a href="https://www.apache.org/dist/unomi/KEYS" target="_blank" rel="noopener">KEYS</a> file, then:</p>
+                <pre><code>gpg --import KEYS
+gpg --verify unomi-{{ site.data.unomi.latest.stable.version }}-bin.tar.gz.asc \
+    unomi-{{ site.data.unomi.latest.stable.version }}-bin.tar.gz</code></pre>
               </div>
-            </div><!-- /.blog-main -->
         </div>
-      </div><!-- /.karaf - container -->
+    </div>
+</section>
 
-
+<!-- Archives -->
+<section class="section" id="archives">
       <div class="container">
-        <div class="row mb-3 mt-3">
-            <div class="col">
-              <h2 class="pb-2">Verify the integrity of the files</h2>
-              <p>It is essential that you verify the integrity of the downloaded files using the PGP or MD5 signatures.<br/><br/>
-                The PGP signatures can be verified using PGP or GPG. First download the <a target="_blank" href="https://www.apache.org/dist/unomi/KEYS">KEYS</a> as well
-                as the <code>PGP</code> signature file for the relevant file. Make sure you get these files from the main distribution directory,
-                rather than from a mirror. Then verify the signatures using, for instance:<br/>
-                <code>
-                    % gpg --import KEYS
-                </code>
-                <br>
-                <code>
-                    % gpg --verify unomi-{{ site.data.unomi.latest.stable.version }}-bin.tar.gz.asc unomi-{{ site.data.unomi.latest.stable.version }}-bin.tar.gz
-                </code>
-              </p>
+        <div class="row justify-content-center text-center mb-4">
+            <div class="col-lg-7">
+                <p class="section-label">Archives</p>
+                <h2>Previous Releases</h2>
             </div>
         </div>
-
-      </div><!-- /.karaf - container -->
-
-      <div class="container">
-        <div class="row mb-3 mt-3">
-            <div class="col">
-              <h2 class="pb-2">Archives</h2>
-
-              <table class="table table-striped table-sm">
-                <thead class="thead-dark">
-                    <tr>
-                        <th>Version</th>
-                        <th>Binary Distribution</th>
-                        <th>Source Distribution</th>
-                        <th>Notes</th>
-                    </tr>
+        <div class="row justify-content-center">
+            <div class="col-lg-10">
+                <div class="table-responsive">
+                    <table class="table table-sm align-middle">
+                        <thead>
+                            <tr><th>Version</th><th>Binary</th><th>Source</th><th>Notes</th></tr>
                 </thead>
                   <tbody>
-                      <tr>
-                          <td>2.7.0</td>
-                          <td><a target="_blank"
-                                 href="https://archive.apache.org/dist/unomi/2.7.0/unomi-2.7.0-bin.tar.gz">tar.gz</a>
-                              [<a target="_blank"
-                                  href="https://archive.apache.org/dist/unomi/2.7.0/unomi-2.7.0-bin.tar.gz.asc">PGP</a>]
-                              [<a target="_blank"
-                                  href="https://archive.apache.org/dist/unomi/2.7.0/unomi-2.7.0-bin.tar.gz.sha512">SHA512</a>]<br>
-                              <a target="_blank"
-                                 href="https://archive.apache.org/dist/unomi/2.7.0/unomi-2.7.0-bin.zip">zip</a>
-                              [<a target="_blank"
-                                  href="https://archive.apache.org/dist/unomi/2.7.0/unomi-2.7.0-bin.zip.asc">PGP</a>]
-                              [<a target="_blank"
-                                  href="https://archive.apache.org/dist/unomi/2.7.0/unomi-2.7.0-bin.zip.sha512">SHA512</a>]
-                          </td>
-                          <td>
-                              <a target="_blank"
-                                 href="https://archive.apache.org/dist/unomi/2.7.0/unomi-2.7.0-src.zip">zip</a>
-                              [<a target="_blank"
-                                  href="https://archive.apache.org/dist/unomi/2.7.0/unomi-2.7.0-src.zip.asc">PGP</a>]
-                              [<a target="_blank"
-                                  href="https://archive.apache.org/dist/unomi/2.7.0/unomi-2.7.0-src.zip.sha512">SHA512</a>]
-                          </td>
-                          <td><a target="_blank"
-                                 href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12354778">Release
-                              Notes</a></td>
-                      </tr>
-                    <tr>
-                        <td>2.6.1</td>
-                        <td><a target="_blank"
-                               href="https://archive.apache.org/dist/unomi/2.6.1/unomi-2.6.1-bin.tar.gz">tar.gz</a>
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.6.1/unomi-2.6.1-bin.tar.gz.asc">PGP</a>]
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.6.1/unomi-2.6.1-bin.tar.gz.sha512">SHA512</a>]<br>
-                            <a target="_blank"
-                               href="https://archive.apache.org/dist/unomi/2.6.1/unomi-2.6.1-bin.zip">zip</a>
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.6.1/unomi-2.6.1-bin.zip.asc">PGP</a>]
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.6.1/unomi-2.6.1-bin.zip.sha512">SHA512</a>]
-                        </td>
-                        <td>
-                            <a target="_blank"
-                               href="https://archive.apache.org/dist/unomi/2.6.1/unomi-2.6.1-src.zip">zip</a>
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.6.1/unomi-2.6.1-src.zip.asc">PGP</a>]
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.6.1/unomi-2.6.1-src.zip.sha512">SHA512</a>]
-                        </td>
-                        <td><a target="_blank"
-                               href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12354778">Release
-                            Notes</a></td>
-                    </tr>
-                    <tr>
-                        <td>2.6.0</td>
-                        <td><a target="_blank"
-                               href="https://archive.apache.org/dist/unomi/2.6.0/unomi-2.6.0-bin.tar.gz">tar.gz</a>
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.6.0/unomi-2.6.0-bin.tar.gz.asc">PGP</a>]
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.6.0/unomi-2.6.0-bin.tar.gz.sha512">SHA512</a>]<br>
-                            <a target="_blank"
-                               href="https://archive.apache.org/dist/unomi/2.6.0/unomi-2.6.0-bin.zip">zip</a>
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.6.0/unomi-2.6.0-bin.zip.asc">PGP</a>]
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.6.0/unomi-2.6.0-bin.zip.sha512">SHA512</a>]
-                        </td>
-                        <td>
-                            <a target="_blank"
-                               href="https://archive.apache.org/dist/unomi/2.6.0/unomi-2.6.0-src.zip">zip</a>
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.6.0/unomi-2.6.0-src.zip.asc">PGP</a>]
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.6.0/unomi-2.6.0-src.zip.sha512">SHA512</a>]
-                        </td>
-                        <td><a target="_blank"
-                               href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12354778">Release
-                            Notes</a></td>
-                    </tr>
-                    <tr>
-                        <td>2.5.0</td>
-                        <td><a target="_blank"
-                               href="https://archive.apache.org/dist/unomi/2.5.0/unomi-2.5.0-bin.tar.gz">tar.gz</a>
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.5.0/unomi-2.5.0-bin.tar.gz.asc">PGP</a>]
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.5.0/unomi-2.5.0-bin.tar.gz.sha512">SHA512</a>]<br>
-                            <a target="_blank"
-                               href="https://archive.apache.org/dist/unomi/2.5.0/unomi-2.5.0-bin.zip">zip</a>
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.5.0/unomi-2.5.0-bin.zip.asc">PGP</a>]
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.5.0/unomi-2.5.0-bin.zip.sha512">SHA512</a>]
-                        </td>
-                        <td>
-                            <a target="_blank"
-                               href="https://archive.apache.org/dist/unomi/2.5.0/unomi-2.5.0-src.zip">zip</a>
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.5.0/unomi-2.5.0-src.zip.asc">PGP</a>]
-                            [<a target="_blank"
-                                href="https://archive.apache.org/dist/unomi/2.5.0/unomi-2.5.0-src.zip.sha512">SHA512</a>]
-                        </td>
-                        <td><a target="_blank"
-                               href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12353549">Release
-                            Notes</a></td>
-                    </tr>
-                  <tr>
-                      <td>2.4.0</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.4.0/unomi-2.4.0-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.4.0/unomi-2.4.0-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.4.0/unomi-2.4.0-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.4.0/unomi-2.4.0-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.4.0/unomi-2.4.0-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.4.0/unomi-2.4.0-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.4.0/unomi-2.4.0-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.4.0/unomi-2.4.0-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.4.0/unomi-2.4.0-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12353174">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>2.3.0</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.3.0/unomi-2.3.0-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.3.0/unomi-2.3.0-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.3.0/unomi-2.3.0-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.3.0/unomi-2.3.0-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.3.0/unomi-2.3.0-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.3.0/unomi-2.3.0-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.3.0/unomi-2.3.0-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.3.0/unomi-2.3.0-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.3.0/unomi-2.3.0-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12352651">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>2.2.0</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.2.0/unomi-2.2.0-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.2.0/unomi-2.2.0-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.2.0/unomi-2.2.0-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.2.0/unomi-2.2.0-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.2.0/unomi-2.2.0-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.2.0/unomi-2.2.0-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.2.0/unomi-2.2.0-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.2.0/unomi-2.2.0-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.2.0/unomi-2.2.0-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12352514">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>2.1.0</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.1.0/unomi-2.1.0-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.1.0/unomi-2.1.0-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.1.0/unomi-2.1.0-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.1.0/unomi-2.1.0-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.1.0/unomi-2.1.0-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.1.0/unomi-2.1.0-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.1.0/unomi-2.1.0-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.1.0/unomi-2.1.0-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.1.0/unomi-2.1.0-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12352332">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>2.0.0</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.0.0/unomi-2.0.0-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.0.0/unomi-2.0.0-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.0.0/unomi-2.0.0-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.0.0/unomi-2.0.0-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.0.0/unomi-2.0.0-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.0.0/unomi-2.0.0-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/2.0.0/unomi-2.0.0-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.0.0/unomi-2.0.0-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/2.0.0/unomi-2.0.0-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12343140">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.9.0</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.9.0/unomi-1.9.0-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.9.0/unomi-1.9.0-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.9.0/unomi-1.9.0-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.9.0/unomi-1.9.0-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.9.0/unomi-1.9.0-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.9.0/unomi-1.9.0-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.9.0/unomi-1.9.0-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.9.0/unomi-1.9.0-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.9.0/unomi-1.9.0-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12352744">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.8.0</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.8.0/unomi-1.8.0-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.8.0/unomi-1.8.0-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.8.0/unomi-1.8.0-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.8.0/unomi-1.8.0-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.8.0/unomi-1.8.0-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.8.0/unomi-1.8.0-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.8.0/unomi-1.8.0-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.8.0/unomi-1.8.0-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.8.0/unomi-1.8.0-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12352515">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.7.1</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.7.1/unomi-1.7.1-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.7.1/unomi-1.7.1-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.7.1/unomi-1.7.1-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.7.1/unomi-1.7.1-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.7.1/unomi-1.7.1-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.7.1/unomi-1.7.1-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.7.1/unomi-1.7.1-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.7.1/unomi-1.7.1-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.7.1/unomi-1.7.1-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12352552">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.6.1</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.6.1/unomi-1.6.1-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.6.1/unomi-1.6.1-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.6.1/unomi-1.6.1-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.6.1/unomi-1.6.1-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.6.1/unomi-1.6.1-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.6.1/unomi-1.6.1-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.6.1/unomi-1.6.1-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.6.1/unomi-1.6.1-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.6.1/unomi-1.6.1-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12351508">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.6.0</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.6.0/unomi-1.6.0-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.6.0/unomi-1.6.0-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.6.0/unomi-1.6.0-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.6.0/unomi-1.6.0-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.6.0/unomi-1.6.0-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.6.0/unomi-1.6.0-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.6.0/unomi-1.6.0-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.6.0/unomi-1.6.0-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.6.0/unomi-1.6.0-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12350121">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.5.7</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.7/unomi-1.5.7-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.7/unomi-1.5.7-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.7/unomi-1.5.7-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.7/unomi-1.5.7-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.7/unomi-1.5.7-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.7/unomi-1.5.7-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.7/unomi-1.5.7-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.7/unomi-1.5.7-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.7/unomi-1.5.7-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12350150">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.5.6</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.6/unomi-1.5.6-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.6/unomi-1.5.6-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.6/unomi-1.5.6-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.6/unomi-1.5.6-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.6/unomi-1.5.6-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.6/unomi-1.5.6-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.6/unomi-1.5.6-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.6/unomi-1.5.6-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.6/unomi-1.5.6-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12350114">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.5.5</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.5/unomi-1.5.5-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.5/unomi-1.5.5-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.5/unomi-1.5.5-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.5/unomi-1.5.5-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.5/unomi-1.5.5-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.5/unomi-1.5.5-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.5/unomi-1.5.5-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.5/unomi-1.5.5-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.5/unomi-1.5.5-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12349415">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.5.4</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.4/unomi-1.5.4-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.4/unomi-1.5.4-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.4/unomi-1.5.4-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.4/unomi-1.5.4-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.4/unomi-1.5.4-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.4/unomi-1.5.4-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.4/unomi-1.5.4-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.4/unomi-1.5.4-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.4/unomi-1.5.4-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12349372">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.5.3</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.3/unomi-1.5.3-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.3/unomi-1.5.3-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.3/unomi-1.5.3-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.3/unomi-1.5.3-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.3/unomi-1.5.3-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.3/unomi-1.5.3-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.3/unomi-1.5.3-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.3/unomi-1.5.3-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.3/unomi-1.5.3-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12349318">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.5.2</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.2/unomi-1.5.2-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.2/unomi-1.5.2-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.2/unomi-1.5.2-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.2/unomi-1.5.2-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.2/unomi-1.5.2-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.2/unomi-1.5.2-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.2/unomi-1.5.2-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.2/unomi-1.5.2-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.2/unomi-1.5.2-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12348274">Release
-                          Notes</a></td>
-                  </tr>
-                  </tr>
-                  <tr>
-                      <td>1.5.1</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.1/unomi-1.5.1-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.1/unomi-1.5.1-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.1/unomi-1.5.1-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.1/unomi-1.5.1-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.1/unomi-1.5.1-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.1/unomi-1.5.1-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.1/unomi-1.5.1-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.1/unomi-1.5.1-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.1/unomi-1.5.1-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12345521">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.5.0</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.0/unomi-1.5.0-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.0/unomi-1.5.0-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.0/unomi-1.5.0-bin.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.0/unomi-1.5.0-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.0/unomi-1.5.0-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.0/unomi-1.5.0-bin.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.5.0/unomi-1.5.0-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.0/unomi-1.5.0-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.5.0/unomi-1.5.0-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12345521">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.4.0</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.4.0/unomi-1.4.0-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.4.0/unomi-1.4.0-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.4.0/unomi-1.4.0-bin.tar.gz.sha1">SHA1</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.4.0/unomi-1.4.0-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.4.0/unomi-1.4.0-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.4.0/unomi-1.4.0-bin.zip.sha1">SHA1</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/unomi/1.4.0/unomi-1.4.0-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.4.0/unomi-1.4.0-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/unomi/1.4.0/unomi-1.4.0-src.zip.sha1">SHA1</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12343150">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.3.0-incubating</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-1.3.0-incubating-bin.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-1.3.0-incubating-bin.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-1.3.0-incubating-bin.tar.gz.sha1">SHA1</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-1.3.0-incubating-bin.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-1.3.0-incubating-bin.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-1.3.0-incubating-bin.zip.sha1">SHA1</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-1.3.0-incubating-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-1.3.0-incubating-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/unomi-1.3.0-incubating-src.zip.sha1">SHA1</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12341610">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.2.0-incubating</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-1.2.0-incubating.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-1.2.0-incubating.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-1.2.0-incubating.tar.gz.sha1">SHA1</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-1.2.0-incubating.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-1.2.0-incubating.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-1.2.0-incubating.zip.sha1">SHA1</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-1.2.0-incubating-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-1.2.0-incubating-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/unomi-1.2.0-incubating-src.zip.sha1">SHA1</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12338361">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.1.0-incubating</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-1.1.0-incubating.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-1.1.0-incubating.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-1.1.0-incubating.tar.gz.sha1">SHA1</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-1.1.0-incubating.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-1.1.0-incubating.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-1.1.0-incubating.zip.sha1">SHA1</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-1.1.0-incubating-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-1.1.0-incubating-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/unomi-1.1.0-incubating-src.zip.sha1">SHA1</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12335442">Release
-                          Notes</a></td>
-                  </tr>
-                  <tr>
-                      <td>1.0.0-incubating</td>
-                      <td><a target="_blank"
-                             href="https://archive.apache.org/dist/incubator/unomi/1.0.0-incubating/unomi-1.0.0-incubating.tar.gz">tar.gz</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.0.0-incubating/unomi-1.0.0-incubating.tar.gz.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.0.0-incubating/unomi-1.0.0-incubating.tar.gz.sha512">SHA512</a>]<br>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/incubator/unomi/1.0.0-incubating/unomi-1.0.0-incubating.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.0.0-incubating/unomi-1.0.0-incubating.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.0.0-incubating/unomi-1.0.0-incubating.zip.sha512">SHA512</a>]
-                      </td>
-                      <td>
-                          <a target="_blank"
-                             href="https://archive.apache.org/dist/incubator/unomi/1.0.0-incubating/unomi-1.0.0-incubating-src.zip">zip</a>
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.0.0-incubating/unomi-1.0.0-incubating-src.zip.asc">PGP</a>]
-                          [<a target="_blank"
-                              href="https://archive.apache.org/dist/incubator/unomi/1.0.0-incubating/unomi-1.0.0-incubating-src.zip.sha512">SHA512</a>]
-                      </td>
-                      <td><a target="_blank"
-                             href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12334704">Release
-                          Notes</a></td>
-                  </tr>
+                            <tr><td class="fw-semibold">2.7.0</td><td><a href="https://archive.apache.org/dist/unomi/2.7.0/unomi-2.7.0-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a> &bull; <a href="https://archive.apache.org/dist/unomi/2.7.0/unomi-2.7.0-bin.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://archive.apache.org/dist/unomi/2.7.0/unomi-2.7.0-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12354778" target="_blank" rel="noopener">Notes</a></td></tr>
+                            <tr><td class="fw-semibold">2.6.1</td><td><a href="https://archive.apache.org/dist/unomi/2.6.1/unomi-2.6.1-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a> &bull; <a href="https://archive.apache.org/dist/unomi/2.6.1/unomi-2.6.1-bin.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://archive.apache.org/dist/unomi/2.6.1/unomi-2.6.1-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12354778" target="_blank" rel="noopener">Notes</a></td></tr>
+                            <tr><td class="fw-semibold">2.6.0</td><td><a href="https://archive.apache.org/dist/unomi/2.6.0/unomi-2.6.0-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a> &bull; <a href="https://archive.apache.org/dist/unomi/2.6.0/unomi-2.6.0-bin.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://archive.apache.org/dist/unomi/2.6.0/unomi-2.6.0-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12354778" target="_blank" rel="noopener">Notes</a></td></tr>
+                            <tr><td class="fw-semibold">2.5.0</td><td><a href="https://archive.apache.org/dist/unomi/2.5.0/unomi-2.5.0-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a> &bull; <a href="https://archive.apache.org/dist/unomi/2.5.0/unomi-2.5.0-bin.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://archive.apache.org/dist/unomi/2.5.0/unomi-2.5.0-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12353549" target="_blank" rel="noopener">Notes</a></td></tr>
+                            <tr><td class="fw-semibold">2.4.0</td><td><a href="https://archive.apache.org/dist/unomi/2.4.0/unomi-2.4.0-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a> &bull; <a href="https://archive.apache.org/dist/unomi/2.4.0/unomi-2.4.0-bin.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://archive.apache.org/dist/unomi/2.4.0/unomi-2.4.0-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12353174" target="_blank" rel="noopener">Notes</a></td></tr>
+                            <tr><td class="fw-semibold">2.3.0</td><td><a href="https://archive.apache.org/dist/unomi/2.3.0/unomi-2.3.0-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a> &bull; <a href="https://archive.apache.org/dist/unomi/2.3.0/unomi-2.3.0-bin.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://archive.apache.org/dist/unomi/2.3.0/unomi-2.3.0-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12352651" target="_blank" rel="noopener">Notes</a></td></tr>
+                            <tr><td class="fw-semibold">2.2.0</td><td><a href="https://archive.apache.org/dist/unomi/2.2.0/unomi-2.2.0-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a> &bull; <a href="https://archive.apache.org/dist/unomi/2.2.0/unomi-2.2.0-bin.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://archive.apache.org/dist/unomi/2.2.0/unomi-2.2.0-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12352514" target="_blank" rel="noopener">Notes</a></td></tr>
+                            <tr><td class="fw-semibold">2.1.0</td><td><a href="https://archive.apache.org/dist/unomi/2.1.0/unomi-2.1.0-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a> &bull; <a href="https://archive.apache.org/dist/unomi/2.1.0/unomi-2.1.0-bin.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://archive.apache.org/dist/unomi/2.1.0/unomi-2.1.0-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12352332" target="_blank" rel="noopener">Notes</a></td></tr>
+                            <tr><td class="fw-semibold">2.0.0</td><td><a href="https://archive.apache.org/dist/unomi/2.0.0/unomi-2.0.0-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a> &bull; <a href="https://archive.apache.org/dist/unomi/2.0.0/unomi-2.0.0-bin.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://archive.apache.org/dist/unomi/2.0.0/unomi-2.0.0-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12343140" target="_blank" rel="noopener">Notes</a></td></tr>
+                            <tr><td class="fw-semibold">1.9.0</td><td><a href="https://archive.apache.org/dist/unomi/1.9.0/unomi-1.9.0-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a> &bull; <a href="https://archive.apache.org/dist/unomi/1.9.0/unomi-1.9.0-bin.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://archive.apache.org/dist/unomi/1.9.0/unomi-1.9.0-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12352744" target="_blank" rel="noopener">Notes</a></td></tr>
+                        </tbody>
+                    </table>
+                </div>
+                <details class="mt-3">
+                    <summary class="fw-semibold text-primary small cursor-pointer">
+                        <i class="bi bi-archive me-1"></i> Older releases (1.x)
+                    </summary>
+                    <div class="table-responsive mt-3">
+                        <table class="table table-sm align-middle small">
+                            <thead><tr><th>Version</th><th>Binary</th><th>Source</th><th>Notes</th></tr></thead>
+                            <tbody>
+                                <tr><td>1.8.0</td><td><a href="https://archive.apache.org/dist/unomi/1.8.0/unomi-1.8.0-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a> &bull; <a href="https://archive.apache.org/dist/unomi/1.8.0/unomi-1.8.0-bin.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://archive.apache.org/dist/unomi/1.8.0/unomi-1.8.0-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12352515" target="_blank" rel="noopener">Notes</a></td></tr>
+                                <tr><td>1.7.1</td><td><a href="https://archive.apache.org/dist/unomi/1.7.1/unomi-1.7.1-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a> &bull; <a href="https://archive.apache.org/dist/unomi/1.7.1/unomi-1.7.1-bin.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://archive.apache.org/dist/unomi/1.7.1/unomi-1.7.1-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12352552" target="_blank" rel="noopener">Notes</a></td></tr>
+                                <tr><td>1.6.1</td><td><a href="https://archive.apache.org/dist/unomi/1.6.1/unomi-1.6.1-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a></td><td><a href="https://archive.apache.org/dist/unomi/1.6.1/unomi-1.6.1-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12351508" target="_blank" rel="noopener">Notes</a></td></tr>
+                                <tr><td>1.6.0</td><td><a href="https://archive.apache.org/dist/unomi/1.6.0/unomi-1.6.0-bin.tar.gz" target="_blank" rel="noopener">tar.gz</a></td><td><a href="https://archive.apache.org/dist/unomi/1.6.0/unomi-1.6.0-src.zip" target="_blank" rel="noopener">zip</a></td><td><a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12350121" target="_blank" rel="noopener">Notes</a></td></tr>
+                                <tr><td>1.5.x</td><td colspan="3"><a href="https://archive.apache.org/dist/unomi/" target="_blank" rel="noopener">Browse Apache archive</a></td></tr>
+                                <tr><td>1.4.0</td><td colspan="3"><a href="https://archive.apache.org/dist/unomi/1.4.0/" target="_blank" rel="noopener">Browse Apache archive</a></td></tr>
+                                <tr><td>1.3.0-incubating</td><td colspan="3"><a href="https://archive.apache.org/dist/incubator/unomi/1.3.0-incubating/" target="_blank" rel="noopener">Browse Apache archive</a></td></tr>
+                                <tr><td>1.2.0-incubating</td><td colspan="3"><a href="https://archive.apache.org/dist/incubator/unomi/1.2.0-incubating/" target="_blank" rel="noopener">Browse Apache archive</a></td></tr>
+                                <tr><td>1.1.0-incubating</td><td colspan="3"><a href="https://archive.apache.org/dist/incubator/unomi/1.1.0-incubating/" target="_blank" rel="noopener">Browse Apache archive</a></td></tr>
+                                <tr><td>1.0.0-incubating</td><td colspan="3"><a href="https://archive.apache.org/dist/incubator/unomi/1.0.0-incubating/" target="_blank" rel="noopener">Browse Apache archive</a></td></tr>
                   </tbody>
               </table>
+                    </div>
+                </details>
             </div>
         </div>
-      </div><!-- /.karaf - container -->
+    </div>
+</section>
diff --git a/src/main/webapp/get-started.html b/src/main/webapp/get-started.html
index 05b7b98..9716559 100644
--- a/src/main/webapp/get-started.html
+++ b/src/main/webapp/get-started.html
@@ -1,75 +1,226 @@
 ---
 title: Getting Started
+description: "Get started with Apache Unomi in minutes. Learn what Unomi does, run it with Docker, and start building with the REST API."
+keywords: "Apache Unomi quickstart, getting started, Docker setup, installation guide, CDP setup, first steps"
 layout: default
+mermaid: true
+structured_data: >
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "HowTo",
+        "name": "How to Get Started with Apache Unomi using Docker",
+        "description": "Run Apache Unomi Customer Data Platform in minutes using Docker Compose with Elasticsearch.",
+        "totalTime": "PT5M",
+        "tool": [
+            { "@type": "HowToTool", "name": "Docker" },
+            { "@type": "HowToTool", "name": "Docker Compose" }
+        ],
+        "step": [
+            {
+                "@type": "HowToStep",
+                "position": 1,
+                "name": "Create a docker-compose.yml file",
+                "text": "Create a docker-compose.yml file with Elasticsearch 9.1.3 and Apache Unomi services configured."
+            },
+            {
+                "@type": "HowToStep",
+                "position": 2,
+                "name": "Start the environment",
+                "text": "Run 'docker-compose up' from the same folder and wait for startup to complete (1-2 minutes)."
+            },
+            {
+                "@type": "HowToStep",
+                "position": 3,
+                "name": "Verify it's running",
+                "text": "Access https://localhost:9443/cxs/cluster with username/password karaf/karaf to verify the server is running."
+            }
+        ]
+    }
+    </script>
 ---
 
-      <div class="container pt-5 pb-5">
-        <!-- in a few words -->
-        <div class="row pb-2 pt-4">
-          <div class="col-md-12">
-            <h5 class="project-heading"><span class="text-muted">Apache Unomi </span>in a few words</h5>
-            <div class="pb-2 pt-2">
-              <p>Apache Unomi is a REST server that manages user profiles and events related to the profiles. It can be used to integrate personalization and profile management within very different systems such as CMS, CRMs, Issue Trackers, native mobile application. It was designed to be easy to integrate with external systems, promoting profile sharing and re-use in very different applications.</p>
-              <p>Basically the server tracks users using different mechanisms (by default cookies), builds a progressively populated profile and associates events that are performed by a user with his profile. Events may range from a click on a page, to a file being downloaded, a native mobile application button being clicked, or anything that can be sent to the server.</p>
-              <p>The server has a built-in rule system that makes it possible to perform any action when an event is collected for a profile. It also has the notion of user segments, making it possible to classify user profiles into dynamic sub-groups, notably to build personalized experiences for specific segments.</p>
-              <p>As Apache Unomi is built as an OSGi application running inside <a target="_blank" href="https://karaf.apache.org">Apache Karaf</a>, it is extremely extensible and built to be scalable. For example it is possible to plugin new conditions, actions, or any other service that may be needed such as beacon tracking or push notifications.</p>
-              <p>Apache Unomi is also the reference implementation of the upcoming <a target="_blank" href="https://www.oasis-open.org/committees/cxs/">OASIS Customer Data Platform specification</a> to help standardize personalization of online experience while promoting ethical web experience management and increased user privacy controls.</p>
-            </div>
-          </div>
-        </div><!-- in a few words -->
+<!-- Page Header -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Get Started</p>
+        <h1>Getting Started with Apache Unomi</h1>
+        <p class="lead">From zero to a running Customer Data Platform in minutes.</p>
+    </div>
+</section>
 
-        <!-- what is unique -->
-        <div class="row pb-2 pt-4">
-          <div class="col-md-12">
-            <h5 class="project-heading">What is unique about <span class="text-muted">Apache Unomi</span> ?</h5>
-            <div class="pb-2 pt-2">
-              <p>One of the most unique features of this server is its privacy management features. Using the privacy REST API, it is possible for integrators to build user facing UIs that let them manage their profile, and control how they are being tracked, what data has been collected and even anonymize previously collected data or future data ! Finally there is even the possibility for end-users to delete their profile information completely.</p>
-              <p>It is becoming more and more important to address privacy issues correctly, and it is even becoming more and more of a legal issue since a lot of legislation is now appearing in many countries to make sure that user’s right to privacy is respected.</p>
-              <p>Of course these possibilities have no default UI inside of Apache Unomi so it is left up to the developers to expose them (or not).</p>
+<!-- What is Unomi -->
+<section class="section">
+    <div class="container">
+        <div class="row align-items-center g-5">
+            <div class="col-lg-6">
+                <p class="section-label">Overview</p>
+                <h2>What is Apache Unomi?</h2>
+                <p>Apache Unomi is a <strong>REST server</strong> that manages user profiles and events. It integrates personalization and profile management into any system &mdash; CMS, CRM, mobile apps, or custom platforms.</p>
+                <ul class="list-unstyled mt-3">
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill text-primary me-2 mt-1"></i>
+                        <span>Tracks users via cookies or custom identifiers and builds rich profiles over time</span>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill text-primary me-2 mt-1"></i>
+                        <span>Built-in rule engine triggers actions when events occur on a profile</span>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill text-primary me-2 mt-1"></i>
+                        <span>Dynamic segmentation classifies profiles into groups for personalization</span>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill text-primary me-2 mt-1"></i>
+                        <span>OSGi plugin architecture on <a href="https://karaf.apache.org" target="_blank" rel="noopener">Apache Karaf</a> &mdash; extensible and scalable</span>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill text-primary me-2 mt-1"></i>
+                        <span>Reference implementation of the <a href="https://www.oasis-open.org/committees/cxs/" target="_blank" rel="noopener">OASIS CDP specification</a></span>
+                    </li>
+                </ul>
             </div>
-          </div>
-        </div><!-- what is unique -->
+            <div class="col-lg-6">
+                <!-- Mermaid: How Unomi works -->
+                <pre class="mermaid">
+graph TD
+    A["πŸ‘€ Visitor"] -->|Events| B["Apache Unomi"]
+    B --> C["Profile Store"]
+    B --> D["Rules Engine"]
+    D --> E["🎯 Personalization"]
+    D --> F["πŸ“Š Segmentation"]
+    D --> G["πŸ“ˆ Scoring"]
+    C --> H["Privacy Controls"]
+                </pre>
+            </div>
+        </div>
+    </div>
+</section>
 
-        <div id="quickstart" class="row featurette pt-4">
-          <div class="col-md-12">
-            <h2 class="featurette-heading">Quick start with Docker</h2>
-            <div class="pb-2 pt-2">
-              <p>Docker images are available for Apache Unomi, this section will provide a few quick steps to get your first Unomi environment started, the only requirement being to have a recent version of Docker installed on your machine.</p>
-              <p>Somewhere on your filesystem, create a file called <code>docker-compose.yml</code>, with the following content:</p>
-              <p>
-                <code>
-                  <pre>
-                    version: '3.8'
-                    services:
-                      elasticsearch:
-                        image: docker.elastic.co/elasticsearch/elasticsearch:7.10.2
-                        environment:
-                          - discovery.type=single-node
-                        ports:
-                          - 9200:9200
-                      unomi:
-                        # Unomi version can be updated based on your needs
-                        image: apache/unomi:{{ site.data.unomi.latest.stable.version }}
-                        environment:
-                          - UNOMI_ELASTICSEARCH_ADDRESSES=elasticsearch:9200
-                          - UNOMI_THIRDPARTY_PROVIDER1_IPADDRESSES=0.0.0.0/0,::1,127.0.0.1
-                        ports:
-                          - 8181:8181
-                          - 9443:9443
-                          - 8102:8102
-                        links:
-                          - elasticsearch
-                        depends_on:
-                          - elasticsearch
-                  </pre>
-                </code>
-              </p>
-              <p>From the same folder, start the environment using <code>docker-compose up</code> and wait for the startup to complete.</p>
-              <p>Try accessing <a target="_blank" href="https://localhost:9443/cxs/cluster">https://localhost:9443/cxs/cluster</a> with username/password: karaf/karaf . You might get a certificate warning in your browser, just accept it despite the warning it is safe.</p>
-              <p>Want to start Unomi manually using Java instead ? You can find a quick start guide <a target="_blank" href="https://unomi.apache.org/manual/latest/index.html#_quick_start">in our documentation</a>. </p>
-              <p>Please note that the above configuration is aimed at discovering Apache Unomi quickly, it is not recommended to use this configuration <a target="_blank" href="https://unomi.apache.org/manual/latest/index.html#_securing_a_production_environment">for production environments.</a></p>
+<hr class="section-divider">
+
+<!-- Privacy highlight -->
+<section class="section section-alt">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-4">
+            <div class="col-lg-7">
+                <div class="feature-icon feature-icon-lg mx-auto mb-3 icon-amber">
+                    <i class="bi bi-shield-lock"></i>
+                </div>
+                <h2 class="h4">Privacy as a First-Class Feature</h2>
+                <p class="text-muted">Unomi&rsquo;s privacy REST API lets you build user-facing UIs where visitors can manage their profile, control tracking, view collected data, anonymize past data, or fully delete their profile. Built for a world where GDPR and privacy legislation matter.</p>
             </div>
-          </div>
+        </div>
+    </div>
+</section>
+
+<!-- Quick Start with Docker -->
+<section class="section" id="quickstart">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-7">
+                <p class="section-label">Quick Start</p>
+                <h2>Run with Docker</h2>
+                <p class="text-muted">The fastest way to try Apache Unomi. Only Docker is required.</p>
+            </div>
         </div>
 
-      </div>
+        <div class="row justify-content-center">
+            <div class="col-lg-9">
+                <!-- Step 1 -->
+                <div class="d-flex mb-4">
+                    <div class="step-number me-3 flex-shrink-0">1</div>
+                    <div class="flex-grow-1">
+                        <h3 class="h6 fw-semibold mb-2">Create a <code>docker-compose.yml</code> file</h3>
+                        <pre><code>version: '3.8'
+services:
+  elasticsearch:
+    image: docker.elastic.co/elasticsearch/elasticsearch:9.1.3
+    environment:
+      - discovery.type=single-node
+      - xpack.security.enabled=false
+    ports:
+      - 9200:9200
+  unomi:
+    image: apache/unomi:{{ site.data.unomi.latest.stable.version }}
+    environment:
+      - UNOMI_ELASTICSEARCH_ADDRESSES=elasticsearch:9200
+      - UNOMI_THIRDPARTY_PROVIDER1_IPADDRESSES=0.0.0.0/0,::1,127.0.0.1
+    ports:
+      - 8181:8181
+      - 9443:9443
+      - 8102:8102
+    links:
+      - elasticsearch
+    depends_on:
+      - elasticsearch</code></pre>
+                    </div>
+                </div>
+
+                <!-- Step 2 -->
+                <div class="d-flex mb-4">
+                    <div class="step-number me-3 flex-shrink-0">2</div>
+                    <div class="flex-grow-1">
+                        <h3 class="h6 fw-semibold mb-2">Start the environment</h3>
+                        <pre><code>docker-compose up</code></pre>
+                        <p class="small text-muted mt-2">Wait for the startup to complete (usually 1&ndash;2 minutes).</p>
+                    </div>
+                </div>
+
+                <!-- Step 3 -->
+                <div class="d-flex mb-4">
+                    <div class="step-number me-3 flex-shrink-0">3</div>
+                    <div class="flex-grow-1">
+                        <h3 class="h6 fw-semibold mb-2">Verify it&rsquo;s running</h3>
+                        <pre><code>curl -k https://localhost:9443/cxs/cluster -u karaf:karaf</code></pre>
+                        <p class="small text-muted mt-2">Default credentials: <code>karaf</code> / <code>karaf</code>. You may see a certificate warning &mdash; this is expected in development.</p>
+                    </div>
+                </div>
+            </div>
+        </div>
+
+        <div class="row justify-content-center mt-2">
+            <div class="col-lg-9">
+                <div class="p-3 rounded-3 bg-primary-light">
+                    <p class="small mb-1"><strong><i class="bi bi-info-circle me-1"></i>Production note:</strong> This configuration is for development only. See the <a href="https://unomi.apache.org/manual/latest/index.html#_securing_a_production_environment">production security guide</a> before deploying.</p>
+                    <p class="small mb-0"><strong>Prefer manual install?</strong> Follow the <a href="https://unomi.apache.org/manual/latest/index.html#_quick_start">manual quick start guide</a> for Java-based installation.</p>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
+
+<!-- Next Steps -->
+<section class="section section-alt">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-7">
+                <p class="section-label">What&rsquo;s Next?</p>
+                <h2>Continue your journey</h2>
+            </div>
+        </div>
+        <div class="row g-4 justify-content-center">
+            <div class="col-md-6 col-lg-4">
+                <a href="/documentation.html" class="feature-card d-block text-decoration-none h-100 text-center">
+                    <div class="feature-icon mx-auto"><i class="bi bi-book"></i></div>
+                    <h3 class="h6 fw-semibold text-dark">Read the Documentation</h3>
+                    <p class="small text-muted mb-0">Dive into the full manual for configuration, APIs, and extending Unomi.</p>
+                </a>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <a href="/use-cases.html" class="feature-card d-block text-decoration-none h-100 text-center">
+                    <div class="feature-icon mx-auto"><i class="bi bi-lightbulb"></i></div>
+                    <h3 class="h6 fw-semibold text-dark">Explore Use Cases</h3>
+                    <p class="small text-muted mb-0">Web personalization, mobile analytics, profile management, and more.</p>
+                </a>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <a href="/community/index.html" class="feature-card d-block text-decoration-none h-100 text-center">
+                    <div class="feature-icon mx-auto"><i class="bi bi-chat-dots"></i></div>
+                    <h3 class="h6 fw-semibold text-dark">Get Help</h3>
+                    <p class="small text-muted mb-0">Join the mailing list, chat on Slack, or attend a monthly community meeting.</p>
+                </a>
+            </div>
+        </div>
+    </div>
+</section>
diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html
index 2a855be..482cc64 100644
--- a/src/main/webapp/index.html
+++ b/src/main/webapp/index.html
@@ -1,185 +1,721 @@
 ---
-title: Main Page
+title: Open Source Customer Data Platform
+description: "Apache Unomi is an open source CDP that unifies customer data from web, mobile, CRM, and IoT. Privacy-first for AI, personalization, and real-time."
+keywords: "Apache Unomi, Customer Data Platform, CDP, open source CDP, personalization engine, GDPR compliant CDP, customer profiles, segmentation, Java CDP, privacy platform, first-party data, OASIS CXS, AI customer data, CDP for AI, AI agents customer context"
 layout: default
+mermaid: true
+structured_data: >
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "FAQPage",
+        "mainEntity": [
+            {
+                "@type": "Question",
+                "name": "What is Apache Unomi?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "Apache Unomi (pronounced 'You know me') is an open source Customer Data Platform (CDP) written in Java. It manages customer, lead, and visitor data, enables real-time personalization of experiences, and provides built-in privacy management including GDPR compliance. It is hosted at the Apache Software Foundation and is the reference implementation of the OASIS CDP specification."
+                }
+            },
+            {
+                "@type": "Question",
+                "name": "What is a Customer Data Platform (CDP)?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "A Customer Data Platform (CDP) helps organizations collect all customer data from multiple channels and systems — web, mobile, email, in-store, CRM, support, IoT, and more — into a single unified view. It provides a complete picture of each customer, enabling smarter business decisions, more personalized experiences, and better customer service across every touchpoint."
+                }
+            },
+            {
+                "@type": "Question",
+                "name": "Is Apache Unomi free?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "Yes, Apache Unomi is completely free and open source, released under the Apache License 2.0. You can download, use, modify, and distribute it freely. Commercial support is available from third-party companies."
+                }
+            },
+            {
+                "@type": "Question",
+                "name": "What technologies does Apache Unomi use?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "Apache Unomi is built in Java, runs on Apache Karaf (OSGi runtime), uses Elasticsearch for data storage, and communicates via a REST/JSON API. It has a plugin architecture supporting OSGi bundles and Groovy actions."
+                }
+            },
+            {
+                "@type": "Question",
+                "name": "How does a CDP like Apache Unomi help with AI and machine learning?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "AI models and agents are only as good as the data they can access. Apache Unomi serves as the real-time customer data foundation for AI systems — feeding unified profiles, segments, and behavioral event streams to LLMs, chatbots, recommendation engines, and predictive models via its REST API. Its built-in GDPR consent management ensures AI systems only process data customers have explicitly consented to share, making it a privacy-safe data layer for AI-first architectures."
+                }
+            }
+        ]
+    }
+    </script>
 ---
 
-<div class="container-fluid product pt-5 pb-5 mx-auto">
-    <div class="row pt-5 pb-5">
-        <div class="container">
-            <div class="col pt-5 mx-auto text-left">
-                <h1 class="display-5">Apache Unomi&trade;: The Open Source Customer Data Platform</h1>
-                <p class="lead">Apache Unomi&trade; (pronounced "You know me") is a Java Open Source customer data
-                    platform, a Java server designed to manage customers, leads and visitors data and help personalize
-                    customers experiences while also offering features to respect visitor privacy rules (such as
-                    GDPR)</p>
-                <div class="pt-4">
-                    <a class="btn btn-primary btn-lg" href="get-started.html">Learn more</a>&nbsp;&nbsp;
-                    <a class="btn btn-primary btn-lg" href="download.html">Download</a>
+<!-- Hero -->
+<section class="hero">
+    <div class="container">
+        <div class="row align-items-center">
+            <div class="col-lg-6 mb-5 mb-lg-0">
+                <p class="section-label mb-3 text-hero-link">Apache Unomi&trade;</p>
+                <h1 class="display-title mb-4">The Open Source<br><span class="text-hero-accent">Customer Data Platform</span></h1>
+                <p class="lead mb-4">Unify data from web, mobile, CRM, support systems, and more. The privacy-first data foundation for AI agents, personalization engines, and real-time customer intelligence &mdash; built on open standards.</p>
+                <div class="d-flex flex-wrap gap-3">
+                    <a class="btn btn-primary btn-lg" href="/get-started.html">
+                        <i class="bi bi-rocket-takeoff me-2"></i>Get Started
+                    </a>
+                    <a class="btn btn-outline-light btn-lg" href="/documentation.html">
+                        <i class="bi bi-book me-2"></i>Read the Docs
+                    </a>
+                </div>
+                <p class="small mt-3 text-hero-muted">
+                    Latest: v{{ site.data.unomi.latest.stable.version }} &bull;
+                    <a href="/download.html" class="text-hero-link">Download</a> &bull;
+                    <a href="https://www.apache.org/licenses/LICENSE-2.0" target="_blank" rel="noopener" class="text-hero-link">Apache 2.0 License</a>
+                </p>
+            </div>
+            <div class="col-lg-6 text-center">
+                <!-- Inline SVG Illustration: Data flowing into a unified profile -->
+                <svg viewBox="0 0 520 440" fill="none" xmlns="http://www.w3.org/2000/svg" class="illustration w-100 hero-illustration" role="img" aria-label="Customer data platform illustration showing data flowing into unified profiles">
+                    <defs>
+                        <style>
+                            /* Pulse animation for background circles */
+                            @keyframes svg-pulse-outer { 0%,100%{r:170;opacity:.08} 50%{r:178;opacity:.12} }
+                            @keyframes svg-pulse-inner { 0%,100%{r:120;opacity:.06} 50%{r:126;opacity:.1} }
+                            .bg-outer { animation: svg-pulse-outer 4s ease-in-out infinite; }
+                            .bg-inner { animation: svg-pulse-inner 4s ease-in-out infinite 0.5s; }
+
+                            /* Flowing dash animation for connector lines */
+                            @keyframes svg-dash-flow { 0%{stroke-dashoffset:20} 100%{stroke-dashoffset:0} }
+                            .flow-line { animation: svg-dash-flow 1.5s linear infinite; }
+                            .flow-line-out { animation: svg-dash-flow 1.8s linear infinite reverse; }
+
+                            /* Gentle float for data source cards */
+                            @keyframes svg-float-1 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-5px)} }
+                            @keyframes svg-float-2 { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-4px)} }
+                            .src-tl { animation: svg-float-1 3.5s ease-in-out infinite; }
+                            .src-tr { animation: svg-float-2 3.8s ease-in-out infinite 0.4s; }
+                            .src-bl { animation: svg-float-2 3.6s ease-in-out infinite 0.8s; }
+                            .src-br { animation: svg-float-1 3.4s ease-in-out infinite 1.2s; }
+
+                            /* Glow pulse on central profile */
+                            @keyframes svg-glow { 0%,100%{opacity:.9;filter:drop-shadow(0 0 6px var(--unomi-primary-glow))} 50%{opacity:1;filter:drop-shadow(0 0 14px var(--unomi-primary-glow-strong))} }
+                            .profile-node { animation: svg-glow 3s ease-in-out infinite; }
+
+                            /* Traveling data dot along path */
+                            @keyframes svg-dot-tl { 0%{cx:140;cy:72;opacity:0} 10%{opacity:.9} 90%{opacity:.9} 100%{cx:200;cy:180;opacity:0} }
+                            @keyframes svg-dot-tr { 0%{cx:380;cy:72;opacity:0} 10%{opacity:.9} 90%{opacity:.9} 100%{cx:320;cy:180;opacity:0} }
+                            @keyframes svg-dot-bl { 0%{cx:140;cy:342;opacity:0} 10%{opacity:.9} 90%{opacity:.9} 100%{cx:200;cy:240;opacity:0} }
+                            @keyframes svg-dot-br { 0%{cx:380;cy:342;opacity:0} 10%{opacity:.9} 90%{opacity:.9} 100%{cx:320;cy:240;opacity:0} }
+                            .dot-tl { animation: svg-dot-tl 2.5s ease-in-out infinite; }
+                            .dot-tr { animation: svg-dot-tr 2.5s ease-in-out infinite 0.6s; }
+                            .dot-bl { animation: svg-dot-bl 2.5s ease-in-out infinite 1.2s; }
+                            .dot-br { animation: svg-dot-br 2.5s ease-in-out infinite 1.8s; }
+
+                            /* Output badges subtle bounce */
+                            @keyframes svg-bounce { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-3px)} }
+                            .out-seg { animation: svg-bounce 3s ease-in-out infinite 0.5s; }
+                            .out-score { animation: svg-bounce 3s ease-in-out infinite 1s; }
+
+                            /* Respect reduced motion */
+                            @media (prefers-reduced-motion: reduce) {
+                                .bg-outer,.bg-inner,.flow-line,.flow-line-out,.src-tl,.src-tr,.src-bl,.src-br,
+                                .profile-node,.dot-tl,.dot-tr,.dot-bl,.dot-br,.out-seg,.out-score { animation: none !important; }
+                            }
+                        </style>
+                    </defs>
+
+                    <!-- Background circles (pulsing) -->
+                    <circle cx="260" cy="210" r="170" fill="var(--unomi-hero-accent-ghost)" class="bg-outer"/>
+                    <circle cx="260" cy="210" r="120" fill="var(--unomi-hero-accent-whisper)" class="bg-inner"/>
+
+                    <!-- Connector lines (flowing dashes) -->
+                    <line x1="140" y1="72" x2="200" y2="180" stroke="var(--unomi-hero-accent)" stroke-width="2.5" stroke-dasharray="6 4" opacity=".5" class="flow-line"/>
+                    <line x1="380" y1="72" x2="320" y2="180" stroke="var(--unomi-hero-accent)" stroke-width="2.5" stroke-dasharray="6 4" opacity=".5" class="flow-line"/>
+                    <line x1="140" y1="342" x2="200" y2="240" stroke="var(--unomi-hero-accent)" stroke-width="2.5" stroke-dasharray="6 4" opacity=".5" class="flow-line"/>
+                    <line x1="380" y1="342" x2="320" y2="240" stroke="var(--unomi-hero-accent)" stroke-width="2.5" stroke-dasharray="6 4" opacity=".5" class="flow-line"/>
+                    <line x1="235" y1="270" x2="195" y2="390" stroke="var(--unomi-accent)" stroke-width="2" stroke-dasharray="5 3" opacity=".45" class="flow-line-out"/>
+                    <line x1="285" y1="270" x2="325" y2="390" stroke="var(--unomi-accent)" stroke-width="2" stroke-dasharray="5 3" opacity=".45" class="flow-line-out"/>
+
+                    <!-- Traveling data dots (initial cx/cy match 0% keyframe; opacity 0 until animation starts) -->
+                    <circle cx="140" cy="72" r="5" fill="var(--unomi-hero-accent)" opacity="0" class="dot-tl"/>
+                    <circle cx="380" cy="72" r="5" fill="var(--unomi-hero-accent)" opacity="0" class="dot-tr"/>
+                    <circle cx="140" cy="342" r="5" fill="var(--unomi-hero-accent)" opacity="0" class="dot-bl"/>
+                    <circle cx="380" cy="342" r="5" fill="var(--unomi-hero-accent)" opacity="0" class="dot-br"/>
+
+                    <!-- Central profile node (glowing) -->
+                    <g class="profile-node">
+                        <rect x="200" y="150" width="120" height="120" rx="24" fill="var(--unomi-primary)" opacity=".9"/>
+                        <circle cx="260" cy="185" r="20" fill="var(--unomi-white)" opacity=".9"/>
+                        <path d="M232 220 a28 20 0 0 1 56 0" fill="var(--unomi-white)" opacity=".7"/>
+                        <text x="260" y="258" text-anchor="middle" fill="var(--unomi-white)" font-size="14" font-weight="700" font-family="Inter,sans-serif">PROFILE</text>
+                    </g>
+
+                    <!-- Web data source (floating) -->
+                    <g class="src-tl">
+                        <rect x="30" y="40" width="110" height="64" rx="14" fill="var(--unomi-gradient-start)" opacity=".85"/>
+                        <text x="85" y="68" text-anchor="middle" fill="var(--unomi-white)" font-size="15" font-weight="600" font-family="Inter,sans-serif">Web</text>
+                        <text x="85" y="88" text-anchor="middle" fill="var(--unomi-on-dark-dim)" font-size="12" font-family="Inter,sans-serif">Events</text>
+                    </g>
+
+                    <!-- Mobile data source (floating) -->
+                    <g class="src-tr">
+                        <rect x="380" y="40" width="110" height="64" rx="14" fill="var(--unomi-gradient-start)" opacity=".85"/>
+                        <text x="435" y="68" text-anchor="middle" fill="var(--unomi-white)" font-size="15" font-weight="600" font-family="Inter,sans-serif">Mobile</text>
+                        <text x="435" y="88" text-anchor="middle" fill="var(--unomi-on-dark-dim)" font-size="12" font-family="Inter,sans-serif">App Data</text>
+                    </g>
+
+                    <!-- CRM / Support source (floating) -->
+                    <g class="src-bl">
+                        <rect x="30" y="310" width="110" height="64" rx="14" fill="var(--unomi-gradient-start)" opacity=".85"/>
+                        <text x="85" y="338" text-anchor="middle" fill="var(--unomi-white)" font-size="15" font-weight="600" font-family="Inter,sans-serif">CRM</text>
+                        <text x="85" y="358" text-anchor="middle" fill="var(--unomi-on-dark-dim)" font-size="12" font-family="Inter,sans-serif">Support</text>
+                    </g>
+
+                    <!-- IoT / Systems source (floating) -->
+                    <g class="src-br">
+                        <rect x="380" y="310" width="110" height="64" rx="14" fill="var(--unomi-gradient-start)" opacity=".85"/>
+                        <text x="435" y="338" text-anchor="middle" fill="var(--unomi-white)" font-size="15" font-weight="600" font-family="Inter,sans-serif">IoT</text>
+                        <text x="435" y="358" text-anchor="middle" fill="var(--unomi-on-dark-dim)" font-size="12" font-family="Inter,sans-serif">Devices</text>
+                    </g>
+
+                    <!-- Output: Segment (bouncing) -->
+                    <g class="out-seg">
+                        <rect x="155" y="392" width="82" height="36" rx="10" fill="var(--unomi-accent)" opacity=".75"/>
+                        <text x="196" y="415" text-anchor="middle" fill="var(--unomi-white)" font-size="13" font-weight="700" font-family="Inter,sans-serif">Segment</text>
+                    </g>
+
+                    <!-- Output: AI Agent (bouncing) -->
+                    <g class="out-score">
+                        <rect x="283" y="392" width="82" height="36" rx="10" fill="var(--unomi-accent)" opacity=".75"/>
+                        <text x="324" y="415" text-anchor="middle" fill="var(--unomi-white)" font-size="13" font-weight="700" font-family="Inter,sans-serif">AI Agent</text>
+                    </g>
+                </svg>
+            </div>
+        </div>
+    </div>
+</section>
+
+<!-- What is a CDP -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-8">
+                <p class="section-label">Why a Customer Data Platform?</p>
+                <h2 class="mb-3">Unify your customer data.<br>Personalize every experience.</h2>
+                <p class="lead">Organizations collect data from many channels and systems &mdash; web, mobile, email, in-store, CRM, support desks, IoT devices, and more. A CDP brings it all together into a single customer view, enabling smarter decisions, better experiences, and seamless service across every touchpoint.</p>
+            </div>
+        </div>
+        <div class="row g-4">
+            <div class="col-md-6 col-lg-3">
+                <div class="feature-card text-center">
+                    <div class="feature-icon feature-icon-lg mx-auto">
+                        <i class="bi bi-person-bounding-box"></i>
+                    </div>
+                    <h3 class="h6 fw-semibold mb-2">Unified Profiles</h3>
+                    <p class="small text-muted mb-0">Consolidate customer data from every touchpoint into rich, persistent profiles.</p>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-3">
+                <div class="feature-card text-center">
+                    <div class="feature-icon feature-icon-lg mx-auto">
+                        <i class="bi bi-bullseye"></i>
+                    </div>
+                    <h3 class="h6 fw-semibold mb-2">Segmentation &amp; Scoring</h3>
+                    <p class="small text-muted mb-0">Build dynamic audience segments and lead scoring rules in real time.</p>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-3">
+                <div class="feature-card text-center">
+                    <div class="feature-icon feature-icon-lg mx-auto">
+                        <i class="bi bi-shield-lock"></i>
+                    </div>
+                    <h3 class="h6 fw-semibold mb-2">Privacy Built In</h3>
+                    <p class="small text-muted mb-0">GDPR consent management, data portability, and privacy controls as first-class features.</p>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-3">
+                <div class="feature-card text-center">
+                    <div class="feature-icon feature-icon-lg mx-auto">
+                        <i class="bi bi-puzzle"></i>
+                    </div>
+                    <h3 class="h6 fw-semibold mb-2">Extensible</h3>
+                    <p class="small text-muted mb-0">Plugin architecture with REST API, Groovy actions, and connectors to integrate anything.</p>
                 </div>
             </div>
         </div>
     </div>
-</div>
+</section>
 
-
-<!-- Marketing messaging and featurettes
-================================================== -->
-<!-- Wrap the rest of the page in another container to center all the content. -->
-
-<div class="container marketing pt-5">
-
-    <h1 class="mb-5">News</h1>
-
-    <div class="row">
-        <div class="col-lg-6 pl-5">
-            <h3>Version 3.0.0 released!</h3>
-            <h4>Changes in 3.0.0 (since 3.0.0)</h4>
-
-            <h2>Task</h2>
-            <ul>
-                <li>[<a href='https://issues.apache.org/jira/browse/UNOMI-876'>UNOMI-876</a>] - Upgrade to the latest stable version of Karaf
-                </li>
-                <li>[<a href='https://issues.apache.org/jira/browse/UNOMI-901'>UNOMI-901</a>] - Replace elasticsearch-rest-high-level-client with elasticsearch-java client
-                </li>
-            </ul>
-            <h2>Bug</h2>
-            <ul>
-                <li>[<a href='https://issues.apache.org/jira/browse/UNOMI-915'>UNOMI-915</a>] - Error on build with apache-release profile
-                </li>
-                <li>[<a href='https://issues.apache.org/jira/browse/UNOMI-916'>UNOMI-916</a>] - Fix release compliancy issues
-                </li>
-            </ul>
-
-        </div><!-- /.col-lg-8 -->
-        <div class="col-lg-6 my-auto mx-auto">
-        </div><!-- /.col-lg-4 -->
-    </div><!-- /.row -->
-
-    <hr class="featurette-divider">
-
-    <div class="row featurette">
-        <div class="col-md-12">
-            <h2 class="featurette-heading">Why would you need a <span class="text-muted">Customer Data Platform</span> ?
-            </h2>
-            <p>Organizations collect data from multiple sources and channels - sales, web, emails, mobile, brick and
-                mortar - and all of this data is spread across different departments and technologies. As a result, many
-                professionals are lacking the data they need to do their job, especially data analysts and
-                marketers.</p>
-            <p>A customer data platform helps business users collect all the customer data in one place, providing a
-                complete view of the customers. When the data is collected, the customer data platform will also play a
-                key role in choosing which content or offer is more relevant to a customer.</p>
+<!-- CDP in the AI Era -->
+<section class="section section-alt">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-8">
+                <p class="section-label">AI-Ready Data</p>
+                <h2 class="mb-3">Your CDP is the foundation<br>for an AI-first world</h2>
+                <p class="lead">AI agents, copilots, and recommendation engines are only as good as the data they operate on. A CDP gives them what they need: clean, unified, real-time customer context &mdash; with privacy built in.</p>
+            </div>
+        </div>
+        <div class="row g-4">
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <div class="feature-icon"><i class="bi bi-robot"></i></div>
+                    <h3 class="h6 fw-semibold mb-2">Feed AI Agents with Context</h3>
+                    <p class="small text-muted mb-0">LLMs and autonomous agents need customer context to be relevant. Unomi&rsquo;s REST API feeds real-time profiles, segments, and event history to any AI system &mdash; chatbots, support copilots, or recommendation engines.</p>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <div class="feature-icon"><i class="bi bi-database-lock"></i></div>
+                    <h3 class="h6 fw-semibold mb-2">First-Party Data Is King</h3>
+                    <p class="small text-muted mb-0">Third-party cookies are gone. Privacy regulations are tightening. The most valuable AI training and context data is first-party data you collect and control through your own CDP.</p>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <div class="feature-icon"><i class="bi bi-shield-check"></i></div>
+                    <h3 class="h6 fw-semibold mb-2">Privacy-Safe AI</h3>
+                    <p class="small text-muted mb-0">AI processing customer data raises serious privacy concerns. Unomi&rsquo;s GDPR consent management ensures your AI systems only use data customers have explicitly consented to share.</p>
+                </div>
+            </div>
+        </div>
+        <div class="row g-4 mt-1 justify-content-center">
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <div class="feature-icon"><i class="bi bi-lightning-charge"></i></div>
+                    <h3 class="h6 fw-semibold mb-2">Real-Time Decisioning</h3>
+                    <p class="small text-muted mb-0">AI-powered personalization requires millisecond-level customer context. Unomi processes events and updates profiles in real time, so your models always work with the freshest data.</p>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <div class="feature-icon"><i class="bi bi-plug"></i></div>
+                    <h3 class="h6 fw-semibold mb-2">Plug In Any AI</h3>
+                    <p class="small text-muted mb-0">Unlike proprietary CDPs that lock you into specific vendors, Unomi is open. Connect OpenAI, Anthropic, local models, or custom ML pipelines &mdash; your choice, your infrastructure.</p>
+                </div>
+            </div>
         </div>
     </div>
+</section>
 
-    <div class="row featurette pt-5">
-        <div class="col-md-12">
-            <h2 class="featurette-heading">The <span class="text-muted">Apache Unomi&trade;</span> advantage ?</h2>
-            <p>Each organization is unique and will always have specific needs, this is why Apache Unomi&trade; has been
-                designed to be extended and to ease the integration of external data. The embedded features such as
-                segmentation, scoring and built-in privacy will be appreciated by business users while horizontal
-                scalability and open source positioning will be loved by developers and architects. </p>
-            <p>Apache Unomi&trade; is also the reference implementation of the upcoming OASIS Context Server Customer
-                Data Platform (CDP) standard (<a target="_blank" href="https://www.oasis-open.org/committees/cxs/">https://www.oasis-open.org/committees/cxs/</a>)
-                to help standardize personalization of customer experience while promoting ethical web experience
-                management and increased user privacy controls. </p>
+<!-- Architecture Diagram (Mermaid) -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-8">
+                <p class="section-label">Architecture</p>
+                <h2 class="mb-3">How Apache Unomi works</h2>
+                <p class="lead">All communication happens via REST/JSON. Data flows in from any source, gets unified into profiles, and drives real-time decisions.</p>
+            </div>
+        </div>
+        <div class="row justify-content-center">
+            <div class="col-lg-10">
+                <pre class="mermaid">
+graph LR
+    subgraph Sources["Data Sources"]
+        WEB["🌐 Web"]
+        MOB["πŸ“± Mobile"]
+        CRM["πŸ’Ό CRM"]
+        IOT["πŸ“‘ IoT"]
+    end
+
+    subgraph Unomi["Apache Unomi"]
+        API["REST API"]
+        PE["Processing Engine"]
+        PROF["Profile Store"]
+        SEG["Segmentation"]
+        RULES["Rules Engine"]
+    end
+
+    subgraph Outputs["Actions"]
+        PERS["🎯 Personalization"]
+        SCORE["πŸ“Š Scoring"]
+        EXPORT["πŸ“€ Data Export"]
+        AIAGENT["πŸ€– AI Agents"]
+    end
+
+    WEB --> API
+    MOB --> API
+    CRM --> API
+    IOT --> API
+    API --> PE
+    PE --> PROF
+    PE --> SEG
+    PE --> RULES
+    SEG --> PERS
+    RULES --> SCORE
+    PROF --> EXPORT
+    PROF --> AIAGENT
+    SEG --> AIAGENT
+                </pre>
+            </div>
         </div>
     </div>
+</section>
 
-    <div class="row featurette pt-5">
-        <div class="col-md-12">
-            <h2 class="featurette-heading">Business cases based on <span class="text-muted">Apache Unomi&trade;</span> ?
-            </h2>
-            <ul>
-                <li>Build a web personalization software to adapt the content on your website to your audience</li>
-                <li>Collect data from mobile application and feed Apache Unomi&trade; to track and understand your
-                    customers’ journeys
-                </li>
-                <li>Connect the beacons deployed in your stores to Apache Unomi&trade; and consolidate the profile of
-                    your customers and leads across all these channels
-                </li>
-                <li>Automatically push profiles from Apache Unomi&trade; to your CRM when a lead reach a given number of
-                    points in one of your scoring plans
-                </li>
-            </ul>
+<!-- For Developers & Business Users -->
+<section class="section">
+    <div class="container">
+        <div class="row g-5 align-items-start">
+            <div class="col-lg-6">
+                <div class="d-flex align-items-center mb-3">
+                    <div class="feature-icon me-3"><i class="bi bi-code-slash"></i></div>
+                    <h2 class="h4 mb-0">For Developers</h2>
+                </div>
+                <ul class="list-unstyled mt-3">
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill text-primary me-2 mt-1"></i>
+                        <span>Elasticsearch backend with dynamic, schema-free data structures</span>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill text-primary me-2 mt-1"></i>
+                        <span>Horizontally scalable &mdash; built on Apache Karaf&trade; OSGi runtime</span>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill text-primary me-2 mt-1"></i>
+                        <span>Full REST API &mdash; easy to integrate from any language or platform</span>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill text-primary me-2 mt-1"></i>
+                        <span>Plugin architecture with JSON descriptors &mdash; extend without forking</span>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill text-primary me-2 mt-1"></i>
+                        <span>Reference implementation of the <a href="https://www.oasis-open.org/committees/cxs/" target="_blank" rel="noopener">OASIS CDP standard</a></span>
+                    </li>
+                </ul>
+            </div>
+            <div class="col-lg-6">
+                <div class="d-flex align-items-center mb-3">
+                    <div class="feature-icon me-3 icon-success"><i class="bi bi-bar-chart-line"></i></div>
+                    <h2 class="h4 mb-0">For Business &amp; IT Leaders</h2>
+                </div>
+                <ul class="list-unstyled mt-3">
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill me-2 mt-1 text-success-var"></i>
+                        <span>First-party data collection &mdash; own your customer data</span>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill me-2 mt-1 text-success-var"></i>
+                        <span>Persistent, unified profiles across anonymous and identified visitors</span>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill me-2 mt-1 text-success-var"></i>
+                        <span>Built-in GDPR consent management and privacy controls</span>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill me-2 mt-1 text-success-var"></i>
+                        <span>Real-time segmentation and scoring for immediate decisioning</span>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-check-circle-fill me-2 mt-1 text-success-var"></i>
+                        <span>Open source &amp; open standard &mdash; no vendor lock-in</span>
+                    </li>
+                </ul>
+            </div>
         </div>
     </div>
+</section>
 
-    <div class="row featurette pt-5">
-        <div class="col-md-12">
-            <h2 class="featurette-heading"><span class="text-muted">Apache Unomi&trade;</span> logical architecture</h2>
-            <p>All communication is done using HTTP REST requests and JSON data formats.</p>
+<!-- Quick Start Steps -->
+<section class="section section-alt">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-7">
+                <p class="section-label">Quick Start</p>
+                <h2 class="mb-3">Up and running in minutes</h2>
+            </div>
         </div>
-    </div>
-
-    <div class="row featurette">
-        <div class="col-md-12">
-            <img src="assets/images/unomi-logical-architecture-diagram.png"
-                 alt="Apache Unomi logical architecture diagram" class="img-fluid"/>
+        <div class="row g-4 justify-content-center">
+            <div class="col-md-4">
+                <div class="text-center">
+                    <div class="step-number mx-auto mb-3">1</div>
+                    <h3 class="h6 fw-semibold mb-2">Download</h3>
+                    <p class="small text-muted">Grab the latest release or use our Docker image to spin up instantly.</p>
+                </div>
+            </div>
+            <div class="col-md-4">
+                <div class="text-center">
+                    <div class="step-number mx-auto mb-3">2</div>
+                    <h3 class="h6 fw-semibold mb-2">Configure</h3>
+                    <p class="small text-muted">Point to your Elasticsearch instance and customize settings as needed.</p>
+                </div>
+            </div>
+            <div class="col-md-4">
+                <div class="text-center">
+                    <div class="step-number mx-auto mb-3">3</div>
+                    <h3 class="h6 fw-semibold mb-2">Integrate</h3>
+                    <p class="small text-muted">Use the REST API to send events, query profiles, and build personalized experiences.</p>
+                </div>
+            </div>
         </div>
-    </div>
-
-    <div class="row featurette pt-5">
-        <div class="col-md-6">
-            <h2>For developers</h2>
-            <ul>
-                <li>Uses ElasticSearch for data storage, dynamic data structure</li>
-                <li>Highly scalable architecture</li>
-                <li>Very simple to deploy and install (simply unzip &amp; run)</li>
-                <li>Uses Apache Karaf&trade; as the OSGi runtime</li>
-                <li>Full &amp; simple REST API</li>
-                <li>Extensible through plugin architecture (using OSGi &amp; simple JSON descriptors)</li>
-                <li>Apache Open Source project</li>
-            </ul>
-        </div>
-        <div class="col-md-6">
-            <h2>For IT stakeholders and business users</h2>
-            <ul>
-                <li>First-Party Data Collection and Ownership</li>
-                <li>Persistent and consolidated profiles for all your audience (customers &amp; leads), storing
-                    anonymous and personally identifiable information
-                </li>
-                <li>Regulation-proof and privacy management built-in</li>
-                <li>Real-Time Decisioning (Scoring logics, segmentation)</li>
-                <li>Open standard, easy integration and extension</li>
-            </ul>
-        </div>
-    </div>
-
-    <div class="row featurette pt-5">
-        <div class="col-md-12">
-            <h2 class="featurette-heading">Articles &amp; slides</h2>
-            <p>Checkout the latest <a href="resources.html#articlesAndSlides">articles and slides</a></p>
-        </div>
-    </div>
-
-    <div class="row featurette mb-5 pt-5">
-        <div class="col-md-7">
-            <h2 class="featurette-heading">Apache & OpenSource.</h2>
-            <p>
-                Unomi&trade; is your project ! Unomi&trade; is an Apache Software Foundation project, available under
-                the Apache v2 license.
-                It's a complete open community, always listening proposals and comments.
-                Sources, mailing lists, issue tracker: it's fully open, you can access directly.
-                We also love contributions : don't hesitate to contribute.
-            </p>
-            <p>
-                <a href="community/index.html">Be Involved In The Community</a> |
-                <a href="contribute/index.html">How To Contribute</a>
-            </p>
-        </div>
-        <div class="col-md-5 align-items-center">
-            <a href="https://apache.org" target="_blank">
-                <img class="featurette-image img-fluid mx-auto" src="assets/images/asf_logo_wide.svg"
-                     alt="Apache Software Foundation">
-            </a>
-            <br><br><br>
-            <a href="https://events.apache.org/x/current-event.html" target="_blank">
-                <img class="featurette-image img-fluid mx-auto"
-                     src="https://www.apache.org/events/current-event-234x60.png" alt="Community over Code"/>
+        <div class="text-center mt-4">
+            <a href="/get-started.html" class="btn btn-primary">
+                <i class="bi bi-rocket-takeoff me-2"></i>Follow the Getting Started Guide
             </a>
         </div>
     </div>
+</section>
 
-    <!-- /END THE FEATURETTES -->
+<!-- Ecosystem teaser -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-7">
+                <p class="section-label">Ecosystem</p>
+                <h2 class="mb-3">Trusted by innovative companies</h2>
+                <p class="lead">Apache Unomi powers customer data platforms, digital experience solutions, and personalization engines worldwide.</p>
+            </div>
+        </div>
+    </div>
 
-</div><!-- /.container -->
+    <!-- Horizontal scrolling marquee -->
+    <div class="ecosystem-marquee" aria-label="Companies using Apache Unomi">
+        <div class="ecosystem-track" id="ecosystemTrack">
+            <!-- Cards are duplicated in JS for seamless loop -->
+            <div class="ecosystem-card" data-company>
+                <span class="badge badge-primary mb-2">Digital Experience</span>
+                <h3 class="h6 fw-semibold mb-1">Jahia jExperience</h3>
+                <p class="small text-muted mb-2">The original contributor of Apache Unomi, powering their CDP and Digital Experience Platform.</p>
+                <a href="https://www.jahia.com" target="_blank" rel="noopener" class="small fw-semibold">www.jahia.com <i class="bi bi-arrow-right"></i></a>
+            </div>
+            <div class="ecosystem-card" data-company>
+                <span class="badge badge-primary mb-2">Personalization</span>
+                <h3 class="h6 fw-semibold mb-1">Ninetailed</h3>
+                <p class="small text-muted mb-2">Complete visitor view, segment discovery, and personalization recommendations &mdash; powered by Unomi.</p>
+                <a href="https://ninetailed.io" target="_blank" rel="noopener" class="small fw-semibold">ninetailed.io <i class="bi bi-arrow-right"></i></a>
+            </div>
+            <div class="ecosystem-card" data-company>
+                <span class="badge badge-primary mb-2">DXP &amp; Marketing</span>
+                <h3 class="h6 fw-semibold mb-1">Dropsolid Experience Cloud</h3>
+                <p class="small text-muted mb-2">DXP platform using Unomi for smart segmentation and cross-system marketing integration.</p>
+                <a href="https://dropsolid.com" target="_blank" rel="noopener" class="small fw-semibold">dropsolid.com <i class="bi bi-arrow-right"></i></a>
+            </div>
+            <div class="ecosystem-card" data-company>
+                <span class="badge badge-primary mb-2">CDP Solutions</span>
+                <h3 class="h6 fw-semibold mb-1">Inoyu</h3>
+                <p class="small text-muted mb-2">Founded by the original Unomi developer, delivering innovative CDP implementations and commercial extensions.</p>
+                <a href="https://www.inoyu.dev" target="_blank" rel="noopener" class="small fw-semibold">www.inoyu.dev <i class="bi bi-arrow-right"></i></a>
+            </div>
+            <div class="ecosystem-card" data-company>
+                <span class="badge badge-primary mb-2">Expert Services</span>
+                <h3 class="h6 fw-semibold mb-1">Yupiik</h3>
+                <p class="small text-muted mb-2">Deep Apache expertise. Core contributors to Karaf, ActiveMQ, Camel, and Unomi with professional services.</p>
+                <a href="https://www.yupiik.com" target="_blank" rel="noopener" class="small fw-semibold">www.yupiik.com <i class="bi bi-arrow-right"></i></a>
+            </div>
+            <!-- "Hidden gems" teaser card -->
+            <div class="ecosystem-card ecosystem-card-oss" data-company>
+                <div class="text-center">
+                    <i class="bi bi-globe2 d-block mb-2 icon-lg-primary"></i>
+                    <h3 class="h6 fw-semibold mb-2">And many more&hellip;</h3>
+                    <p class="small text-muted mb-0">Countless teams around the world build on Apache Unomi without ever telling us. That&rsquo;s the beauty of open source &mdash; anyone can adopt it freely and make it their own.</p>
+                </div>
+            </div>
+        </div>
+    </div>
+
+    <div class="container">
+        <div class="text-center mt-4">
+            <a href="/integrations.html" class="btn btn-outline-primary">View All Integrations &amp; Partners <i class="bi bi-arrow-right ms-1"></i></a>
+        </div>
+    </div>
+</section>
+
+<script>
+(function() {
+    // Shuffle company cards on load, then duplicate for seamless loop
+    var track = document.getElementById('ecosystemTrack');
+    if (!track) return;
+    var cards = Array.from(track.querySelectorAll('[data-company]'));
+    // Fisher-Yates shuffle
+    for (var i = cards.length - 1; i > 0; i--) {
+        var j = Math.floor(Math.random() * (i + 1));
+        track.appendChild(cards[j]);
+        var tmp = cards[i]; cards[i] = cards[j]; cards[j] = tmp;
+    }
+    // Duplicate cards for seamless infinite scroll
+    cards = Array.from(track.querySelectorAll('[data-company]'));
+    cards.forEach(function(c) { track.appendChild(c.cloneNode(true)); });
+
+    // Pause on hover
+    track.addEventListener('mouseenter', function() { track.style.animationPlayState = 'paused'; });
+    track.addEventListener('mouseleave', function() { track.style.animationPlayState = 'running'; });
+
+    // Respect prefers-reduced-motion
+    if (window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
+        track.style.animation = 'none';
+        track.style.justifyContent = 'center';
+        track.style.flexWrap = 'wrap';
+    }
+})();
+</script>
+
+<!-- Latest News — capped at 10 most recent items (releases + articles + events), newest first.
+     To add a news item, copy any <div class="news-item"> block and update date, icon, and content.
+     Icon classes:  bi-rocket-takeoff = release,  bi-journal-richtext = blog/article,
+                    bi-calendar-event = event,  bi-megaphone = announcement,  bi-camera-video = video -->
+<section class="section" id="news">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-8">
+                <p class="section-label">News</p>
+                <h2 class="mb-4">What&rsquo;s New</h2>
+
+                <div class="news-item">
+                    <span class="news-date">2025-11-10</span>
+                    <i class="bi bi-rocket-takeoff news-icon text-success-var"></i>
+                    <div>
+                        <strong class="small">Apache Unomi {{ site.data.unomi.latest.stable.version }} released</strong>
+                        <span class="small text-muted">&mdash; Karaf upgrade, new ES Java client, bug fixes.</span>
+                        <a href="/download.html" class="news-link">Download</a>
+                        <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12355172" target="_blank" rel="noopener" class="news-link">Release notes</a>
+                    </div>
+                </div>
+
+                <div class="news-item">
+                    <span class="news-date">2025-09-30</span>
+                    <i class="bi bi-calendar-event news-icon"></i>
+                    <div>
+                        <strong class="small">2 talks at Community Over Code NA 2025</strong>
+                        <span class="small text-muted">&mdash; AI + CDP demos in Minneapolis.</span>
+                        <a href="/community/events/index.html#coc-2025" class="news-link">Watch talks</a>
+                    </div>
+                </div>
+
+                <div class="news-item">
+                    <span class="news-date">2025-09-02</span>
+                    <i class="bi bi-rocket-takeoff news-icon"></i>
+                    <div>
+                        <strong class="small">Apache Unomi 2.7.0 released</strong>
+                        <span class="small text-muted">&mdash; Bug fixes and Groovy action improvements.</span>
+                        <a href="https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12319220&version=12354778" target="_blank" rel="noopener" class="news-link">Release notes</a>
+                    </div>
+                </div>
+
+                <div class="news-item">
+                    <span class="news-date">2025-08-15</span>
+                    <i class="bi bi-journal-richtext news-icon"></i>
+                    <div>
+                        <a href="https://medium.com/@otavio/customizing-the-user-experience-of-your-product-with-open-source-tech-218e27415179" target="_blank" rel="noopener" class="small fw-semibold">Customizing the User Experience with Open Source Tech</a>
+                        <span class="small text-muted">&mdash; Medium article on personalized experiences with Unomi.</span>
+                    </div>
+                </div>
+
+                <div class="news-item">
+                    <span class="news-date">2025-06-10</span>
+                    <i class="bi bi-rocket-takeoff news-icon"></i>
+                    <div>
+                        <strong class="small">Apache Unomi 2.6.1 released</strong>
+                        <span class="small text-muted">&mdash; Maintenance release with stability improvements.</span>
+                        <a href="/download.html#archives" class="news-link">Archives</a>
+                    </div>
+                </div>
+
+                <div class="news-item">
+                    <span class="news-date">2025-01-15</span>
+                    <i class="bi bi-camera-video news-icon"></i>
+                    <div>
+                        <strong class="small">OpenSearch contribution presentation</strong>
+                        <span class="small text-muted">&mdash; Presentation on the upcoming OpenSearch persistence support.</span>
+                        <a href="/community/events/index.html#opensearch-2025" class="news-link">Watch</a>
+                    </div>
+                </div>
+
+                <div class="news-item">
+                    <span class="news-date">2024-12-10</span>
+                    <i class="bi bi-camera-video news-icon"></i>
+                    <div>
+                        <strong class="small">Claude AI + MCP + Unomi demo</strong>
+                        <span class="small text-muted">&mdash; Live demo of an AI agent querying real-time customer data.</span>
+                        <a href="/community/events/index.html#mcp-demo-2024" class="news-link">Watch</a>
+                    </div>
+                </div>
+
+                <div class="news-item">
+                    <span class="news-date">2021-11-18</span>
+                    <i class="bi bi-people news-icon"></i>
+                    <div>
+                        <strong class="small">First Apache Unomi Community Meetup</strong>
+                        <span class="small text-muted">&mdash; Online meetup with roadmap, demo, and Q&amp;A.</span>
+                        <a href="/community/events/index.html#meetup-2021" class="news-link">Details</a>
+                    </div>
+                </div>
+
+                <div class="news-item">
+                    <span class="news-date">2020-06-01</span>
+                    <i class="bi bi-mic news-icon"></i>
+                    <div>
+                        <strong class="small">Feathercast interview &mdash; What is Apache Unomi?</strong>
+                        <span class="small text-muted">&mdash; ASF podcast episode introducing the project.</span>
+                        <a href="/community/events/index.html#feathercast-2020" class="news-link">Listen</a>
+                    </div>
+                </div>
+
+                <div class="news-item">
+                    <span class="news-date">2019-09-09</span>
+                    <i class="bi bi-calendar-event news-icon"></i>
+                    <div>
+                        <strong class="small">ApacheCon NA 2019 &amp; Chicago Roadshow</strong>
+                        <span class="small text-muted">&mdash; 2 talks on digital marketing &amp; CDP architecture.</span>
+                        <a href="/community/events/index.html#apachecon-2019" class="news-link">Watch talks</a>
+                    </div>
+                </div>
+
+                <div class="text-center mt-3">
+                    <a href="/community/events/index.html" class="small fw-semibold text-decoration-none">View all events &amp; past talks <i class="bi bi-arrow-right"></i></a>
+                </div>
+
+            </div>
+        </div>
+    </div>
+</section>
+
+<!-- Apache & Open Source -->
+<section class="section section-alt">
+    <div class="container">
+        <div class="row g-5 align-items-center justify-content-center">
+            <div class="col-md-5 col-lg-4 text-center">
+                <a href="https://apache.org" target="_blank" rel="noopener">
+                    <img src="/assets/images/asf_logo_wide.svg" alt="Apache Software Foundation" class="img-fluid mb-3 mw-220">
+                </a>
+                <a href="https://events.apache.org/x/current-event.html" target="_blank" rel="noopener" class="d-block">
+                    <img src="https://www.apache.org/events/current-event-234x60.png" alt="Apache Events" class="img-fluid mw-234">
+                </a>
+            </div>
+            <div class="col-md-7 col-lg-5">
+                <h2 class="h4 fw-bold mb-3">Apache &amp; Open Source</h2>
+                <p class="text-muted">Apache Unomi is <strong>your project</strong>. As an Apache Software Foundation project released under the Apache v2 license, it&rsquo;s built by a complete open community &mdash; always listening to proposals and comments. Sources, mailing lists, issue tracker: it&rsquo;s fully open and you can access everything directly.</p>
+                <div class="d-flex flex-wrap gap-2 mt-3">
+                    <a href="/community/index.html" class="btn btn-primary btn-sm"><i class="bi bi-people me-1"></i> Get Involved</a>
+                    <a href="/contribute/index.html" class="btn btn-outline-primary btn-sm"><i class="bi bi-code-slash me-1"></i> How to Contribute</a>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
+
+<!-- Community CTA -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-10">
+                <div class="cta-banner text-center">
+                    <h2 class="h3 mb-3">Join the Apache Unomi Community</h2>
+                    <p class="mb-4">Get help, share ideas, and connect with developers and users around the world.</p>
+                    <div class="d-flex flex-wrap justify-content-center gap-3">
+                        <a href="mailto:users-subscribe@unomi.apache.org" class="btn btn-light btn-lg fw-semibold">
+                            <i class="bi bi-envelope-heart me-2"></i>Subscribe to Mailing List
+                        </a>
+                        <a href="/community/index.html" class="btn btn-outline-light btn-lg fw-semibold">
+                            <i class="bi bi-chat-dots me-2"></i>All Contact Options
+                        </a>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
diff --git a/src/main/webapp/integrations.html b/src/main/webapp/integrations.html
new file mode 100644
index 0000000..8279edc
--- /dev/null
+++ b/src/main/webapp/integrations.html
@@ -0,0 +1,229 @@
+---
+title: Integrations &amp; Ecosystem
+description: "Discover products built on Apache Unomi, extensions, connectors, and companies offering commercial support for the open source Customer Data Platform."
+keywords: "Apache Unomi integrations, Unomi connectors, Groovy actions, custom plugins, Jahia jExperience, Dropsolid, Inoyu SaaS, CDP integrations, Unomi plugins, commercial support"
+layout: default
+mermaid: true
+structured_data: >
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "ItemList",
+        "name": "Apache Unomi Integrations and Ecosystem",
+        "description": "Products, extensions, connectors, and services built on Apache Unomi.",
+        "numberOfItems": 5,
+        "itemListElement": [
+            { "@type": "ListItem", "position": 1, "name": "Jahia jExperience", "url": "https://www.jahia.com" },
+            { "@type": "ListItem", "position": 2, "name": "Ninetailed Personalization Platform", "url": "https://ninetailed.io" },
+            { "@type": "ListItem", "position": 3, "name": "Dropsolid Experience Cloud", "url": "https://dropsolid.com" },
+            { "@type": "ListItem", "position": 4, "name": "Inoyu", "url": "https://www.inoyu.dev" },
+            { "@type": "ListItem", "position": 5, "name": "Yupiik", "url": "https://www.yupiik.com" }
+        ]
+    }
+    </script>
+---
+
+<!-- Page Header -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Ecosystem</p>
+        <h1>Integrations &amp; Ecosystem</h1>
+        <p class="lead">Products, extensions, connectors, and services built on and around Apache Unomi.</p>
+    </div>
+</section>
+
+<!-- Products Built on Unomi -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-8">
+                <p class="section-label">Powered by Apache Unomi</p>
+                <h2>Products &amp; Platforms</h2>
+                <p class="lead">These products and platforms use Apache Unomi as their customer data engine.</p>
+            </div>
+        </div>
+        <div class="row g-4" data-shuffle-group>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <span class="badge badge-primary mb-3">Digital Experience Platform</span>
+                    <h3 class="h6 fw-semibold">Jahia jExperience</h3>
+                    <p class="small text-muted mb-3">Jahia is the initial contributor of Apache Unomi, using it as the core engine for their Customer Data Platform (jExperience) and Digital Experience Platform with native GDPR support.</p>
+                    <blockquote class="small fst-italic text-muted border-start border-3 border-primary ps-3 mb-3">
+                        &ldquo;Apache Unomi is a very important foundation of our products. We love Apache Unomi and are deeply committed to helping our customers succeed with it.&rdquo;
+                        <footer class="mt-1 fw-semibold" class="quote-attribution">Serge Huber, Jahia CTO</footer>
+                    </blockquote>
+                    <a href="https://www.jahia.com" target="_blank" rel="noopener" class="small fw-semibold">www.jahia.com <i class="bi bi-box-arrow-up-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <span class="badge badge-primary mb-3">DXP &amp; Marketing</span>
+                    <h3 class="h6 fw-semibold">Dropsolid Experience Cloud</h3>
+                    <p class="small text-muted mb-3">The Dropsolid Experience Cloud delivers an out-of-box DXP with enhanced Drupal CMS, Mautic marketing automation, and Unomi CDP for smart segmentation and cross-system marketing.</p>
+                    <blockquote class="small fst-italic text-muted border-start border-3 border-primary ps-3 mb-3">
+                        &ldquo;Apache Unomi was the puzzle piece that fitted perfectly. It was the obvious CDP to integrate in our DXP solution.&rdquo;
+                        <footer class="mt-1 fw-semibold" class="quote-attribution">Mattias Michaux, Director of Engineering</footer>
+                    </blockquote>
+                    <a href="https://dropsolid.com/en/dropsolid-experience-cloud" target="_blank" rel="noopener" class="small fw-semibold">dropsolid.com <i class="bi bi-box-arrow-up-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <span class="badge badge-primary mb-3">Personalization</span>
+                    <h3 class="h6 fw-semibold">Ninetailed</h3>
+                    <p class="small text-muted mb-3">Ninetailed uses Apache Unomi to provide a complete view of visitors, discover new segments, and deliver personalization recommendations to grow the traffic customers already have.</p>
+                    <blockquote class="small fst-italic text-muted border-start border-3 border-primary ps-3 mb-3">
+                        &ldquo;Apache Unomi was chosen as our CDP due to its logical and plugin architecture, because it is an Apache open source project, and especially because of its Privacy (GDPR consent management) features.&rdquo;
+                        <footer class="mt-1 fw-semibold" class="quote-attribution">Andy Kaiser, Ninetailed Founder</footer>
+                    </blockquote>
+                    <a href="https://ninetailed.io" target="_blank" rel="noopener" class="small fw-semibold">ninetailed.io <i class="bi bi-box-arrow-up-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <span class="badge mb-3 badge-coming-soon">Coming Soon</span>
+                    <h3 class="h6 fw-semibold">Inoyu SaaS</h3>
+                    <p class="small text-muted mb-3">A fully managed, cloud-hosted Apache Unomi service by Inoyu. Get a production-ready CDP without the operational overhead &mdash; just connect your data sources and go.</p>
+                    <a href="https://www.inoyu.dev" target="_blank" rel="noopener" class="small fw-semibold">www.inoyu.dev <i class="bi bi-box-arrow-up-right"></i></a>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
+
+<hr class="section-divider">
+
+<!-- Extensions & Connectors -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-8">
+                <p class="section-label">Extend</p>
+                <h2>Extensions &amp; Connectors</h2>
+                <p class="lead">Apache Unomi&rsquo;s plugin architecture makes it easy to connect external systems and extend functionality.</p>
+            </div>
+        </div>
+
+        <!-- Architecture overview -->
+        <div class="row justify-content-center mb-5">
+            <div class="col-lg-10">
+                <pre class="mermaid">
+graph LR
+    subgraph Extend["Extend Unomi"]
+        GROOVY["Groovy Actions"]
+        PLUGIN["Java Plugins"]
+    end
+
+    subgraph Core["Apache Unomi"]
+        API2["Plugin API"]
+        ENGINE["Core Engine"]
+    end
+
+    subgraph Extensions["Products & Services"]
+        UI["UI"]
+        SAAS["SaaS"]
+        ANALYTICS["Analytics"]
+    end
+
+    GROOVY --> API2
+    PLUGIN --> API2
+    API2 --> ENGINE
+    ENGINE --> UI
+    ENGINE --> SAAS
+    ENGINE --> ANALYTICS
+                </pre>
+            </div>
+        </div>
+
+        <div class="row g-4">
+            <div class="col-md-6">
+                <div class="feature-card h-100">
+                    <div class="d-flex align-items-center mb-3">
+                        <span class="badge badge-primary me-2"><i class="bi bi-star-fill me-1 badge-dot"></i> Recommended</span>
+                    </div>
+                    <h3 class="h6 fw-semibold">Groovy Actions</h3>
+                    <p class="small text-muted mb-2">The easiest way to extend Unomi. Write custom logic in Groovy scripts that are <strong>hot-deployable</strong> &mdash; no compilation, no restart needed. Groovy actions can react to events, update profiles, call external APIs, and integrate with third-party systems like CRMs, email platforms, or any REST service.</p>
+                    <p class="small text-muted mb-2">Start here for most integration needs.</p>
+                    <div class="d-flex flex-wrap gap-2">
+                        <a href="https://unomi.apache.org/manual/latest/index.html#_groovy_actions" class="small fw-semibold">Groovy actions guide <i class="bi bi-arrow-right"></i></a>
+                        <a href="https://github.com/apache/unomi/tree/master/extensions/groovy-actions" target="_blank" rel="noopener" class="small fw-semibold text-muted">Source code <i class="bi bi-box-arrow-up-right"></i></a>
+                    </div>
+                </div>
+            </div>
+            <div class="col-md-6">
+                <div class="feature-card h-100">
+                    <div class="d-flex align-items-center mb-3">
+                        <div class="feature-icon feature-icon-sm"><i class="bi bi-gear"></i></div>
+                    </div>
+                    <h3 class="h6 fw-semibold">Custom Java Plugins (OSGi)</h3>
+                    <p class="small text-muted mb-2">For advanced needs that go beyond what Groovy actions can do &mdash; such as custom conditions, new persistence types, or deep integration with the Unomi core &mdash; build a full OSGi plugin in Java. This gives you access to the entire Unomi API and service layer.</p>
+                    <p class="small text-muted mb-2">Use this only when Groovy actions are not sufficient.</p>
+                    <div class="d-flex flex-wrap gap-2">
+                        <a href="https://unomi.apache.org/manual/latest/index.html#_writing_plugins" class="small fw-semibold">Writing plugins guide <i class="bi bi-arrow-right"></i></a>
+                        <a href="https://unomi.apache.org/manual/latest/index.html#_custom_plugins" class="small fw-semibold">Custom plugins <i class="bi bi-arrow-right"></i></a>
+                        <a href="https://github.com/apache/unomi/tree/master/extensions" target="_blank" rel="noopener" class="small fw-semibold text-muted">Extensions source <i class="bi bi-box-arrow-up-right"></i></a>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
+
+<hr class="section-divider">
+
+<!-- Commercial Support -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-8">
+                <p class="section-label">Support</p>
+                <h2>Commercial Support</h2>
+                <p class="lead">These companies offer professional services, support, and commercial extensions for Apache Unomi.</p>
+            </div>
+        </div>
+        <div class="row g-4 justify-content-center" data-shuffle-group>
+            <div class="col-md-6 col-lg-5">
+                <div class="feature-card h-100">
+                    <h3 class="h6 fw-semibold mb-2">Inoyu</h3>
+                    <p class="small text-muted mb-3">Established by the original developer behind the Jahia DXP and Apache Unomi. Inoyu specializes in innovative CDP implementations using Unomi as the core solution, and provides commercial support and extensions.</p>
+                    <a href="https://www.inoyu.dev" target="_blank" rel="noopener" class="small fw-semibold">www.inoyu.dev <i class="bi bi-box-arrow-up-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-5">
+                <div class="feature-card h-100">
+                    <h3 class="h6 fw-semibold mb-2">Yupiik</h3>
+                    <p class="small text-muted mb-3">Expert team with deep experience in digital technologies, heavily involved in the Apache Software Foundation. Core contributors to Apache Karaf, ActiveMQ, Camel, Unomi, and more.</p>
+                    <a href="https://www.yupiik.com" target="_blank" rel="noopener" class="small fw-semibold">www.yupiik.com <i class="bi bi-box-arrow-up-right"></i></a>
+                </div>
+            </div>
+        </div>
+        <div class="text-center mt-4">
+            <p class="small text-muted"><i class="bi bi-info-circle me-1"></i>Listings are provided as a convenience and do not imply endorsement by the Apache Software Foundation. Order is randomized on each page load to ensure equal visibility.</p>
+        </div>
+    </div>
+</section>
+
+<!-- Call to Action -->
+<section class="section section-alt">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-8">
+                <div class="cta-banner text-center">
+                    <h2 class="h3 mb-3">Built something with Apache Unomi?</h2>
+                    <p class="mb-4">We&rsquo;d love to showcase your product, integration, or extension. Submit a pull request or reach out on the mailing list.</p>
+                    <div class="d-flex flex-wrap justify-content-center gap-3">
+                        <a href="https://github.com/apache/unomi-site/blob/master/src/main/webapp/integrations.html" target="_blank" rel="noopener" class="btn btn-light fw-semibold">
+                            <i class="bi bi-github me-2"></i>Edit This Page
+                        </a>
+                        <a href="mailto:users-subscribe@unomi.apache.org" class="btn btn-outline-light fw-semibold">
+                            <i class="bi bi-envelope me-2"></i>Contact Mailing List
+                        </a>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
+
+<!-- ASF compliance: randomize company ordering on every page load -->
+<script src="/assets/js/shuffle.js" defer></script>
diff --git a/src/main/webapp/llms-full.txt b/src/main/webapp/llms-full.txt
new file mode 100644
index 0000000..9d62e16
--- /dev/null
+++ b/src/main/webapp/llms-full.txt
@@ -0,0 +1,184 @@
+# Apache Unomi - Comprehensive Technical Reference for AI Systems
+
+> This document provides comprehensive technical information about Apache Unomi for AI systems and language models.
+
+## Project Identity
+
+- **Full Name**: Apache Unomi
+- **Pronunciation**: "You know me"
+- **Type**: Customer Data Platform (CDP)
+- **Category**: Open Source Software
+- **License**: Apache License 2.0
+- **Governing Body**: Apache Software Foundation (ASF)
+- **Website**: https://unomi.apache.org
+- **Source Code**: https://github.com/apache/unomi
+- **Issue Tracker**: https://issues.apache.org/jira/browse/UNOMI
+- **Current Stable Version**: 3.0.0 (released November 10, 2025)
+- **Development Version**: 3.1.0-SNAPSHOT
+
+## Technical Architecture
+
+### Runtime Stack
+- **Language**: Java
+- **Runtime Container**: Apache Karaf (OSGi framework)
+- **Data Store**: Elasticsearch (9.x). OpenSearch support is in development (committed to main branch, expected in next release)
+- **API Protocols**: REST over HTTP/HTTPS with JSON payloads; GraphQL API for flexible queries
+- **Extension Model**: OSGi bundles, Groovy scripting, JSON descriptors
+
+### Core Components
+1. **Profile Service**: Manages persistent customer/visitor profiles
+2. **Event Service**: Collects, validates, and processes events from all data sources
+3. **Segment Service**: Evaluates dynamic segment definitions against profiles in real-time
+4. **Rules Engine**: Condition-action rules that fire when events match conditions
+5. **Scoring Service**: Calculates engagement/lead scores based on configurable scoring plans
+6. **Privacy Service**: Manages consent, anonymization, data export, and profile deletion
+7. **Plugin System**: OSGi-based plugins with JSON metadata for extending conditions, actions, and types
+8. **GraphQL API**: Flexible query interface for profiles, events, segments, and rules with field-level selection
+
+### Data Flow
+1. External systems (web, mobile, CRM, IoT) send events to the REST API
+2. Events are validated and associated with a profile (identified by cookie, ID, or custom identifier)
+3. Rules engine evaluates conditions and triggers actions (update profile, send to segment, etc.)
+4. Segments are re-evaluated in real-time when profile properties change
+5. Scores are recalculated based on segment membership and event history
+6. External systems query profiles and segments to deliver personalized experiences
+
+### REST API Endpoints
+- `/cxs/profiles` - Profile CRUD operations
+- `/cxs/events` - Event collection and querying
+- `/cxs/segments` - Segment management
+- `/cxs/rules` - Rules management
+- `/cxs/scoring` - Scoring plans
+- `/cxs/campaigns` - Campaign tracking
+- `/cxs/goals` - Goal tracking
+- `/cxs/definitions` - Type definitions
+- `/cxs/cluster` - Cluster management
+- `/cxs/privacy` - Privacy operations (consent, anonymize, delete)
+- `/cxs/context.json` - Context servlet (main entry point for web tracking, returns personalized content)
+- `/graphql` - GraphQL API endpoint for flexible queries
+
+### Key Concepts
+- **Profile**: A persistent record of a visitor/customer with properties, segments, and scores
+- **Event**: An action or occurrence associated with a profile (page view, click, form submit, purchase, custom)
+- **Segment**: A dynamic group of profiles matching certain conditions (e.g., "visited pricing page AND from France")
+- **Rule**: A condition-action pair that fires when an event matches (e.g., "when login event → merge anonymous profile")
+- **Scoring Plan**: A set of rules that add/subtract points to a profile score
+- **Consent**: GDPR consent record with type, status, and timestamp
+
+## Standards Compliance
+
+Apache Unomi is the **reference implementation** of the OASIS Customer Data Platform (CXS) specification being developed at the OASIS Context Server Technical Committee (https://www.oasis-open.org/committees/cxs/).
+
+## Privacy & GDPR Features
+
+- Consent management API (grant, deny, revoke consent per type)
+- Profile anonymization (irreversible removal of PII while keeping behavioral data)
+- Profile deletion (complete removal of all profile data)
+- Data portability (export profile data in JSON)
+- Server-side DoNotTrack support
+- Configurable data retention policies
+- Cookie-less tracking option
+
+## Connectors & Integrations
+
+### Extending Unomi
+- **Groovy Actions (recommended)**: Hot-deployable scripts for custom logic — react to events, update profiles, call external APIs, integrate with CRMs and third-party services. No compilation or restart required. Source: https://github.com/apache/unomi/tree/master/extensions/groovy-actions
+- **Custom Java Plugins (OSGi)**: For advanced needs (custom conditions, persistence types, deep core integration). Full access to the Unomi API. Guide: https://github.com/apache/unomi/blob/master/manual/src/main/asciidoc/writing-plugins.adoc
+
+### Extension Points
+- Custom actions (Groovy recommended, Java for advanced cases)
+- Custom conditions (Java)
+- Custom property types
+- Custom event types
+- REST API extensions
+
+## CDP in an AI-First World
+
+AI models and autonomous agents require clean, unified, real-time customer data. Apache Unomi serves as the **customer data backbone for AI-first architectures**:
+
+### Why a CDP Matters for AI
+- **Context is everything**: LLMs, chatbots, support copilots, and recommendation engines produce dramatically better results when they have access to real customer context (profile properties, segments, recent events, purchase history). Unomi's REST API (`/cxs/context.json`, `/cxs/profiles`) makes this data available in real time.
+- **First-party data advantage**: Third-party cookies are deprecated. Privacy regulations (GDPR, CCPA) restrict data sharing. The most valuable and legally defensible data for AI training and prompt augmentation is first-party data that you collect and control through your own CDP.
+- **Privacy-safe AI processing**: AI processing customer data raises serious compliance risks. Unomi's built-in consent management, anonymization, and data deletion capabilities ensure your AI systems only operate on data customers have explicitly consented to share.
+- **Real-time feedback loop**: AI-powered personalization requires a closed loop — events feed into profiles, profiles feed into AI models, AI decisions feed back as new events. Unomi's event-profile-rules-segment pipeline processes this in real time.
+- **Vendor-neutral architecture**: Unlike proprietary CDPs locked to specific AI providers, Unomi is open source. Connect OpenAI, Anthropic, Google AI, local/self-hosted models, or custom ML pipelines — all via standard REST/JSON.
+
+### AI Integration Patterns
+1. **RAG (Retrieval-Augmented Generation)**: Query Unomi profiles and segments to enrich LLM prompts with customer context
+2. **AI agent tools**: Expose Unomi API as a tool for AI agents (e.g., "look up customer profile", "check segment membership")
+3. **Predictive scoring**: Feed event streams to ML models, write predictions back as profile properties via rules
+4. **Smart segmentation**: Use AI to discover segments from behavioral patterns, create them in Unomi via the segments API
+5. **Conversational AI**: Give chatbots access to the full customer journey for context-aware, personalized conversations
+
+## Ecosystem
+
+### Products Using Apache Unomi
+- **Jahia jExperience** (https://www.jahia.com): Original contributor, uses Unomi as CDP engine in their DXP
+- **Ninetailed Personalization Platform** (https://ninetailed.io): Content personalization platform built on Unomi
+- **Dropsolid Experience Cloud** (https://dropsolid.com): Integrates Unomi for smart segmentation with Drupal CMS and Mautic
+- **Inoyu SaaS**: Fully managed cloud-hosted Unomi service (coming soon)
+
+### Commercial Support Providers
+- **Inoyu** (https://www.inoyu.dev): Founded by original Unomi developer, CDP implementations and extensions
+- **Yupiik** (https://www.yupiik.com): Apache expert team, multiple ASF project contributors
+
+## Community Resources
+
+- **Users Mailing List**: users@unomi.apache.org (subscribe: users-subscribe@unomi.apache.org)
+- **Dev Mailing List**: dev@unomi.apache.org (subscribe: dev-subscribe@unomi.apache.org)
+- **Slack**: #unomi on ASF Slack (https://the-asf.slack.com) — Apache committers sign in directly; others request guest access via users@unomi.apache.org (see https://infra.apache.org/slack.html)
+- **Monthly Meetings**: Online, alternating times for global coverage
+- **JIRA**: https://issues.apache.org/jira/browse/UNOMI
+- **GitHub**: https://github.com/apache/unomi
+
+## Bill of Materials (BOM)
+
+Starting with Unomi 3.0, the project uses a two-layer BOM for dependency management:
+- **unomi-bom** (https://github.com/apache/unomi/blob/master/bom/pom.xml): Main BOM importing Karaf BOM and managing all third-party dependency versions (Jackson, CXF, Elasticsearch, Groovy, GraphQL, etc.)
+- **unomi-bom-artifacts** (https://github.com/apache/unomi/blob/master/bom/artifacts/pom.xml): Manages all Unomi module artifacts for consistent versioning in custom extensions
+
+Extension developers can import `unomi-bom` in their `pom.xml` to automatically align with tested dependency versions.
+
+## Quick Start (Docker)
+
+```yaml
+version: '3.8'
+services:
+  elasticsearch:
+    image: docker.elastic.co/elasticsearch/elasticsearch:9.1.3
+    environment:
+      - discovery.type=single-node
+      - xpack.security.enabled=false
+    ports:
+      - 9200:9200
+  unomi:
+    image: apache/unomi:3.0.0
+    environment:
+      - UNOMI_ELASTICSEARCH_ADDRESSES=elasticsearch:9200
+    ports:
+      - 8181:8181
+      - 9443:9443
+    depends_on:
+      - elasticsearch
+```
+
+Run with `docker-compose up`, verify at https://localhost:9443/cxs/cluster (credentials: karaf/karaf).
+
+## Frequently Asked Questions
+
+- **What is Apache Unomi?** An open source Customer Data Platform (CDP) managed by the Apache Software Foundation. It collects customer data from any source, builds unified profiles, enables real-time segmentation and personalization, and includes built-in GDPR compliance.
+- **How does Unomi differ from proprietary CDPs?** It is 100% open source (Apache License 2.0), self-hosted, vendor-neutral, and extensible through OSGi plugins. No vendor lock-in, no per-profile pricing.
+- **What storage backends are supported?** Elasticsearch (9.x) in the current release. OpenSearch support has been committed to the main branch and is expected in the next release.
+- **Does Unomi have a GraphQL API?** Yes, Unomi 3.0 includes a GraphQL API alongside the REST API for flexible querying of profiles, events, segments, and rules.
+- **Can I use Unomi with AI systems?** Yes. Feed unified customer profiles, segments, and event streams to AI agents, LLMs, chatbots, recommendation engines, and ML models via REST or GraphQL API. Built-in consent management ensures AI only processes consented data.
+- **What is the OASIS CXS standard?** A Customer Data Platform specification from OASIS. Apache Unomi is its reference implementation.
+- **How do I extend Unomi?** Through OSGi bundles (Java), Groovy scripts, JSON descriptors for custom conditions/actions, and REST API extensions.
+- **What is the Bill of Materials (BOM)?** Starting with Unomi 3.0, the project provides a Maven BOM (`unomi-bom`) to centralize dependency versions for extension developers.
+
+## History
+
+- **2014**: Project started at Jahia
+- **2015**: Entered Apache Incubator
+- **2019**: Graduated to Apache Top-Level Project
+- **2022**: Version 2.0.0 released (major architecture update)
+- **2025**: Version 3.0.0 released (current stable, major upgrade to Karaf 4.4, new Elasticsearch Java client 9.x, GraphQL API, Bill of Materials for dependency management). OpenSearch support committed to main branch (expected in next release)
diff --git a/src/main/webapp/llms.txt b/src/main/webapp/llms.txt
new file mode 100644
index 0000000..c0af81f
--- /dev/null
+++ b/src/main/webapp/llms.txt
@@ -0,0 +1,102 @@
+# Apache Unomi - Open Source Customer Data Platform
+
+> Apache Unomi (pronounced "You know me") is a Java open source Customer Data Platform (CDP) hosted at the Apache Software Foundation. It manages customer, lead, and visitor data, enables real-time personalization of customer experiences, and provides built-in privacy management including GDPR compliance. It is the reference implementation of the OASIS Customer Data Platform (CDP) specification.
+
+## Key Facts
+
+- **Project**: Apache Unomi
+- **Type**: Customer Data Platform (CDP)
+- **License**: Apache License 2.0
+- **Language**: Java
+- **Runtime**: Apache Karaf (OSGi)
+- **Storage**: Elasticsearch (9.x); OpenSearch support coming in next release
+- **API**: REST/JSON & GraphQL
+- **Current Stable Version**: 3.0.0
+- **Website**: https://unomi.apache.org
+- **Source Code**: https://github.com/apache/unomi
+- **Issue Tracker**: https://issues.apache.org/jira/browse/UNOMI
+- **Standard**: Reference implementation of OASIS CXS CDP specification
+
+## Core Features
+
+- **Profile Management**: Unified customer profiles aggregated from multiple data sources (web, mobile, CRM, IoT)
+- **Event Tracking**: Collect events from any source via REST API (page views, clicks, logins, custom events)
+- **Real-time Segmentation**: Dynamic audience segments based on profile properties and event history
+- **Scoring**: Lead scoring and engagement scoring with configurable rules
+- **Rules Engine**: Built-in rule engine that triggers actions when conditions are met on events or profiles
+- **Privacy / GDPR**: Consent management, data anonymization, profile deletion, data portability
+- **Plugin Architecture**: Extend functionality through OSGi plugins, Groovy actions, and JSON descriptors
+- **Connectors**: MailChimp and custom connectors via plugin API (Salesforce connector was deprecated)
+- **GraphQL API**: Flexible query API for profiles, events, segments, and rules
+- **Multi-backend**: OpenSearch support is in development (committed to main branch, coming in next release)
+
+## Use Cases
+
+1. **Web Personalization**: Track visitors on CMS-managed websites and personalize content based on profile data and segments
+2. **Mobile Analytics**: Backend for native mobile apps to collect events, track user journeys, and build profiles
+3. **Centralized Profile Management**: Aggregate customer data from CRM, support, commerce, and other systems into unified profiles
+4. **AI & Machine Learning Data Layer**: Serve as the real-time customer data backbone for AI agents, chatbots, recommendation engines, and predictive models — feeding unified profiles, segments, and event streams via REST API with privacy-safe consent management
+
+## CDP in an AI-First World
+
+AI agents and language models are only as good as the data they can access. Apache Unomi provides the real-time, privacy-compliant customer data foundation that AI systems need:
+
+- **Context for AI agents**: Feed rich customer profiles, segments, and behavioral event history to LLMs, support copilots, and autonomous agents via REST API
+- **First-party data advantage**: As third-party cookies disappear, the first-party data collected through your own CDP becomes the most valuable and trustworthy source for AI training and context
+- **Privacy-safe AI**: Built-in GDPR consent management ensures AI systems only process data customers have explicitly consented to share
+- **Real-time decisioning**: AI-powered personalization requires millisecond-level context — Unomi processes events and updates profiles in real time
+- **Open & vendor-neutral**: Unlike proprietary CDPs locked to specific AI vendors, Unomi lets you connect any AI system (OpenAI, Anthropic, local models, custom ML pipelines)
+
+## Getting Started
+
+The fastest way to try Apache Unomi is with Docker:
+
+```
+docker-compose up
+```
+
+Using the provided docker-compose.yml with Elasticsearch and Apache Unomi 3.0.0.
+
+Full getting started guide: https://unomi.apache.org/get-started.html
+Docker quick start: https://unomi.apache.org/get-started.html#quickstart
+
+## Documentation
+
+- Main documentation: https://unomi.apache.org/documentation.html
+- Latest manual: https://unomi.apache.org/manual/latest/index.html
+- REST API reference: https://unomi.apache.org/rest-api-doc/index.html
+- Java API (Javadoc): https://unomi.apache.org/unomi-api/apidocs/index.html
+
+## Community & Support
+
+- **Users mailing list**: users@unomi.apache.org (subscribe: users-subscribe@unomi.apache.org)
+- **Dev mailing list**: dev@unomi.apache.org (subscribe: dev-subscribe@unomi.apache.org)
+- **Slack**: #unomi channel on ASF Slack (https://the-asf.slack.com) — Apache committers sign in with @apache.org email; others can request a guest invitation via users@unomi.apache.org (see https://infra.apache.org/slack.html)
+- **Monthly meetings**: The community meets monthly online
+- **JIRA**: https://issues.apache.org/jira/browse/UNOMI
+
+## Ecosystem
+
+### Products Built on Apache Unomi
+- **Jahia jExperience**: CDP and Digital Experience Platform (initial contributor of Unomi) — https://www.jahia.com
+- **Ninetailed Personalization Platform**: Content personalization platform using Unomi — https://ninetailed.io
+- **Dropsolid Experience Cloud**: DXP with Drupal CMS, Mautic, and Unomi CDP — https://dropsolid.com
+- **Inoyu SaaS**: Fully managed cloud-hosted Unomi service (coming soon)
+
+### Commercial Support
+- **Inoyu**: CDP implementations, commercial extensions and support — https://www.inoyu.dev
+- **Yupiik**: Expert team and Apache contributors — https://www.yupiik.com
+
+## Architecture
+
+Apache Unomi is a REST server. Data sources (web, mobile, CRM, IoT) send events via the REST API. The processing engine stores data in Elasticsearch, evaluates segments and rules in real-time, and outputs personalization decisions, scores, and data exports. All communication is JSON over HTTP/HTTPS. A GraphQL API is also available for flexible querying of profiles, events, segments, and rules.
+
+## Frequently Asked Questions
+
+- **What is Apache Unomi?** An open source Customer Data Platform (CDP) managed by the Apache Software Foundation that unifies customer data, enables real-time segmentation and personalization, and provides built-in GDPR compliance.
+- **How do I get started?** Use Docker Compose for the fastest setup: https://unomi.apache.org/get-started.html#quickstart
+- **What storage does it use?** Elasticsearch (9.x). OpenSearch support is in development and will be available in the next release.
+- **Does it have a GraphQL API?** Yes, Unomi 3.0 includes a GraphQL API alongside the REST API.
+- **Is it GDPR compliant?** Yes, with built-in consent management, data anonymization, profile deletion, and data portability.
+- **Can I use it with AI?** Yes — feed unified customer profiles and event data to AI agents, LLMs, recommendation engines, and predictive models via the REST or GraphQL API.
+- **What is the OASIS CXS standard?** A Customer Data Platform specification from OASIS. Apache Unomi is its reference implementation.
diff --git a/src/main/webapp/privacy-policy.html b/src/main/webapp/privacy-policy.html
index 1c4e6bd..a82e1f4 100644
--- a/src/main/webapp/privacy-policy.html
+++ b/src/main/webapp/privacy-policy.html
@@ -1,34 +1,53 @@
 ---
 title: Privacy Policy
+description: "Apache Unomi website privacy policy. Information about data collection, analytics, and cookie usage."
+keywords: "Apache Unomi privacy policy, website privacy, data collection, cookies, Matomo analytics"
 layout: default
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
+<!-- Page Header -->
+<section class="page-header">
+    <div class="container">
+        <h1>Privacy Policy</h1>
+        <p class="lead">How we handle data on the Apache Unomi website.</p>
+    </div>
+</section>
 
-      <div class="container">
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-8">
+                <h2 class="h5 mb-3">Information We Collect</h2>
+                <p>The Apache Unomi website uses <strong>Apache Matomo</strong> for privacy-respecting analytics. We have configured Matomo with:</p>
+                <ul class="mb-4">
+                    <li><strong>DoNotTrack</strong> is honored &mdash; if your browser sends a DNT header, no analytics data is collected</li>
+                    <li><strong>No cookies</strong> are set by analytics</li>
+                    <li>IP addresses are anonymized</li>
+                </ul>
 
-        <!-- CONTRIBUTE -->
-        <div class="row mb-5 mt-5">
-            <div class="col">
-              <h2 class="pb-3 mb-4 font-italic border-bottom"><i class="fas fa-eye"></i> Privacy Policy</h2>
-              <p>Information about your use of this website is collected using server access logs and a tracking cookie. The collected information consists of the following :</p>
-                <ol>
-                    <li>The IP address from which you access the website</li>
-                    <li>The type of browser and operating system you use to access our site</li>
-                    <li>The date and time you access our site</li>
-                    <li>The pages you visit and</li>
-                    <li>The addresses of pages from where you followed a link to our site.</li>
-                </ol>
+                <p>Our web server automatically records standard access log information including:</p>
+                <ul class="mb-4">
+                    <li>Anonymized IP address</li>
+                    <li>Date and time of request</li>
+                    <li>Pages visited</li>
+                    <li>Browser type and operating system</li>
+                    <li>Referring URL</li>
+                </ul>
 
-              <p>
-                Part of this information is gathered using a tracking cookie set by the <a target="_blank" href="http://www.google.com/analytics/">Google Analytics</a> service and handled by Google as described in their <a target="_blank" href="http://www.google.com/policies/privacy/">privacy policy</a>. See your browser documentation for instructions on how to disable the cookie if you prefer not to share this data with Google.<br/>
-                <br/>
-                We use the gathered information to help us make our site more useful to visitors and to better understand how and when our site is used. We do not track or collect personally identifiable information or associate gathered data with any personally identifying information from other sources.<br/>
-                <br/>
-                By using this website, you consent to the collection of this data in the manner and for the purpose described above.
-              </p>
+                <h2 class="h5 mb-3">How We Use This Information</h2>
+                <p>This information is used solely to improve the Apache Unomi website and understand how visitors use it. It is never sold, shared, or used for advertising.</p>
+
+                <h2 class="h5 mb-3">Third-Party Services</h2>
+                <p>This website loads resources from:</p>
+                <ul class="mb-4">
+                    <li><a href="https://fonts.google.com" target="_blank" rel="noopener">Google Fonts</a> (Inter typeface)</li>
+                    <li><a href="https://www.jsdelivr.com" target="_blank" rel="noopener">jsDelivr CDN</a> (Bootstrap, Mermaid)</li>
+                </ul>
+                <p>These services may collect standard HTTP request data as described in their respective privacy policies.</p>
+
+                <h2 class="h5 mb-3">Contact</h2>
+                <p>For questions about this policy, contact the Apache Unomi community via the <a href="/community/index.html">mailing lists</a>.</p>
             </div>
         </div>
-      </div>
+    </div>
+</section>
diff --git a/src/main/webapp/resources.html b/src/main/webapp/resources.html
index 0a43a72..9e437da 100644
--- a/src/main/webapp/resources.html
+++ b/src/main/webapp/resources.html
@@ -1,89 +1,278 @@
 ---
-title: Resources
+title: Videos &amp; Resources
+description: "Apache Unomi learning resources: conference talks, video tutorials, articles, slides, and community presentations."
+keywords: "Apache Unomi resources, videos, articles, presentations, CDP tutorials, Unomi talks, learning resources"
 layout: default
+structured_data: >
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "CollectionPage",
+        "name": "Apache Unomi Videos & Resources",
+        "description": "Conference talks, tutorials, articles, and slides about the Apache Unomi Customer Data Platform.",
+        "url": "https://unomi.apache.org/resources.html",
+        "mainEntity": {
+            "@type": "ItemList",
+            "name": "Apache Unomi Video Resources",
+            "numberOfItems": 8,
+            "itemListElement": [
+                { "@type": "ListItem", "position": 1, "name": "A CDP in an AI-first World — Apache Unomi", "url": "https://www.youtube.com/watch?v=UrhNhXHugKc" },
+                { "@type": "ListItem", "position": 2, "name": "Apache Unomi 3 — The Open Source CDP at Scale", "url": "https://www.youtube.com/watch?v=ON0EskhpuME" },
+                { "@type": "ListItem", "position": 3, "name": "ApacheCon 2024 — Apache Unomi: The Open Source CDP", "url": "https://www.youtube.com/watch?v=YqPkUhBlcrs" },
+                { "@type": "ListItem", "position": 4, "name": "Apache Unomi — What's New in the Latest Releases", "url": "https://www.youtube.com/watch?v=_6vfuWocQBs" },
+                { "@type": "ListItem", "position": 5, "name": "Apache Unomi Past, Present, and Future", "url": "https://www.youtube.com/watch?v=uNbKW29FCnE" },
+                { "@type": "ListItem", "position": 6, "name": "ApacheCon 2021 — Introduction to Apache Unomi", "url": "https://www.youtube.com/watch?v=ynluCYocfG4" },
+                { "@type": "ListItem", "position": 7, "name": "ApacheCon 2020 — Building a Customer Data Platform with Apache Unomi", "url": "https://www.youtube.com/watch?v=_EXJQJ69niA" },
+                { "@type": "ListItem", "position": 8, "name": "First Apache Unomi Meetup", "url": "https://www.youtube.com/watch?v=f4q4fDkqBDQ" }
+            ]
+        }
+    }
+    </script>
 ---
 
-      <div class="container pt-5 pb-5">
-        <h2 class="pb-2 mb-2">Learn more about <span class="text-muted">Apache Unomi</span></h2>
+<!-- Page Header -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Resources</p>
+        <h1>Videos &amp; Resources</h1>
+        <p class="lead">Conference talks, tutorials, articles, and slides to help you learn Apache Unomi.</p>
+    </div>
+</section>
 
-          <div class="row pb-2 pt-4">
-              <div class="col-md-12">
-                  <h5 class="project-heading">Videos</h5>
-                  <div class="row pb-2 pt-4">
-                      <div class="col-md-6">
-                          <h6 class="pb-2 pt-2">ApacheCon Chicago Roadshow 2019 - Apache Unomi - Customer Segmentation
-                              and Marketing Automation with Apache Unomi</h6>
-                          <p>In this session, Michael Ghen from Benefits Data Trust; Saint Josephs University talks
-                              about how customer data is collected across the organization in different technologies
-                              like client relationship management systems and mobile application databases. A customer
-                              data platform (CDP) helps business users collect all the customer data in one place,
-                              providing a complete view of the customers. Apache Unomi is an open source CDP that is
-                              attractive to both business and technical stakeholders. Developers will appreciate that it
-                              uses ElasticSearch for data storage and offers a REST API interface. Business analysts
-                              will appreciate persistent and consolidated profiles for all audiences that integrate with
-                              big data systems. Apache Unomi supports real-time decisioning using a rules feature and
-                              provides an easy way to develop custom plugins to add functionality. This session will
-                              look at the advantages, business cases, and logical architecture of Apache Unomi. The goal
-                              of this session is to introduce the audience to Apache Unomi and provide a technical
-                              demonstration of profiles, conditions, actions, rules, segments, and plugins. This session
-                              is accompanied by Github repositories where you can download and run some demos using
-                              Apache Unomi: <a href="https://github.com/mikeghen/unomi-docker">https://github.com/mikeghen/unomi-docker</a> and
-                              <a href="https://github.com/mikeghen/unomi-tutorial">https://github.com/mikeghen/unomi-tutorial</a>. Apache Unomi is a powerful new project and with
-                              this quick introduction, you'll be able to decide whether or not Apache Unomi will be
-                              right for your business needs and you'll be able to quick get a proof of concept up and
-                              running.</p>
-                          <a class="btn btn-primary mt-3" target="_blank"
-                             href="https://www.slideshare.net/MikeGhen/customer-segmentation-and-marketing-automation-with-apache-unomi">View
-                              in slideshare &raquo;</a>
-                      </div>
-                      <div class="col-md-6">
-                          <a class="btn btn-primary mt-3" target="_blank" href="https://www.youtube.com/watch?v=ut2ReqhMl2Y">Watch now</a>
-                      </div>
-                  </div>
-                  <hr class="featurette-divider">
-                  <div class="row pb-2 pt-4">
-                      <div class="col-md-6">
-                          <h6 class="pb-2 pt-2">ApacheCon NA 2018 - Apache Unomi - An open source customer data platform</h6>
-                          <p>In this session, Serge presents Apache Unomi - an open source customer data platform project hosted at the Apache Software Foundation. This session was part of the ApacheCON NA 2018 held in Montreal.</p>
-                          <a class="btn btn-primary mt-3" target="_blank" href="https://www.slideshare.net/sergehuber/apachecon-na-2018-apache-unomi-an-open-source-customer-data-platformapache-unomi-cdp-presentation">View in slideshare &raquo;</a>
-                      </div>
-                      <div class="col-md-6">
-                          <a class="btn btn-primary mt-3" target="_blank" href="https://www.youtube.com/watch?v=XO1cLSgeRsw">Watch now</a>
-                      </div>
-                  </div>
-                  <hr class="featurette-divider">
-                  <div class="row pb-2 pt-4">
-                      <div class="col-md-6">
-                          <h6 class="pb-2 pt-2">ApacheCon 2015 - The Apache Unomi Project In-depth</h6>
-                          <p>Serge Huber, Jahia’s CTO, discusses the new Apache Unomi project that was started in September 2015 and then demonstrates how it can be used to build integrated solutions that use Internet Of Thing devices and server-side technologies to build personalized user experiences.</p>
-                          <a class="btn btn-primary mt-3" target="_blank" href="https://www.slideshare.net/Jahia/apache-unomi-project-indepth">View in slideshare &raquo;</a>
-                      </div>
-                      <div class="col-md-6">
-                          <a class="btn btn-primary mt-3" target="_blank" href="https://www.youtube.com/watch?v=y4uNwnVMVyg">Watch now</a>
-                      </div>
-                  </div>
-                  <hr class="featurette-divider">
+<!-- Videos -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-7">
+                <p class="section-label">Watch</p>
+                <h2>Conference Talks</h2>
+            </div>
+        </div>
+        <div class="row g-4">
 
-                  <h5 class="project-heading" id="tutorials">Tutorials</h5>
-                  <ul>
-                    <li><p><a href="tutorial.html#ubuntu-tutorial">Running and Interfacing with Apache Unomi 1.3 on Ubuntu</a></p></li>
-                    <li><p><a href="tutorial.html#docker-tutorial">Running Unomi 1.3 using Docker</a></p></li>
-                  </ul>
+            <!-- 1. Community Over Code NA 2025 — Sep 29, 2025 -->
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <a href="https://www.youtube.com/watch?v=_6vfuWocQBs" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                        <img src="/assets/images/videos/coc-2025-_6vfuWocQBs.jpg" alt="From Complaining Customers to Brand Promoters - Community Over Code 2025" class="w-100 h-100 img-cover" loading="lazy">
+                        <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay-lg">
+                            <i class="bi bi-play-fill text-white play-icon"></i>
+                        </span>
+                    </a>
+                    <span class="badge badge-primary mb-2">Community Over Code 2025</span>
+                    <h3 class="h6 fw-semibold">From Complaining Customers to Brand Promoters</h3>
+                    <p class="small text-muted mb-3">Real-time AI + customer data demo combining Unomi with Bluesky, Skype, an LLM, an e-commerce site, Inoyu&rsquo;s CDP UI, and HubSpot to turn a dissatisfied customer into a promoter.</p>
+                    <a href="https://www.youtube.com/watch?v=_6vfuWocQBs" target="_blank" rel="noopener" class="btn btn-primary btn-sm"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                </div>
+            </div>
 
-                  <hr class="featurette-divider">
+            <!-- 2. Community Over Code NA 2025 — Sep 29, 2025 -->
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <a href="https://www.youtube.com/watch?v=ON0EskhpuME" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                        <img src="/assets/images/videos/coc-2025-ON0EskhpuME.jpg" alt="How AI + Customer Data Platforms Create Unlimited Personalized Memory - Community Over Code 2025" class="w-100 h-100 img-cover" loading="lazy">
+                        <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay-lg">
+                            <i class="bi bi-play-fill text-white play-icon"></i>
+                        </span>
+                    </a>
+                    <span class="badge badge-primary mb-2">Community Over Code 2025</span>
+                    <h3 class="h6 fw-semibold">AI + CDP = Unlimited Personalized Memory</h3>
+                    <p class="small text-muted mb-3">How combining a Customer Data Platform like Apache Unomi with an LLM creates unlimited, personalized, and privacy-compliant memory for AI conversations.</p>
+                    <a href="https://www.youtube.com/watch?v=ON0EskhpuME" target="_blank" rel="noopener" class="btn btn-primary btn-sm"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                </div>
+            </div>
 
-                  <h5 class="project-heading" id="articlesAndSlides">Articles & slides</h5>
-                  <ul>
-                      <li><p><a href="https://medium.com/@otavio/customizing-the-user-experience-of-your-product-with-open-source-tech-218e27415179" target="_blank">Customizing the User Experience of your product with Open Source Tech</a></p></li>
-                      <li><p><a href="https://medium.com/@otavio/unomi-out-of-the-box-d4abdd5d3cb1" target="_blank">Unomi out of the box</a></p></li>
-                      <li><p><a href="https://medium.com/@otavio/giving-unomi-intelligence-a5a11053d595" target="_blank">Giving Unomi Intelligence</a></p></li>
-                      <li><p><a href="https://medium.com/@otavio/talking-to-the-unomi-events-api-905b12d624ca" target="_blank">Talking to the Unomi events API</a></p></li>
-                      <li><p><a href="https://www.linux.com/news/unomi-bridge-between-privacy-and-digital-marketing" target="_blank">Linux.com : Unomi: A Bridge Between Privacy and Digital Marketing</a></p></li>
-                      <li><p><a href="https://www.slideshare.net/sergehuber/introducing-apache-unomi-javaone-2015-session" target="_blank">Introducing Apache Unomi, JavaOne 2015</a> This presentation has a cool example of integrating Apache Unomi with IoT devices (Internet of Things) such as beacons, smartphones and even televisions</p></li>
-                      <li><p><a href="https://www.slideshare.net/sergehuber/apache-unomi-in-depth-apachecon-eu-2015-session" target="_blank">Apache Unomi In-depth, ApacheCon EU 2015</a></p></li>
-                  </ul>
+            <!-- 3. OpenSearch Contribution — Jan 14, 2025 -->
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <a href="https://www.youtube.com/watch?v=uNbKW29FCnE" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                        <img src="/assets/images/videos/opensearch-uNbKW29FCnE.jpg" alt="Apache Unomi OpenSearch Contribution Presentation" class="w-100 h-100 img-cover" loading="lazy">
+                        <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay-lg">
+                            <i class="bi bi-play-fill text-white play-icon"></i>
+                        </span>
+                    </a>
+                    <span class="badge badge-primary mb-2">Technical Deep Dive &bull; Jan 2025</span>
+                    <h3 class="h6 fw-semibold">Apache Unomi OpenSearch Contribution</h3>
+                    <p class="small text-muted mb-3">Presents the changes proposed to add OpenSearch support to Apache Unomi, including the dual persistence architecture and new tooling.</p>
+                    <a href="https://www.youtube.com/watch?v=uNbKW29FCnE" target="_blank" rel="noopener" class="btn btn-primary btn-sm"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                </div>
+            </div>
 
-              </div>
-          </div><!-- videos -->
+            <!-- 3. Claude AI + MCP Demo — Dec 2, 2024 -->
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <a href="https://www.youtube.com/watch?v=YqPkUhBlcrs" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                        <img src="/assets/images/videos/mcp-demo-YqPkUhBlcrs.jpg" alt="Claude AI integration with Apache Unomi using MCP" class="w-100 h-100 img-cover" loading="lazy">
+                        <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay-lg">
+                            <i class="bi bi-play-fill text-white play-icon"></i>
+                        </span>
+                    </a>
+                    <span class="badge badge-primary mb-2">AI Integration Demo &bull; Dec 2024</span>
+                    <h3 class="h6 fw-semibold">Claude AI + Apache Unomi via MCP</h3>
+                    <p class="small text-muted mb-3">Demo of Anthropic&rsquo;s Claude Desktop integrated with Apache Unomi using the Model Context Protocol to deliver personalized e-commerce experiences through natural language.</p>
+                    <a href="https://www.youtube.com/watch?v=YqPkUhBlcrs" target="_blank" rel="noopener" class="btn btn-primary btn-sm"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                </div>
+            </div>
 
-      </div>
+            <!-- 4. Community Meetup — Nov 18, 2021 -->
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <a href="https://www.youtube.com/watch?v=UrhNhXHugKc" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                        <img src="/assets/images/videos/meetup-2021-UrhNhXHugKc.jpg" alt="Apache Unomi November 2021 Meetup" class="w-100 h-100 img-cover" loading="lazy">
+                        <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay-lg">
+                            <i class="bi bi-play-fill text-white play-icon"></i>
+                        </span>
+                    </a>
+                    <span class="badge badge-primary mb-2">Community Meetup 2021</span>
+                    <h3 class="h6 fw-semibold">First Apache Unomi Community Meetup</h3>
+                    <p class="small text-muted mb-3">State of Unomi by Serge Huber, how Jahia and Dropsolid use Unomi, Apache Karaf 5 by Jean-Baptiste Onofr&eacute;, and open Q&amp;A.</p>
+                    <a href="https://www.youtube.com/watch?v=UrhNhXHugKc" target="_blank" rel="noopener" class="btn btn-primary btn-sm"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                </div>
+            </div>
+
+            <!-- 5. ApacheCon 2019 -->
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <a href="https://www.youtube.com/watch?v=ut2ReqhMl2Y" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                        <img src="/assets/images/videos/apachecon-2019-ut2ReqhMl2Y.jpg" alt="Customer Segmentation &amp; Marketing Automation - ApacheCon 2019" class="w-100 h-100 img-cover" loading="lazy">
+                        <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay-lg">
+                            <i class="bi bi-play-fill text-white play-icon"></i>
+                        </span>
+                    </a>
+                    <span class="badge badge-primary mb-2">ApacheCon 2019</span>
+                    <h3 class="h6 fw-semibold">Customer Segmentation &amp; Marketing Automation</h3>
+                    <p class="small text-muted mb-3">Michael Ghen demonstrates profiles, conditions, actions, rules, segments, and plugins with live demos.</p>
+                    <div class="d-flex flex-wrap gap-2">
+                        <a href="https://www.youtube.com/watch?v=ut2ReqhMl2Y" target="_blank" rel="noopener" class="btn btn-primary btn-sm"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                        <a href="https://www.slideshare.net/MikeGhen/customer-segmentation-and-marketing-automation-with-apache-unomi" target="_blank" rel="noopener" class="btn btn-outline-primary btn-sm"><i class="bi bi-easel me-1"></i> Slides</a>
+                    </div>
+                </div>
+            </div>
+
+            <!-- 6. ApacheCon 2018 -->
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <a href="https://www.youtube.com/watch?v=XO1cLSgeRsw" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                        <img src="/assets/images/videos/apachecon-2018-XO1cLSgeRsw.jpg" alt="Apache Unomi &mdash; An Open Source CDP - ApacheCon 2018" class="w-100 h-100 img-cover" loading="lazy">
+                        <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay-lg">
+                            <i class="bi bi-play-fill text-white play-icon"></i>
+                        </span>
+                    </a>
+                    <span class="badge badge-primary mb-2">ApacheCon 2018</span>
+                    <h3 class="h6 fw-semibold">Apache Unomi &mdash; An Open Source CDP</h3>
+                    <p class="small text-muted mb-3">Serge Huber presents the architecture, features, and roadmap of Apache Unomi at ApacheCon Montreal.</p>
+                    <div class="d-flex flex-wrap gap-2">
+                        <a href="https://www.youtube.com/watch?v=XO1cLSgeRsw" target="_blank" rel="noopener" class="btn btn-primary btn-sm"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                        <a href="https://www.slideshare.net/sergehuber/apachecon-na-2018-apache-unomi-an-open-source-customer-data-platformapache-unomi-cdp-presentation" target="_blank" rel="noopener" class="btn btn-outline-primary btn-sm"><i class="bi bi-easel me-1"></i> Slides</a>
+                    </div>
+                </div>
+            </div>
+
+            <!-- 7. ApacheCon 2015 -->
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <a href="https://www.youtube.com/watch?v=y4uNwnVMVyg" target="_blank" rel="noopener" class="d-block position-relative mb-3 rounded overflow-hidden video-thumbnail">
+                        <img src="/assets/images/videos/apachecon-2015-y4uNwnVMVyg.jpg" alt="Apache Unomi Project In-Depth - ApacheCon 2015" class="w-100 h-100 img-cover" loading="lazy">
+                        <span class="position-absolute top-50 start-50 translate-middle d-flex align-items-center justify-content-center rounded-circle play-overlay-lg">
+                            <i class="bi bi-play-fill text-white play-icon"></i>
+                        </span>
+                    </a>
+                    <span class="badge badge-primary mb-2">ApacheCon 2015</span>
+                    <h3 class="h6 fw-semibold">Apache Unomi Project In-Depth</h3>
+                    <p class="small text-muted mb-3">Serge Huber discusses the project and demonstrates IoT device integration with personalized user experiences.</p>
+                    <div class="d-flex flex-wrap gap-2">
+                        <a href="https://www.youtube.com/watch?v=y4uNwnVMVyg" target="_blank" rel="noopener" class="btn btn-primary btn-sm"><i class="bi bi-play-circle me-1"></i> Watch</a>
+                        <a href="https://www.slideshare.net/Jahia/apache-unomi-project-indepth" target="_blank" rel="noopener" class="btn btn-outline-primary btn-sm"><i class="bi bi-easel me-1"></i> Slides</a>
+                    </div>
+                </div>
+            </div>
+
+        </div>
+    </div>
+</section>
+
+<hr class="section-divider">
+
+<!-- Articles -->
+<section class="section" id="articlesAndSlides">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-7">
+                <p class="section-label">Read</p>
+                <h2>Articles &amp; Slides</h2>
+            </div>
+        </div>
+        <div class="row g-3 justify-content-center">
+            <div class="col-lg-8">
+                <ul class="list-unstyled">
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-file-earmark-text text-primary me-3 mt-1"></i>
+                        <div>
+                            <a href="https://medium.com/@otavio/customizing-the-user-experience-of-your-product-with-open-source-tech-218e27415179" target="_blank" rel="noopener" class="fw-semibold small">Customizing the User Experience with Open Source Tech</a>
+                            <p class="small text-muted mb-0">Explains what a CDP is and why you don&rsquo;t need to be Google or Facebook to personalize content. Introduces Unomi&rsquo;s modular OSGi architecture, rules, segments, and how it compares to proprietary alternatives. <span class="text-muted">&mdash; Ot&aacute;vio Machado, Medium, 2018</span></p>
+                        </div>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-file-earmark-text text-primary me-3 mt-1"></i>
+                        <div>
+                            <a href="https://medium.com/@otavio/unomi-out-of-the-box-d4abdd5d3cb1" target="_blank" rel="noopener" class="fw-semibold small">Unomi Out of the Box</a>
+                            <p class="small text-muted mb-0">Quick-start guide showing how to bootstrap Unomi from a binary distribution or source code, validate it&rsquo;s running, and links to the rest of the tutorial series. <span class="text-muted">&mdash; Ot&aacute;vio Machado, Medium, 2018</span></p>
+                        </div>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-file-earmark-text text-primary me-3 mt-1"></i>
+                        <div>
+                            <a href="https://medium.com/@otavio/giving-unomi-intelligence-a5a11053d595" target="_blank" rel="noopener" class="fw-semibold small">Giving Unomi Intelligence</a>
+                            <p class="small text-muted mb-0">Deep dive into Unomi&rsquo;s rule engine: how rules, conditions, actions, and segments work together. Includes Java code examples of built-in evaluators and how to create custom condition and action plugins. <span class="text-muted">&mdash; Ot&aacute;vio Machado, Medium, 2018</span></p>
+                        </div>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-file-earmark-text text-primary me-3 mt-1"></i>
+                        <div>
+                            <a href="https://medium.com/@otavio/talking-to-the-unomi-events-api-905b12d624ca" target="_blank" rel="noopener" class="fw-semibold small">Talking to the Unomi Events API</a>
+                            <p class="small text-muted mb-0">Walkthrough of Unomi&rsquo;s event endpoints (<code>context.js</code>, <code>context.json</code>, <code>eventcollector</code>). Shows request/response formats for sending user events and retrieving profile data with segments. <span class="text-muted">&mdash; Ot&aacute;vio Machado, Medium, 2018</span></p>
+                        </div>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-file-earmark-text text-primary me-3 mt-1"></i>
+                        <div>
+                            <a href="https://www.linux.com/news/unomi-bridge-between-privacy-and-digital-marketing" target="_blank" rel="noopener" class="fw-semibold small">Unomi: A Bridge Between Privacy and Digital Marketing</a>
+                            <p class="small text-muted mb-0">Interview-driven article on Unomi&rsquo;s role in balancing user privacy with personalization. Covers the OASIS Context Server standard, Unomi&rsquo;s acceptance into the Apache Incubator, and the growing need for ethical data handling. <span class="text-muted">&mdash; Linux.com</span></p>
+                        </div>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-easel text-primary me-3 mt-1"></i>
+                        <div>
+                            <a href="https://www.slideshare.net/sergehuber/introducing-apache-unomi-javaone-2015-session" target="_blank" rel="noopener" class="fw-semibold small">Introducing Apache Unomi &mdash; JavaOne 2015</a>
+                            <p class="small text-muted mb-0">47 slides covering Unomi&rsquo;s architecture, privacy features, and the OASIS Context Server standard. Features a live IoT demo integrating beacons, an iOS app, and Apple TV digital signage with Unomi. <span class="text-muted">&mdash; Serge Huber, SlideShare</span></p>
+                        </div>
+                    </li>
+                    <li class="d-flex align-items-start mb-3">
+                        <i class="bi bi-easel text-primary me-3 mt-1"></i>
+                        <div>
+                            <a href="https://www.slideshare.net/sergehuber/apache-unomi-in-depth-apachecon-eu-2015-session" target="_blank" rel="noopener" class="fw-semibold small">Apache Unomi In-Depth &mdash; ApacheCon EU 2015</a>
+                            <p class="small text-muted mb-0">43-slide technical deep dive into Unomi&rsquo;s Karaf-based architecture, services (profiles, privacy, queries, segments), event flow, rules engine, and plugin system. <span class="text-muted">&mdash; Serge Huber, SlideShare</span></p>
+                        </div>
+                    </li>
+                </ul>
+            </div>
+        </div>
+    </div>
+</section>
+
+<!-- Tutorials link -->
+<section class="section section-alt" id="tutorials">
+    <div class="container">
+        <div class="row justify-content-center text-center">
+            <div class="col-lg-7">
+                <div class="feature-icon feature-icon-lg mx-auto mb-3"><i class="bi bi-mortarboard"></i></div>
+                <h2 class="h4">Step-by-Step Tutorials</h2>
+                <p class="text-muted mb-3">Hands-on guides for running Apache Unomi on different platforms.</p>
+                <div class="d-flex flex-wrap justify-content-center gap-2">
+                    <a href="/get-started.html#quickstart" class="btn btn-primary">Docker Quick Start (Recommended)</a>
+                    <a href="/tutorial.html" class="btn btn-outline-primary">Full Tutorial</a>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
diff --git a/src/main/webapp/robots.txt b/src/main/webapp/robots.txt
new file mode 100644
index 0000000..32c6357
--- /dev/null
+++ b/src/main/webapp/robots.txt
@@ -0,0 +1,11 @@
+# Apache Unomi Website - https://unomi.apache.org
+User-agent: *
+Allow: /
+
+# Sitemap
+Sitemap: https://unomi.apache.org/sitemap.xml
+
+# AI/LLM Information Files
+# These files provide structured project information optimized for AI systems:
+#   /llms.txt       - Concise project summary and key facts
+#   /llms-full.txt  - Comprehensive technical reference with API details
diff --git a/src/main/webapp/sitemap.xml b/src/main/webapp/sitemap.xml
new file mode 100644
index 0000000..82d3c74
--- /dev/null
+++ b/src/main/webapp/sitemap.xml
@@ -0,0 +1,186 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
+    <!-- Homepage -->
+    <url>
+        <loc>https://unomi.apache.org/</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>weekly</changefreq>
+        <priority>1.0</priority>
+    </url>
+
+    <!-- Primary navigation pages -->
+    <url>
+        <loc>https://unomi.apache.org/get-started.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>monthly</changefreq>
+        <priority>0.9</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/documentation.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>monthly</changefreq>
+        <priority>0.9</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/download.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>monthly</changefreq>
+        <priority>0.9</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/use-cases.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>monthly</changefreq>
+        <priority>0.8</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/integrations.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>monthly</changefreq>
+        <priority>0.8</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/tutorial.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.7</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/resources.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>monthly</changefreq>
+        <priority>0.7</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/stories.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>monthly</changefreq>
+        <priority>0.6</priority>
+    </url>
+
+    <!-- Community section -->
+    <url>
+        <loc>https://unomi.apache.org/community/</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>monthly</changefreq>
+        <priority>0.8</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/community/team.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>monthly</changefreq>
+        <priority>0.6</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/community/events/</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>monthly</changefreq>
+        <priority>0.6</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/community/events/apachecon/</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.4</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/community/events/meetups/2021-11-18.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.3</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/community/policies.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.4</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/community/maturity-model-report.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.3</priority>
+    </url>
+
+    <!-- Contribute section -->
+    <url>
+        <loc>https://unomi.apache.org/contribute/</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>monthly</changefreq>
+        <priority>0.7</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/contribute/become-a-committer.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.5</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/contribute/committer-guide.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.5</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/contribute/testing.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.5</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/contribute/dependencies-guide.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.5</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/contribute/release-guide.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.4</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/contribute/manual-release-guide.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.4</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/contribute/website.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.4</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/contribute/post-commit-guides.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.3</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/contribute/post-commit-policies-details.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.3</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/contribute/post-commit-test-policies.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.3</priority>
+    </url>
+    <url>
+        <loc>https://unomi.apache.org/contribute/pre-commit-test-policies.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.3</priority>
+    </url>
+
+    <!-- Other pages -->
+    <url>
+        <loc>https://unomi.apache.org/privacy-policy.html</loc>
+        <lastmod>2026-02-09</lastmod>
+        <changefreq>yearly</changefreq>
+        <priority>0.2</priority>
+    </url>
+</urlset>
diff --git a/src/main/webapp/stories.html b/src/main/webapp/stories.html
index 554341f..805a520 100644
--- a/src/main/webapp/stories.html
+++ b/src/main/webapp/stories.html
@@ -1,110 +1,95 @@
 ---
 title: Apache Unomi Stories
+description: "How companies and projects use Apache Unomi. Success stories, products built on Unomi, and commercial support providers."
+keywords: "Apache Unomi stories, user stories, customer stories, CDP implementations, success stories, case studies"
 layout: default
 ---
 
-<div class="container">
-
-    <div class="jumbotron p-3 p-md-5 text-white bg-primary mt-5">
-        <h1 class="display-4">Great Apache Unomi stories!</h1>
-        <p class="lead">How and why Apache Unomi is used.</p>
+<!-- Page Header -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Stories</p>
+        <h1>Apache Unomi Stories</h1>
+        <p class="lead">How and why organizations choose Apache Unomi.</p>
     </div>
+</section>
 
-    <div class="row mb-5 mt-5">
-        <div class="col">
-            <h2 class="pb-2 mb-1 font-italic border-bottom">Powered by Apache Unomi</h2>
-            <p>Products using Apache Unomi</p>
+<!-- Redirect notice + content -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-8">
+                <div class="p-4 rounded-3 info-box-primary">
+                    <h2 class="h5 mb-2">Looking for integrations, products, and commercial support?</h2>
+                    <p class="text-muted mb-3">We&rsquo;ve consolidated all ecosystem information into a single, comprehensive page.</p>
+                    <a href="/integrations.html" class="btn btn-primary"><i class="bi bi-puzzle me-2"></i>Visit the Integrations Page</a>
+                </div>
+            </div>
         </div>
     </div>
+</section>
 
-    <div class="row m-5">
-        <div class="col">
-            <h4 class="pb-2 mb-1">Jahia jExperience</h4>
-            <p>Jahia is the initial contributor of Apache Unomi and is using it as an engine to integrate content and
-                data in their Customer Data Platform (jExperience) and Digital Experience Platform (Jahia) while
-                respecting privacy through Unomi's native GDPR support. They are also leading the Customer Data Platform
-                specification being worked on at the OASIS Context Server Technical Committee. Apache Unomi is the
-                reference implementation of that standard.
-            </p>
-            <p>"Apache Unomi, thanks to its strong foundation in Apache Karaf and ElasticSearch, is a very modular and,
-                completely open and performant CDP engine that is a very important foundation of our products. We love
-                Apache Unomi, we work hard to encourage others to adopt it, we are here to help and we are deeply committed
-                to helping our customers succeed with it." - Serge Huber, Jahia CTO.</p>
-            <a href="https://www.jahia.com" target="_blank">www.jahia.com</a>
+<!-- Stories content (kept for backward compatibility) -->
+<section class="section section-alt">
+    <div class="container">
+        <div class="row justify-content-center text-center mb-5">
+            <div class="col-lg-7">
+                <p class="section-label">Powered by Apache Unomi</p>
+                <h2>Products &amp; Platforms</h2>
+            </div>
+        </div>
+        <div class="row g-4" data-shuffle-group>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <h3 class="h6 fw-semibold">Jahia jExperience</h3>
+                    <p class="small text-muted mb-3">The initial contributor of Apache Unomi, using it as the engine for their Customer Data Platform and Digital Experience Platform with native GDPR support.</p>
+                    <blockquote class="small fst-italic text-muted border-start border-3 border-primary ps-3 mb-3">
+                        &ldquo;Apache Unomi is a very important foundation of our products. We love it and are deeply committed to helping our customers succeed with it.&rdquo;
+                        <footer class="mt-1 fw-semibold quote-attribution">&mdash; Serge Huber, Jahia CTO</footer>
+                    </blockquote>
+                    <a href="https://www.jahia.com" target="_blank" rel="noopener" class="small fw-semibold">www.jahia.com <i class="bi bi-box-arrow-up-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <h3 class="h6 fw-semibold">Ninetailed</h3>
+                    <p class="small text-muted mb-3">Provides a complete visitor view, segment discovery, and personalization recommendations &mdash; powered by Apache Unomi&rsquo;s CDP capabilities and GDPR consent management.</p>
+                    <a href="https://ninetailed.io" target="_blank" rel="noopener" class="small fw-semibold">ninetailed.io <i class="bi bi-box-arrow-up-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <h3 class="h6 fw-semibold">Dropsolid Experience Cloud</h3>
+                    <p class="small text-muted mb-3">DXP with enhanced Drupal CMS, Mautic marketing automation, and Unomi CDP for smart segmentation and cross-system marketing.</p>
+                    <blockquote class="small fst-italic text-muted border-start border-3 border-primary ps-3 mb-3">
+                        &ldquo;Apache Unomi was the puzzle piece that fitted perfectly. It was the obvious CDP to integrate in our DXP solution.&rdquo;
+                        <footer class="mt-1 fw-semibold quote-attribution">&mdash; Mattias Michaux, Director of Engineering</footer>
+                    </blockquote>
+                    <a href="https://dropsolid.com/en/dropsolid-experience-cloud" target="_blank" rel="noopener" class="small fw-semibold">dropsolid.com <i class="bi bi-box-arrow-up-right"></i></a>
+                </div>
+            </div>
+            <div class="col-md-6 col-lg-4">
+                <div class="feature-card h-100">
+                    <h3 class="h6 fw-semibold">Inoyu</h3>
+                    <p class="small text-muted mb-3">Founded by the original developer behind Apache Unomi. Delivers innovative CDP implementations with commercial support and extensions.</p>
+                    <a href="https://www.inoyu.dev" target="_blank" rel="noopener" class="small fw-semibold">www.inoyu.dev <i class="bi bi-box-arrow-up-right"></i></a>
+                </div>
+            </div>
         </div>
     </div>
+</section>
 
-    <div class="row m-5">
-        <div class="col">
-            <h4 class="pb-2 mb-1">Ninetailed Personalization Platform</h4>
-            <p>Ninetailed use Apache Unomi to provide a complete view of the visitors; to discover new visitor segments,
-                choose from personalization recommendations, so their customers can test their ideas and grow the
-                traffic they already have.</p>
-            <p>"Apache Unomi was chosen as our CDP due the logical and plugin architecture, because it is an Apache
-                Open Source project and specially because of its Privacy (GPDR consent management) features.
-                This lets the user own their data, but also marketers and developers improve the user journey to help
-                the users in their decision process and brand experience" - Andy Kaiser, Ninetailed founder</p>
-            <a href="https://ninetailed.io/" target="_blank">ninetailed.io</a>
+<!-- CTA -->
+<section class="section">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-8 text-center">
+                <h2 class="h4 mb-3">Want to share your story?</h2>
+                <p class="text-muted mb-3">Create a <a href="https://github.com/apache/unomi-site/blob/master/src/main/webapp/integrations.html" target="_blank" rel="noopener">pull request</a> or send a message on the <a href="/community/index.html">users mailing list</a>.</p>
+            </div>
         </div>
     </div>
+</section>
 
-    <div class="row m-5">
-        <div class="col">
-            <h4 class="pb-2 mb-1"> Dropsolid - The Digital Experience Company</h4>
-            <p>The Dropsolid Experience Cloud delivers an out of box DXP ready enhanced Drupal CMS,
-               Mautic marketing automation platform and Unomi CDP to build powerful user experiences.
-               Apache Unomi is tightly integrated and gives us smart segments to allow the website builders to diversify or enrich the content based on the surfer. These segments also are used in the marketing automation system.
-               This results in smart mailings to interested groups.
-               Apache Unomi is feeding multiple systems here.</p>
-
-            <p>"Our goal is to make the digital experience as seamless as possible and
-               Apache Unomi was the puzzle piece that fitted perfectly here.
-               As we have a rich contribution history we will certainly try to help the Apache ecosystem improve, where we can.
-               Apache Unomi was the obvious customer data platform to integrate in our DXP solution." - Mattias Michaux, Director of Engineering.</p>
-            <a href="https://dropsolid.com/en/dropsolid-experience-cloud" target="_blank">dropsolid.com</a>
-        </div>
-    </div>
-
-    <div class="row mb-5 mt-5">
-        <div class="col">
-            <h2 class="pb-2 mb-1 font-italic border-bottom">Commercial Support</h2>
-            <p>Companies offering commercial support for Apache Unomi</p>
-        </div>
-    </div>
-
-    <div class="row m-5">
-        <div class="col">
-            <h4 class="pb-2 mb-1">Inoyu</h4>
-            <p>Inoyu was established by the original developer behind both the Jahia DXP and the Apache Unomi project.
-                The company specializes in delivering innovative CDP implementations, utilizing Unomi as the core
-                solution. Inoyu provides commercial support for Apache Unomi, along with commercial extensions
-                designed to enhance integration and usability.
-            </p>
-            <a href="http://www.inoyu.dev/" target="_blank">www.inoyu.dev</a>
-        </div>
-    </div>
-
-    <div class="row m-5">
-        <div class="col">
-            <h4 class="pb-2 mb-1">Yupiik</h4>
-            <p>Yupiik is an expert team with a solid experience in digital and information technologies, heavily
-                involved in the Apache Software Foundation. Their team are the developers and contributors of many well
-                known Apache projects, such as Apache Karaf, Apache ActiveMQ, Apache Camel, Apache Unomi, and many
-                more.</p>
-            <a href="http://www.yupiik.com/" target="_blank">www.yupiik.com</a>
-        </div>
-    </div>
-
-    <div class="row mb-5 mt-5">
-        <div class="col">
-            <h2 class="pb-2 mb-1 font-italic border-bottom">Calling for more stories</h2>
-            <p>If you want your own application or solution powered or based on Apache Unomi to be features here, please
-                create a
-                <a href="https://github.com/apache/unomi-site/blob/master/src/main/webapp/stories.html" target="_blank">pull
-                    request on this page</a> or send a message on the <a href="community/index.html">users mailing list</a>
-            </p>
-        </div>
-    </div>
-
-</div>
-
+<!-- ASF compliance: randomize company ordering on every page load -->
+<script src="/assets/js/shuffle.js" defer></script>
diff --git a/src/main/webapp/tutorial.html b/src/main/webapp/tutorial.html
index eca1899..5db0517 100644
--- a/src/main/webapp/tutorial.html
+++ b/src/main/webapp/tutorial.html
@@ -1,344 +1,621 @@
 ---
-title: Tutorial
+title: Tutorials &mdash; Getting Started with Apache Unomi 3
+description: "Step-by-step tutorials for Apache Unomi 3.0: Docker quick start, manual installation, REST API basics, web tracking integration, and profile personalization."
+keywords: "Apache Unomi tutorial, step by step, beginner guide, CDP tutorial, profiles, events, segments, rules"
 layout: default
+structured_data: >
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "HowTo",
+        "name": "Getting Started with Apache Unomi 3",
+        "description": "Learn how to set up and use Apache Unomi 3.0 as a Customer Data Platform with Docker, REST APIs, and web tracking.",
+        "totalTime": "PT30M",
+        "step": [
+            {
+                "@type": "HowToStep",
+                "position": 1,
+                "name": "Start Unomi with Docker",
+                "text": "Create a docker-compose.yml and run docker-compose up to start Unomi with Elasticsearch."
+            },
+            {
+                "@type": "HowToStep",
+                "position": 2,
+                "name": "Verify the cluster",
+                "text": "Access https://localhost:9443/cxs/cluster with credentials karaf/karaf to verify the installation."
+            },
+            {
+                "@type": "HowToStep",
+                "position": 3,
+                "name": "Create a scope and send events",
+                "text": "Use the REST API to create scopes, send events, and query profiles."
+            },
+            {
+                "@type": "HowToStep",
+                "position": 4,
+                "name": "Integrate the web tracker",
+                "text": "Add the Unomi web tracker to your web pages for automatic event collection and personalization."
+            }
+        ]
+    }
+    </script>
 ---
 
-      <!-- Marketing messaging and featurettes
-      ================================================== -->
-      <!-- Wrap the rest of the page in another container to center all the content. -->
-      <div class="container">
+<!-- Page Header -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Tutorials</p>
+        <h1>Getting Started with Apache Unomi 3</h1>
+        <p class="lead">From zero to a running CDP in minutes. Pick the path that suits you.</p>
+    </div>
+</section>
 
-        <!-- Migrating ES -->
-        <div id="ubuntu-tutorial" class="row mb-5 mt-5">
-          <div class="col">
-            <h2 class="pb-3 border-bottom">Running and Interfacing with Apache Unomi 1.4 on Ubuntu</h2>
-            <p>This section includes a quick tutorial demonstrating how to install and interface with Unomi running on Ubuntu. The purpose of this tutorial is to demonstrate how to use the features of Apache Unomi.</p>
-
-            <h3 class="pt-3 pb-2 text-dark">Install Java 8</h3>
-            <p>Unomi 1.4 requires Java 8. Use these command to install this specific version:</p>
-            <pre><code>
-apt install openjdk-8-jdk
-            </code></pre>
-            <p>Set your <code>JAVA_HOME</code> by editing <code>/etc/environment</code>:</p>
-            <pre><code>
-vi /etc/environment
-            </code></pre>
-            <p>and add these two lines below what is already there:</p>
-            <pre><code>
-JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
-PATH=$JAVA_HOME/bin:$PATH
-            </code></pre>
-            <div class="alert alert-warning" role="alert">Your <code>JAVA_HOME</code> may vary. You can review the output of the <code>apt install</code> command to see where Java was installed.</div>
-            <p>Now reload the environment:</p>
-            <pre><code>
-source /etc/environment
-            </code></pre>
-
-            <h3 class="pt-3 pb-2 text-dark">Installing ElasticSearch 5.6.3</h3>
-            <p>Unomi 1.4 requires ElasticSearch version 5.6.3. Use these command to install this specific version:</p>
-            <pre><code>
-apt-get update && apt-get -y install apt-transport-https curl wget
-wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.3.deb
-dpkg -i elasticsearch-5.6.3.deb
-            </code></pre>
-            <p>Now, edit the ElasticSearch configuration:</p>
-            <pre><code>
-vi /etc/elasticsearch/elasticsearch.yml
-            </code></pre>
-            <p>Uncomment and edit the line with <code>cluster.name</code> to:</p>
-            <pre><code>
-cluster.name: contextElasticSearch
-            </code></pre>
-            <p>Now start and check the status of ElasticSearch to confirm it is running:</p>
-            <pre><code>
-service elasticsearch start
-service elasticsearch status
-            </code></pre>
-
-            <h3 class="pt-3 pb-2 text-dark">Installing Unomi 1.4</h3>
-            <p>You can install a binary distribution from any of <a href="https://www.apache.org/dyn/closer.lua/incubator/unomi/1.4.0/unomi-1.4.0-bin.tar.gz">these</a> mirrors. Just download and extract the files, then run it using Karaf:</p>
-            <pre><code>
-wget http://apache.mirrors.pair.com/incubator/unomi/1.4.0/unomi-1.4.0-bin.tar.gz
-tar -xzf unomi-1.4.0-bin.tar.gz
-            </code></pre>
-            <p>After it is extracted, move it into <code>/opt/unomi</code>:</p>
-            <pre><code>
-mkdir /opt/unomi
-mv unomi-1.4.0-incubating/*
-            </code></pre>
-
-
-            <h3 class="pt-3 pb-2 text-dark">Start Unomi</h3>
-            <p>Next, start Unomi from the terminal:</p>
-            <pre><code>
-/opt/unomi/bin/karaf
-            </code></pre>
-            <p>In the Karaf terminal, run <code>unomi:start</code>:</p>
-            <pre><code>
-karaf@root()> unomi:start
-            </code></pre>
-
-            <div class="alert alert-info">
-              <h4 class="pt-3 pb-2 text-dark">Installing Unomi as a Service</h4>
-              <p>You can install Unomi as a service using Karaf's <a href="http://karaf.apache.org/manual/latest/#_service_wrapper">Service Wrapper</a>.</p>
-              <p>From the Karaf command line:</p>
-              <pre><code>
-  karaf@root()> feature:install wrapper
-  karaf@root()> wrapper:install
-              </code></pre>
-              <p>The output from the <code>wrapper:install</code> command will include instructions for finishing the installation and starting/stoping Karaf.</p>
+<!-- Table of Contents -->
+<section class="section section-flush-bottom">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-10">
+                <div class="feature-card">
+                    <h2 class="h6 fw-semibold mb-3"><i class="bi bi-list-ol me-2 text-primary"></i>In this guide</h2>
+                    <div class="row g-3">
+                        <div class="col-md-6">
+                            <ol class="small mb-0">
+                                <li><a href="#docker-quickstart">Quick Start with Docker</a> <span class="badge badge-success">Recommended</span></li>
+                                <li><a href="#manual-install">Manual Installation</a></li>
+                                <li><a href="#first-api-calls">Your First API Calls</a></li>
+                            </ol>
+                        </div>
+                        <div class="col-md-6">
+                            <ol class="small mb-0" start="4">
+                                <li><a href="#web-tracking">Web Tracking Tutorial</a></li>
+                                <li><a href="#rules-personalization">Rules &amp; Personalization</a></li>
+                                <li><a href="#next-steps">Next Steps</a></li>
+                            </ol>
+                        </div>
+                    </div>
+                </div>
             </div>
-
-            <h3 class="pt-3 pb-2 text-dark">Interfacing with Unomi</h3>
-            <p>Below are some Python scripts that demonstrate how to interface with Unomi.</p>
-            <p>You can check some endpoints in a web browser, the default username and password is `karaf` and `karaf`:</p>
-            <pre><code>
-https://localhost:9443/cxs/cluster
-http://localhost:8181/context.js?sessionId=1234
-            </code></pre>
-
-
-            <h4 class="pt-3 pb-2 text-dark">Create a New Profile</h4>
-            <p>Run the Python code to create a new profile (use Python 3):</p>
-            <pre><code>
-from requests import request
-
-"""
-Make a request to Unomi to create a profile with ID = 10
-"""
-r = requests.post('http://localhost:8181/cxs/profiles/',
-auth=('karaf','karaf'),
-json ={
-        "itemId":"10",
-        "itemType":"profile",
-        "version":None,
-        "properties": {
-            "firstName": "John",
-            "lastName": "Smith"
-        },
-        "systemProperties":{},
-        "segments":[],
-        "scores":{},
-        "mergedWith":None,
-        "consents":{}
-    })
-print(r)
-print(r.content)
-            </code></pre>
-            <p>This creates a profile with ID 10. You can view this profile with a <a href="https://unomi.apache.org/rest-api-doc/#-1185500428">GET /profile endpoint</a> in the browser:</p>
-            <pre><code>
-http://localhost:8181/cxs/profile/10
-            </code></pre>
-
-            <h4 class="pt-3 pb-2 text-dark">Create a New Profile and Session</h4>
-            <p>Run the Python code to create a new profile and session (use Python 3):</p>
-            <pre><code>
-from requests import post
-from datetime import datetime
-
-profile = {
-    "itemId":"10",
-    "itemType":"profile",
-    "version":None,
-    "properties": {
-        "firstName": "John",
-        "lastName": "Smith"
-    },
-    "systemProperties":{},
-    "segments":[],
-    "scores":{},
-    "mergedWith":None,
-    "consents":{}
-}
-
-session = {
-    "itemId": "101",
-    "itemType":"session",
-    "scope":None,
-    "version":1,
-    "profileId":profile_id,
-    "profile": profile,
-    "properties":{},
-    "systemProperties":{},
-    "timeStamp": datetime.now().strftime("%Y-%m-%dT%H:%M:%SZ")
-}
-
-# Create or update profile
-r = post('http://localhost:8181/cxs/profiles/',
-auth=('karaf','karaf'),
-json =profile)
-print(r)
-print(r.content)
-
-
-# Create session
-r = post('http://localhost:8181/cxs/profiles/sessions/101',
-    auth=('karaf', 'karaf'),
-    json=session)
-
-print(r)
-print(r.content)
-            </code></pre>
-            <p>This creates a session with ID 101 and profile with ID 10. You can view this profile with a <a href="https://unomi.apache.org/rest-api-doc/#1764110248">[GET /profile/{profile_id}/sessions endpoint]</a> in the browser:</p>
-            <pre><code>
-http://localhost:8181/cxs/profiles/10/sessions/
-            </code></pre>
-
-            <h4 class="pt-3 pb-2 text-dark">Create a New Rule</h4>
-            <p>Run the Python code to create a new rule (use Python 3):</p>
-            <pre><code>
-import requests
-
-"""
-Make a request to Unomi to create a rule that marks profiles as "eligible = yes"
-when annualIncome &lt; 12000
-"""
-r = requests.post('http://localhost:8181/cxs/rules/',
-auth=('karaf','karaf'),
-json ={
-  "metadata": {
-    "id": "eligibilityRule",
-    "name": "Example eligibility rule",
-    "description": "Profile annualIncome &lt; 12000"
-  },
-  "condition": {
-    "parameterValues": {
-      "subConditions": [
-        {
-          "parameterValues": {
-            "propertyName": "properties.annualIncome",
-            "comparisonOperator": "greaterThan",
-            "propertyValueInt": 12000
-          },
-          "type": "profilePropertyCondition"
-        },
-        {
-          "type": "profileUpdatedEventCondition",
-          "parameterValues": {
-          }
-        }
-      ],
-      "operator" : "and"
-    },
-    "type": "booleanCondition"
-  },
-  "actions": [
-    {
-      "parameterValues": {
-        "setPropertyName": "properties.eligibility",
-        "setPropertyValue": "yes"
-      },
-      "type": "setPropertyAction"
-    }
-  ]
-})
-print("Rule Response Code:", r)
-print("Rule Response Content:", r.content)
-
-
-"""
-Make a request to Unomi to create a profile with annualIncome &lt; 12000
-"""
-r = requests.post('http://localhost:8181/cxs/profiles/',
-auth=('karaf','karaf'),
-json ={
-        "itemId":"10",
-        "itemType":"profile",
-        "version":None,
-        "properties": {
-            "firstName": "John",
-            "lastName": "Smith",
-            "annualIncome": 10000
-        },
-        "systemProperties":{},
-        "segments":[],
-        "scores":{},
-        "mergedWith":None,
-        "consents":{}
-    })
-print("Profile Response Code:", r)
-print("Profile Response Content:", r.content)
-            </code></pre>
-            <p>This creates a rule with ID eligibilityRule and a profile with ID 10. You can view this rule with a <a href="https://unomi.apache.org/rest-api-doc/#-1505954579">[GET /rule/{rule_id} endpoint]</a> in the browser:</p>
-            <pre><code>
-http://localhost:8181/cxs/rules/eligibilityRule/
-            </code></pre>
-            <p>and you can view the profile which has been marked as eligible = "yes":</p>
-            <pre><code>
-http://localhost:8181/cxs/profile/10
-            </code></pre>
-
-          </div><!-- /.blog-main -->
         </div>
+    </div>
+</section>
 
-        <div id="docker-tutorial" class="row mb-5 mt-5">
-          <div class="col">
-            <h2 class="pb-3 border-bottom">Running Unomi 1.3 using Docker</h2>
-            <p>This section includes a quick tutorial demonstrating how to run Unomi using Docker. The purpose of this tutorial is to demonstrate how to run Apache Unomi in a Docker container.</p>
-            <h3 class="pt-3 pb-2 text-dark">Install Docker and Docker Compose</h3>
-            <p>Before you get started, you will need to install Docker and Docker Compose on your machine. Installation instructions can be found <a href="https://docs.docker.com/install/">here</a>. Docker for Mac and Docker Toolbox already include Docker Compose.</p>
-            <h3 class="pt-3 pb-2 text-dark">About the Required Images</h3>
-            <p>Unomi requires ElasticSearch so this setup will use an Elasticsearch image provided by <a href="https://www.elastic.co/">Elasticsearch B.V.</a>. We will use a Unomi Docker image mantained by the community.</p>
-            <ul>
-              <li><a href="https://hub.docker.com/r/mikeghen/unomi/">Unomi 1.3 image</a></li>
-              <li><a href="https://hub.docker.com/_/elasticsearch/">ElasticSearch 5.6.3 image</a></li>
-            </ul>
-            <h3 class="pt-3 pb-2 text-dark">Create a Docker Compose Configuration</h3>
-            <p>Create a new directory and add a <code>docker-compose.yaml</code> file. Then copy the code below into that file.</p>
-            <pre><code>
-version: '2.2'
+<!-- ============================================================ -->
+<!-- 1. Docker Quick Start -->
+<!-- ============================================================ -->
+<section id="docker-quickstart" class="section">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-10">
+                <span class="badge badge-primary mb-3">Step 1</span>
+                <h2>Quick Start with Docker</h2>
+                <p class="text-muted">The fastest way to get Unomi running. You only need <a href="https://docs.docker.com/get-docker/" target="_blank" rel="noopener">Docker</a> installed.</p>
+
+                <h3 class="h6 fw-semibold mt-4 mb-3">Create <code>docker-compose.yml</code></h3>
+                <p>Create a new directory and add a <code>docker-compose.yml</code> file with the following content:</p>
+<pre><code>version: '3.8'
 services:
   elasticsearch:
-    image: docker.elastic.co/elasticsearch/elasticsearch:5.6.3
-    volumes: # Persist ES data in seperate "esdata" volume
-      - esdata1:/usr/share/elasticsearch/data
+    image: docker.elastic.co/elasticsearch/elasticsearch:9.1.3
     environment:
-      - bootstrap.memory_lock=true
-      - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
       - discovery.type=single-node
       - xpack.security.enabled=false
-      - cluster.name=contextElasticSearch
-    ports: # Expose Elasticsearch ports
-      - "9300:9300"
-      - "9200:9200"
+    ports:
+      - 9200:9200
+
   unomi:
-    image: mikeghen/unomi:1.3
-    container_name: unomi
+    image: apache/unomi:3.0.0
     environment:
-      - ELASTICSEARCH_HOST=elasticsearch
-      - ELASTICSEARCH_PORT=9300
+      - UNOMI_ELASTICSEARCH_ADDRESSES=elasticsearch:9200
+      - UNOMI_THIRDPARTY_PROVIDER1_IPADDRESSES=0.0.0.0/0,::1,127.0.0.1
     ports:
       - 8181:8181
       - 9443:9443
+      - 8102:8102
     links:
       - elasticsearch
     depends_on:
-      - elasticsearch
+      - elasticsearch</code></pre>
 
-volumes: # Define seperate volume for Elasticsearch data
-  esdata1:
-    driver: local
-            </code></pre>
-            <p>The configuration above creates a single node ElasticSearch container with persistent storage. It also creates a single Unomi container and links it so it can access ElasticSearch.</p>
-            <p>You can find the code for the Unomi image here: <a href="https://github.com/mikeghen/unomi-docker">https://github.com/mikeghen/unomi-docker</a>
-            <h3 class="pt-3 pb-2 text-dark">Create the Environment with Docker Compose</h3>
-            <p>To start everything, run this command from the same directory where the <code>docker-compose.yaml</code> file exists:</p>
-            <pre><code>
-docker-compose up
-            </code></pre>
-            <div class="alert alert-warning" role="alert">At this point you need to wait several minutes for both ElasticSearch and Unomi to become available</div>
-            <h3 class="pt-3 pb-2 text-dark">Check Unomi Services are Running</h3>
-            <p>You will need to wait a few minutes for ElasticSearch and Unomi to start up. Check that services are running locally by opening this URL in a browser:</p>
-            <pre><code>
-http://localhost:8181/cxs
-            </code></pre>
-            <p>This will check Unomi. It will come back with "Available RESTful services" and a list of services when Unomi finishes starting up.</p>
-            <p>You can check ElasticSearch is running with this curl command:
-            <pre><code>
-curl http://localhost:9200/_cat/health?format=json
-            </code></pre>
-            <p>This will come back with a "yellow" status which is just because we're only running 1 ElasticSearch node.</p>
+                <h3 class="h6 fw-semibold mt-4 mb-3">Start the environment</h3>
+                <p>From the same directory, run:</p>
+<pre><code>docker compose up</code></pre>
+                <div class="alert alert-warning small" role="alert">
+                    <i class="bi bi-hourglass-split me-1"></i> Wait 1&ndash;2 minutes for both Elasticsearch and Unomi to fully initialize before testing.
+                </div>
+
+                <h3 class="h6 fw-semibold mt-4 mb-3">Verify the cluster</h3>
+                <p>Open your browser and navigate to:</p>
+<pre><code>https://localhost:9443/cxs/cluster</code></pre>
+                <p class="small text-muted">Default credentials: <code>karaf</code> / <code>karaf</code>. Accept the self-signed certificate warning &mdash; it is expected in development mode.</p>
+
+                <p>You can also verify Elasticsearch is running:</p>
+<pre><code>curl http://localhost:9200/_cat/health?format=json</code></pre>
+
+                <div class="alert alert-info small" role="alert">
+                    <i class="bi bi-info-circle me-1"></i> This Docker setup is for <strong>development and learning only</strong>. For production deployments, see the <a href="https://unomi.apache.org/manual/latest/index.html#_securing_a_production_environment">production security guide</a>.
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
+
+<hr class="section-divider">
+
+<!-- ============================================================ -->
+<!-- 2. Manual Installation -->
+<!-- ============================================================ -->
+<section id="manual-install" class="section">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-10">
+                <span class="badge badge-primary mb-3">Step 2 (alternative)</span>
+                <h2>Manual Installation</h2>
+                <p class="text-muted">Prefer running Unomi directly on your machine? Follow these steps.</p>
+
+                <h3 class="h6 fw-semibold mt-4 mb-3">Prerequisites</h3>
+                <ul class="small">
+                    <li><strong>Java 17</strong> or later &mdash; set <code>JAVA_HOME</code> accordingly. OpenJDK distributions work fine.</li>
+                    <li><strong>Elasticsearch 9.x</strong> &mdash; <a href="https://www.elastic.co/downloads/elasticsearch" target="_blank" rel="noopener">Download Elasticsearch</a></li>
+                </ul>
+
+                <h3 class="h6 fw-semibold mt-4 mb-3">1. Configure &amp; start Elasticsearch</h3>
+                <p>After extracting Elasticsearch, edit <code>config/elasticsearch.yml</code>:</p>
+<pre><code>cluster.name: contextElasticSearch</code></pre>
+                <p>Then start it:</p>
+<pre><code>bin/elasticsearch</code></pre>
+
+                <h3 class="h6 fw-semibold mt-4 mb-3">2. Download &amp; start Apache Unomi</h3>
+                <p>Download the latest binary from the <a href="/download.html">download page</a>, extract it, then:</p>
+<pre><code># Start Apache Karaf
+./bin/karaf
+
+# In the Karaf shell, start Unomi
+karaf@root()&gt; unomi:start</code></pre>
+
+                <p>Wait until you see the service initialization messages:</p>
+<pre><code>Initializing profile service endpoint...
+Initializing cluster service endpoint...</code></pre>
+
+                <h3 class="h6 fw-semibold mt-4 mb-3">3. Verify</h3>
+                <p>Open <a href="https://localhost:9443/cxs/cluster">https://localhost:9443/cxs/cluster</a> (credentials: <code>karaf</code>/<code>karaf</code>).</p>
+                <p>Request your first context:</p>
+<pre><code>http://localhost:8181/cxs/context.json?sessionId=1234</code></pre>
+
+                <div class="alert alert-info small" role="alert">
+                    <i class="bi bi-terminal me-1"></i> <strong>Tip:</strong> Connect to the Karaf SSH console at any time with <code>ssh -p 8102 karaf@localhost</code> (password: <code>karaf</code>) for useful commands like <code>profile-list</code>, <code>event-tail</code>, and <code>rule-list</code>.
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
+
+<hr class="section-divider">
+
+<!-- ============================================================ -->
+<!-- 3. First API Calls -->
+<!-- ============================================================ -->
+<section id="first-api-calls" class="section">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-10">
+                <span class="badge badge-primary mb-3">Step 3</span>
+                <h2>Your First API Calls</h2>
+                <p class="text-muted">With Unomi running, let&rsquo;s explore the REST API using <code>curl</code>.</p>
+
+                <!-- Read context -->
+                <h3 class="h6 fw-semibold mt-4 mb-3">Read the current context</h3>
+                <p>The <code>/cxs/context.json</code> endpoint is the primary public-facing endpoint. It returns the current visitor&rsquo;s profile, session, segments, and scores:</p>
+<pre><code>curl -X POST http://localhost:8181/cxs/context.json?sessionId=1234 \
+  -H "Content-Type: application/json" \
+  --data-raw '{
+    "source": {
+      "itemId": "homepage",
+      "itemType": "page",
+      "scope": "example"
+    },
+    "requiredProfileProperties": ["*"],
+    "requiredSessionProperties": ["*"],
+    "requireSegments": true,
+    "requireScores": true
+  }'</code></pre>
+
+                <!-- Create a scope -->
+                <h3 class="h6 fw-semibold mt-4 mb-3">Create a scope</h3>
+                <p>Events in Unomi must be associated with a <strong>scope</strong>. Create one before sending events:</p>
+<pre><code>curl -X POST http://localhost:8181/cxs/scopes \
+  -u karaf:karaf \
+  -H "Content-Type: application/json" \
+  --data-raw '{
+    "itemId": "my-website",
+    "itemType": "scope",
+    "metadata": {
+      "id": "my-website",
+      "name": "My Website Scope"
+    }
+  }'</code></pre>
+
+                <!-- Send a custom event -->
+                <h3 class="h6 fw-semibold mt-4 mb-3">Send a custom event</h3>
+                <p>Before sending a custom event, register a <strong>JSON Schema</strong> to validate it (required since Unomi 2.0):</p>
+<pre><code>curl -X POST http://localhost:8181/cxs/jsonSchema \
+  -u karaf:karaf \
+  -H "Content-Type: application/json" \
+  --data-raw '{
+    "$id": "https://unomi.apache.org/schemas/json/events/contactInfoSubmitted/1-0-0",
+    "$schema": "https://json-schema.org/draft/2019-09/schema",
+    "self": {
+      "vendor": "org.apache.unomi",
+      "name": "contactInfoSubmitted",
+      "format": "jsonschema",
+      "target": "events",
+      "version": "1-0-0"
+    },
+    "title": "contactInfoSubmittedEvent",
+    "type": "object",
+    "allOf": [{ "$ref": "https://unomi.apache.org/schemas/json/event/1-0-0" }],
+    "properties": {
+      "source": { "$ref": "https://unomi.apache.org/schemas/json/item/1-0-0" },
+      "target": { "$ref": "https://unomi.apache.org/schemas/json/item/1-0-0" },
+      "properties": {
+        "type": "object",
+        "properties": {
+          "firstName": { "type": ["null", "string"] },
+          "lastName":  { "type": ["null", "string"] },
+          "email":     { "type": ["null", "string"] }
+        }
+      }
+    },
+    "unevaluatedProperties": false
+  }'</code></pre>
+
+                <p>Now send the event via the <strong>event collector</strong> (the public endpoint for submitting events):</p>
+<pre><code>curl -X POST http://localhost:8181/cxs/eventcollector \
+  -H "Content-Type: application/json" \
+  --data-raw '{
+    "sessionId": "1234",
+    "events": [{
+      "eventType": "contactInfoSubmitted",
+      "scope": "my-website",
+      "source": {
+        "itemType": "site",
+        "scope": "my-website",
+        "itemId": "mysite"
+      },
+      "target": {
+        "itemType": "form",
+        "scope": "my-website",
+        "itemId": "contactForm"
+      },
+      "properties": {
+        "firstName": "Jane",
+        "lastName": "Doe",
+        "email": "jane.doe@example.com"
+      }
+    }]
+  }'</code></pre>
+
+                <!-- Search events -->
+                <h3 class="h6 fw-semibold mt-4 mb-3">Search events</h3>
+                <p>Retrieve events matching a condition:</p>
+<pre><code>curl -X POST http://localhost:8181/cxs/events/search \
+  -u karaf:karaf \
+  -H "Content-Type: application/json" \
+  --data-raw '{
+    "offset": 0,
+    "limit": 20,
+    "sortby": "timeStamp:desc",
+    "condition": {
+      "type": "eventPropertyCondition",
+      "parameterValues": {
+        "propertyName": "properties.firstName",
+        "comparisonOperator": "equals",
+        "propertyValue": "Jane"
+      }
+    }
+  }'</code></pre>
+
+                <!-- View a profile -->
+                <h3 class="h6 fw-semibold mt-4 mb-3">View a profile</h3>
+                <p>Use the profile UUID (from the <code>context-profile-id</code> cookie or event response) to look up profile details:</p>
+<pre><code>curl http://localhost:8181/cxs/profiles/PROFILE_UUID \
+  -u karaf:karaf</code></pre>
+
+                <div class="alert alert-info small" role="alert">
+                    <i class="bi bi-terminal me-1"></i> <strong>SSH Console shortcuts:</strong> <code>event-tail</code> watches events in real time, <code>event-list</code> shows recent events, <code>profile-list</code> lists recently modified profiles, <code>profile-view PROFILE_UUID</code> shows profile details.
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
+
+<hr class="section-divider">
+
+<!-- ============================================================ -->
+<!-- 4. Web Tracking Tutorial -->
+<!-- ============================================================ -->
+<section id="web-tracking" class="section">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-10">
+                <span class="badge badge-primary mb-3">Step 4</span>
+                <h2>Web Tracking Tutorial</h2>
+                <p class="text-muted">Integrate the built-in Unomi web tracker into any web page to automatically collect page views and enable personalization.</p>
+
+                <!-- Install tracker -->
+                <h3 class="h6 fw-semibold mt-4 mb-3">Add the tracker to your page</h3>
+                <p>Include the tracker script and initialize it:</p>
+<pre><code>&lt;!-- Load the Unomi web tracker --&gt;
+&lt;script src="/tracker/unomi-web-tracker.min.js"&gt;&lt;/script&gt;
+
+&lt;script&gt;
+(function () {
+  var conf = {
+    "scope": "my-website",
+    "site": {
+      "siteInfo": { "siteID": "my-website" }
+    },
+    "page": {
+      "pageInfo": {
+        "pageID": "home",
+        "pageName": document.title,
+        "pagePath": document.location.pathname,
+        "destinationURL": document.location.origin + document.location.pathname,
+        "language": "en",
+        "categories": [],
+        "tags": []
+      },
+      "attributes": {},
+      "consentTypes": []
+    },
+    "events:": [],
+    "wemInitConfig": {
+      "contextServerUrl": document.location.origin,
+      "timeoutInMilliseconds": "1500",
+      "contextServerCookieName": "context-profile-id",
+      "activateWem": true,
+      "trackerSessionIdCookieName": "my-website-session-id",
+      "trackerProfileIdCookieName": "my-website-profile-id"
+    }
+  };
+
+  // Generate a new session if needed
+  if (unomiWebTracker.getCookie(conf.wemInitConfig.trackerSessionIdCookieName) == null) {
+    unomiWebTracker.setCookie(conf.wemInitConfig.trackerSessionIdCookieName, unomiWebTracker.generateGuid(), 1);
+  }
+
+  unomiWebTracker.initTracker(conf);
+
+  unomiWebTracker._registerCallback(function() {
+    console.log("Unomi context loaded:", unomiWebTracker.getLoadedContext());
+  }, 'My callback');
+
+  unomiWebTracker.startTracker();
+})();
+&lt;/script&gt;</code></pre>
+
+                <div class="alert alert-warning small" role="alert">
+                    <i class="bi bi-exclamation-triangle me-1"></i> Remember to <strong>create the scope</strong> first (see <a href="#first-api-calls">Step 3</a>) or events will be rejected.
+                </div>
+
+                <!-- NPM -->
+                <h3 class="h6 fw-semibold mt-4 mb-3">Using the tracker as an NPM package</h3>
+                <p>For JavaScript/TypeScript projects, install the tracker from npm:</p>
+<pre><code>npm install apache-unomi-tracker
+# or
+yarn add apache-unomi-tracker</code></pre>
+                <p>Then import and use it:</p>
+<pre><code>import { useTracker } from "apache-unomi-tracker";
+
+const unomiWebTracker = useTracker();
+// ... configure and start as shown above</code></pre>
+            </div>
+        </div>
+    </div>
+</section>
+
+<hr class="section-divider">
+
+<!-- ============================================================ -->
+<!-- 5. Rules & Personalization -->
+<!-- ============================================================ -->
+<section id="rules-personalization" class="section">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-10">
+                <span class="badge badge-primary mb-3">Step 5</span>
+                <h2>Rules &amp; Personalization</h2>
+                <p class="text-muted">Rules let Unomi react to events in real time &mdash; updating profiles, triggering actions, or integrating with external systems.</p>
+
+                <!-- Create a rule -->
+                <h3 class="h6 fw-semibold mt-4 mb-3">Create a rule that counts page views</h3>
+                <p>This rule increments a <code>pageViewCount</code> property on the visitor&rsquo;s profile every time a <code>view</code> event is received:</p>
+<pre><code>curl -X POST http://localhost:8181/cxs/rules \
+  -u karaf:karaf \
+  -H "Content-Type: application/json" \
+  --data-raw '{
+    "metadata": {
+      "id": "viewEventRule",
+      "name": "View event rule",
+      "description": "Increments pageViewCount on each page view"
+    },
+    "condition": {
+      "type": "eventTypeCondition",
+      "parameterValues": {
+        "eventTypeId": "view"
+      }
+    },
+    "actions": [{
+      "type": "incrementPropertyAction",
+      "parameterValues": {
+        "propertyName": "pageViewCount"
+      }
+    }]
+  }'</code></pre>
+                <p class="small text-muted">After creating this rule, reload your tracked page a few times, then check the profile with <code>profile-view PROFILE_UUID</code> in the SSH console to see the counter increase.</p>
+
+                <!-- Copy event properties to profile -->
+                <h3 class="h6 fw-semibold mt-4 mb-3">Map event data to a profile</h3>
+                <p>This rule listens for the <code>contactInfoSubmitted</code> event (from Step 3) and copies its properties to the profile:</p>
+<pre><code>curl -X POST http://localhost:8181/cxs/rules \
+  -u karaf:karaf \
+  -H "Content-Type: application/json" \
+  --data-raw '{
+    "metadata": {
+      "id": "setContactInfo",
+      "name": "Copy contact info to profile",
+      "description": "Maps firstName, lastName, email from event to profile"
+    },
+    "condition": {
+      "type": "eventTypeCondition",
+      "parameterValues": {
+        "eventTypeId": "contactInfoSubmitted"
+      }
+    },
+    "actions": [
+      {
+        "type": "setPropertyAction",
+        "parameterValues": {
+          "setPropertyName": "properties(firstName)",
+          "setPropertyValue": "eventProperty::properties(firstName)",
+          "setPropertyStrategy": "alwaysSet"
+        }
+      },
+      {
+        "type": "setPropertyAction",
+        "parameterValues": {
+          "setPropertyName": "properties(lastName)",
+          "setPropertyValue": "eventProperty::properties(lastName)",
+          "setPropertyStrategy": "alwaysSet"
+        }
+      },
+      {
+        "type": "setPropertyAction",
+        "parameterValues": {
+          "setPropertyName": "properties(email)",
+          "setPropertyValue": "eventProperty::properties(email)",
+          "setPropertyStrategy": "alwaysSet"
+        }
+      }
+    ]
+  }'</code></pre>
+
+                <!-- Personalization -->
+                <h3 class="h6 fw-semibold mt-4 mb-3">Personalize content based on a profile property</h3>
+                <p>Using the web tracker, you can register personalization rules that show different content based on profile data. For example, show a special message after 5 page views:</p>
+<pre><code>&lt;div id="variant1" style="display:none"&gt;
+  Welcome back! You've visited this page over 5 times.
+&lt;/div&gt;
+&lt;div id="variant2" style="display:none"&gt;
+  Welcome! Keep exploring to unlock personalized content.
+&lt;/div&gt;
+
+&lt;script&gt;
+var variants = {
+  "var1": { content: "variant1" },
+  "var2": { content: "variant2" }
+};
+
+unomiWebTracker.registerPersonalizationObject({
+  "id": "pageViewPersonalization",
+  "strategy": "matching-first",
+  "strategyOptions": { "fallback": "var2" },
+  "contents": [{
+    "id": "var1",
+    "filters": [{
+      "condition": {
+        "type": "profilePropertyCondition",
+        "parameterValues": {
+          "propertyName": "properties.pageViewCount",
+          "comparisonOperator": "greaterThan",
+          "propertyValueInteger": 5
+        }
+      }
+    }]
+  }, {
+    "id": "var2"
+  }]
+}, variants, false, function (successfulFilters, selectedFilter) {
+  if (selectedFilter) {
+    document.getElementById(selectedFilter.content).style.display = '';
+  }
+});
+&lt;/script&gt;</code></pre>
+                <p class="small text-muted">The personalization engine evaluates conditions server-side against the visitor&rsquo;s profile and returns which variant to display, keeping your business logic private.</p>
+            </div>
+        </div>
+    </div>
+</section>
+
+<hr class="section-divider">
+
+<!-- ============================================================ -->
+<!-- 6. Next Steps -->
+<!-- ============================================================ -->
+<section id="next-steps" class="section">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-10">
+                <h2>Next Steps</h2>
+                <p class="text-muted mb-4">You now have a working Unomi environment with event tracking, profile management, rules, and personalization. Here&rsquo;s where to go next.</p>
+
+                <div class="row g-4">
+                    <div class="col-md-6">
+                        <div class="feature-card h-100">
+                            <div class="feature-icon"><i class="bi bi-book"></i></div>
+                            <h3 class="h6 fw-semibold mb-2">Full Documentation</h3>
+                            <p class="small text-muted mb-2">Dive deeper into segmentation, scoring, conditions, and actions in the comprehensive manual.</p>
+                            <a href="https://unomi.apache.org/manual/latest/index.html" class="small fw-semibold">Read the manual <i class="bi bi-arrow-right"></i></a>
+                        </div>
+                    </div>
+                    <div class="col-md-6">
+                        <div class="feature-card h-100">
+                            <div class="feature-icon"><i class="bi bi-braces"></i></div>
+                            <h3 class="h6 fw-semibold mb-2">REST API Reference</h3>
+                            <p class="small text-muted mb-2">Explore every endpoint for profiles, events, segments, rules, and more.</p>
+                            <a href="https://unomi.apache.org/rest-api-doc/index.html" class="small fw-semibold">Browse the API <i class="bi bi-arrow-right"></i></a>
+                        </div>
+                    </div>
+                    <div class="col-md-6">
+                        <div class="feature-card h-100">
+                            <div class="feature-icon"><i class="bi bi-puzzle"></i></div>
+                            <h3 class="h6 fw-semibold mb-2">Integrations</h3>
+                            <p class="small text-muted mb-2">See how organizations use Unomi with CMS, CRM, e-commerce, and other platforms.</p>
+                            <a href="/integrations.html" class="small fw-semibold">View integrations <i class="bi bi-arrow-right"></i></a>
+                        </div>
+                    </div>
+                    <div class="col-md-6">
+                        <div class="feature-card h-100">
+                            <div class="feature-icon"><i class="bi bi-chat-dots"></i></div>
+                            <h3 class="h6 fw-semibold mb-2">Get Help</h3>
+                            <p class="small text-muted mb-2">Stuck? The community is friendly and responsive on the mailing list and Slack.</p>
+                            <a href="/community/index.html" class="small fw-semibold">Join the community <i class="bi bi-arrow-right"></i></a>
+                        </div>
+                    </div>
+                </div>
           </div>
         </div>
+    </div>
+</section>
 
-      </div><!-- /.container -->
+<!-- Debugging Tip -->
+<section class="section section-alt">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-10">
+                <div class="feature-card tip-box">
+                    <h3 class="h6 fw-semibold mb-3"><i class="bi bi-bug me-2"></i>Debugging Tip</h3>
+                    <p class="small text-muted mb-2">Enable debug logging via the Karaf SSH console to see detailed event validation and rule execution logs:</p>
+<pre><code># Connect to Karaf SSH console
+ssh -p 8102 karaf@localhost
+
+# Enable schema validation debug logs
+karaf@root()&gt; log:set DEBUG org.apache.unomi.schema.impl.SchemaServiceImpl
+
+# Watch logs in real-time
+karaf@root()&gt; log:tail</code></pre>
+                    <p class="small text-muted mb-0">Useful commands: <code>event-tail</code>, <code>event-list</code>, <code>rule-list</code>, <code>rule-tail</code>, <code>profile-list</code>, <code>profile-view &lt;ID&gt;</code></p>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>
diff --git a/src/main/webapp/use-cases.html b/src/main/webapp/use-cases.html
index 96e727a..6333da6 100644
--- a/src/main/webapp/use-cases.html
+++ b/src/main/webapp/use-cases.html
@@ -1,44 +1,199 @@
 ---
 title: Use Cases
+description: "Apache Unomi use cases: web personalization, mobile analytics, profile management, and data backbone for AI agents and machine learning."
+keywords: "Apache Unomi use cases, web personalization, mobile analytics, customer profiles, AI CDP, machine learning, segmentation"
 layout: default
+mermaid: true
+structured_data: >
+    <script type="application/ld+json">
+    {
+        "@context": "https://schema.org",
+        "@type": "FAQPage",
+        "mainEntity": [
+            {
+                "@type": "Question",
+                "name": "How can Apache Unomi be used for AI and machine learning?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "Apache Unomi serves as the real-time customer data backbone for AI agents, chatbots, recommendation engines, and predictive models. It provides unified profiles, segments, and event data via REST API with built-in consent management to ensure AI only processes data customers have explicitly consented to share."
+                }
+            },
+            {
+                "@type": "Question",
+                "name": "How does Apache Unomi work for web personalization?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "Apache Unomi integrates with CMS platforms to track visitors, build profiles, define real-time segments, and deliver personalized content. A lightweight JavaScript tracker sends events, while the context servlet returns matching personalization rules for the current visitor."
+                }
+            },
+            {
+                "@type": "Question",
+                "name": "Can Apache Unomi be used as a mobile analytics backend?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "Yes. Native mobile apps send events to the Unomi REST API to track user journeys, build profiles, and compute segments. This enables personalized mobile experiences based on real-time behavioral data."
+                }
+            },
+            {
+                "@type": "Question",
+                "name": "How does Apache Unomi handle centralized profile management?",
+                "acceptedAnswer": {
+                    "@type": "Answer",
+                    "text": "Unomi aggregates customer data from CRM, support, commerce, and other systems into unified profiles. It resolves multiple identities across touchpoints and provides a single customer view via REST API."
+                }
+            }
+        ]
+    }
+    </script>
 ---
 
-    <div class="container pt-5 pb-2">
-      <div class="jumbotron p-3 p-md-5 text-white bg-primary">
-        <div class="col-md-12 px-0">
-          <h1 class="display-5 font-italic">Apache Unomi has several use cases for what you need!</h1>
-          <p class="lead my-3">Apache Unomi is a REST server that manages user profiles and events related to the profiles. It can be used to integrate personalization and profile management within very different systems such as CMS, CRMs, Issue Trackers, native mobile application. It was designed to be easy to integrate with external systems, promoting profile sharing and re-use in very different applications.</p>
-          <p class="lead mb-0">Let's start !</p>
-        </div>
-      </div>
+<!-- Page Header -->
+<section class="page-header">
+    <div class="container">
+        <p class="section-label text-hero-label">Use Cases</p>
+        <h1>What Can You Build with Unomi?</h1>
+        <p class="lead">Apache Unomi is a flexible CDP that adapts to many architectures. Here are the most common use cases.</p>
     </div>
+</section>
 
-      <div class="container">
-
-        <!-- use-cases -->
-        <div class="row pb-4 pt-4 border-bottom">
-            <div class="col-md-12">
-              <h5 class="project-heading pb-4">Use cases</h5>
-
-              <h3 class="font-italic">Use Apache Unomi as a <span class="text-muted">personalization service</span> for a Web CMS</h3>
-              <div class="pb-2 pt-2">
-                <p>In this use case Apache Unomi is used to track all the users that visits the sites being managed by the CMS. The sites may also contain personalized content elements that will use the profile information coming from Apache Unomi to change their display based on the user. It will also send events (such as login events for example) back to the server using simple AJAX calls to the Apache Unomi REST API.</p>
-                <p>The Web CMS can also build UIs to expose the privacy management feature to end-users of the platform, and will of course build UIs to perform administration tasks such as profile, segments, goals, rules management.</p>
-              </div>
-
-              <h3 class="font-italic">Use Apache Unomi as an <span class="text-muted">analytics service</span> for a native mobile application</h3>
-              <div class="pb-2 pt-2">
-                <p>In this case the server is used as a back-end for a native mobile application that will authenticate a user and then send events to the server when the user performs certains tasks within the app. Tasks may include pressing a button, getting close to a location (using GPS or beacons), etc…</p>
-                <p>The application may also include a UI to expose the privacy management features of Apache Unomi.</p>
-              </div>
-
-              <h3 class="font-italic">Use Apache Unomi as a <span class="text-muted">centralized profile management system</span></h3>
-              <div class="pb-2 pt-2">
-                <p>In this use case the server is used a centralized profile management system, making it easy to aggregate different profile information that may be stored in different systems such as CRMs, Issue tracking systems, forums, CMS, … One way of achieving this is to make sure that “anonymous” profiles are merged when an event such as a login happens and a unique cross-system identifier (usually the email address) is detected on each system.</p>
-                <p>In this case connectors to all the different systems will need to be developped (and hopefully contributed back to the Apache Unomi community), so that the centralization of the information is managed by an Open Source and standards compliant server community.</p>
-              </div>
+<!-- Use Case 1: AI-Powered Customer Intelligence -->
+<section class="section">
+    <div class="container">
+        <div class="row g-5 align-items-center">
+            <div class="col-lg-6">
+                <span class="badge badge-primary mb-3">AI &amp; Machine Learning</span>
+                <h2>Data backbone for AI agents &amp; copilots</h2>
+                <p class="text-muted">In an AI-first world, models are only as good as the data they can access. Use Unomi as the real-time customer data layer that feeds AI agents, chatbots, recommendation engines, and predictive models with rich, privacy-compliant context.</p>
+                <ul class="list-unstyled small">
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>Feed customer profiles and segments to LLMs for context-aware responses</span></li>
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>Power recommendation engines with real-time behavioral data</span></li>
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>Use rules to trigger AI workflows when specific events occur</span></li>
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>Built-in consent management ensures AI only processes consented data</span></li>
+                </ul>
             </div>
-        </div><!-- use-cases -->
+            <div class="col-lg-6 d-flex align-items-center justify-content-center">
+                <pre class="mermaid">
+graph TD
+    U["Apache Unomi"] -->|Profiles &amp; Segments| AI["πŸ€– AI Agent / LLM"]
+    U -->|Event Stream| ML["πŸ“Š ML Pipeline"]
+    AI -->|Personalized Actions| APP["🌐 App / Website"]
+    ML -->|Predictions| U
+    APP -->|Events| U
+                </pre>
+            </div>
+        </div>
+    </div>
+</section>
 
-      </div><!-- /.container -->
+<hr class="section-divider">
 
+<!-- Use Case 2: Web Personalization -->
+<section class="section">
+    <div class="container">
+        <div class="row g-5 align-items-center flex-lg-row-reverse">
+            <div class="col-lg-6">
+                <span class="badge badge-primary mb-3">Web Personalization</span>
+                <h2>Personalization service for a Web CMS</h2>
+                <p class="text-muted">Track every visitor across your CMS-managed sites. Use profile data to personalize content elements in real time &mdash; showing different banners, offers, or articles based on who the visitor is.</p>
+                <ul class="list-unstyled small">
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>Track page views, clicks, logins, and custom events via AJAX calls</span></li>
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>Build user-facing privacy management UIs</span></li>
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>Manage profiles, segments, goals, and rules from admin interfaces</span></li>
+                </ul>
+            </div>
+            <div class="col-lg-6 d-flex align-items-center justify-content-center">
+                <pre class="mermaid">
+graph TD
+    V["🌐 Visitor"] -->|Page view| CMS["Web CMS"]
+    CMS -->|Event| U["Apache Unomi"]
+    U -->|Profile + Segments| CMS
+    CMS -->|Personalized Content| V
+                </pre>
+            </div>
+        </div>
+    </div>
+</section>
+
+<hr class="section-divider">
+
+<!-- Use Case 3: Mobile Analytics -->
+<section class="section">
+    <div class="container">
+        <div class="row g-5 align-items-center">
+            <div class="col-lg-6">
+                <span class="badge badge-primary mb-3">Mobile Analytics</span>
+                <h2>Analytics service for mobile apps</h2>
+                <p class="text-muted">Use Unomi as the backend for native mobile applications. Authenticate users, then send events for button taps, GPS proximity, beacon interactions, and other app actions.</p>
+                <ul class="list-unstyled small">
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>REST API works from any mobile SDK or language</span></li>
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>Track GPS, beacons, and in-app events</span></li>
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>Expose privacy controls to app users</span></li>
+                </ul>
+            </div>
+            <div class="col-lg-6 d-flex align-items-center justify-content-center">
+                <pre class="mermaid">
+graph LR
+    M["πŸ“± Mobile App"] -->|Auth + Events| U["Apache Unomi"]
+    U --> P["Profile Store"]
+    U --> S["Segmentation"]
+    U --> SC["Scoring"]
+    B["πŸ“‘ Beacons"] -->|Proximity| M
+                </pre>
+            </div>
+        </div>
+    </div>
+</section>
+
+<hr class="section-divider">
+
+<!-- Use Case 4: Centralized Profile Management -->
+<section class="section">
+    <div class="container">
+        <div class="row g-5 align-items-center flex-lg-row-reverse">
+            <div class="col-lg-6">
+                <span class="badge badge-primary mb-3">Centralized Profiles</span>
+                <h2>Centralized profile management</h2>
+                <p class="text-muted">Aggregate customer data from CRMs, issue trackers, forums, CMS, and any other system into one unified profile. Anonymous profiles merge automatically when a shared identifier (like an email) is detected.</p>
+                <ul class="list-unstyled small">
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>Merge anonymous and identified profiles automatically</span></li>
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>Build connectors to CRM, support, and commerce systems</span></li>
+                    <li class="d-flex align-items-start mb-2"><i class="bi bi-check2 text-primary me-2 mt-1"></i><span>Open standards-compliant &mdash; community-driven connectors</span></li>
+                </ul>
+            </div>
+            <div class="col-lg-6 d-flex align-items-center justify-content-center">
+                <pre class="mermaid">
+graph TD
+    CRM["πŸ’Ό CRM"] --> U["Apache Unomi"]
+    FORUM["πŸ’¬ Forum"] --> U
+    CMS2["🌐 CMS"] --> U
+    SHOP["πŸ›’ Commerce"] --> U
+    U --> PROFILE["Unified Profile"]
+    PROFILE --> SEG["Segments"]
+    PROFILE --> EXPORT["Export / Sync"]
+                </pre>
+            </div>
+        </div>
+    </div>
+</section>
+
+<!-- CTA -->
+<section class="section section-alt">
+    <div class="container">
+        <div class="row justify-content-center">
+            <div class="col-lg-8">
+                <div class="cta-banner text-center">
+                    <h3 class="h4 mb-3">Ready to try it?</h3>
+                    <p class="mb-4">Get Apache Unomi running in minutes with Docker, then explore the REST API.</p>
+                    <div class="d-flex flex-wrap justify-content-center gap-3">
+                        <a href="/get-started.html#quickstart" class="btn btn-light fw-semibold">
+                            <i class="bi bi-rocket-takeoff me-2"></i>Quick Start
+                        </a>
+                        <a href="/integrations.html" class="btn btn-outline-light fw-semibold">
+                            <i class="bi bi-puzzle me-2"></i>See Real-World Integrations
+                        </a>
+                    </div>
+                </div>
+            </div>
+        </div>
+    </div>
+</section>