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

asf-ci-deploy pushed a commit to branch asf-site-production
in repository https://gitbox.apache.org/repos/asf/grails-website.git


The following commit(s) were added to refs/heads/asf-site-production by this 
push:
     new 7d31273d01e Updating apache/grails-website asf-site-production branch 
for GitHub Actions run:31499364847
7d31273d01e is described below

commit 7d31273d01ec4c562b1a4a9adc8a5e67866d2009
Author: jamesfredley <[email protected]>
AuthorDate: Tue Aug 11 14:19:16 2026 +0000

    Updating apache/grails-website asf-site-production branch for GitHub 
Actions run:31499364847
---
 foundation/minutes.xml                       |   2 +-
 foundation/minutes/20210321-tab.html         |  10 ++--
 foundation/minutes/20211217-tab.html         |  10 ++--
 foundation/minutes/20220323-tab.html         |  10 ++--
 foundation/minutes/20220711-tab.html         |  10 ++--
 foundation/minutes/20221128-tab.html         |  10 ++--
 foundation/minutes/index.html                |   2 +-
 guides/_redirects.json                       |   2 +-
 images/grails-teepublic-shirt-acid-black.jpg | Bin 0 -> 47420 bytes
 index.html                                   |  13 +++++
 plugins.html                                 |   4 +-
 plugins/owners/grails-plugins.html           |   2 +-
 plugins/tags/auditing.html                   |   2 +-
 rss.xml                                      |   2 +-
 stylesheets/screen.css                       |  74 +++++++++++++++++++++++++++
 15 files changed, 120 insertions(+), 33 deletions(-)

diff --git a/foundation/minutes.xml b/foundation/minutes.xml
index af4ee72c6ee..f7d1caf445f 100644
--- a/foundation/minutes.xml
+++ b/foundation/minutes.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><rss 
xmlns:content="http://purl.org/rss/1.0/modules/content/"; 
version="2.0"><channel><title>Foundation | Grails 
Framework</title><link>https://grails.apache.org</link><description>A powerful 
Groovy-based web application framework for the JVM built on top of Spring 
Boot</description><pubDate>Tue, 11 Aug 2026 12:30:52 
GMT</pubDate><item><title>Technology Advisory Board 
Meeting</title><link>https://grails.apache.org/foundation/minutes/20221128-tab.html<
 [...]
+<?xml version="1.0" encoding="UTF-8"?><rss 
xmlns:content="http://purl.org/rss/1.0/modules/content/"; 
version="2.0"><channel><title>Foundation | Grails 
Framework</title><link>https://grails.apache.org</link><description>A powerful 
Groovy-based web application framework for the JVM built on top of Spring 
Boot</description><pubDate>Tue, 11 Aug 2026 14:08:58 
GMT</pubDate><item><title>Technology Advisory Board 
Meeting</title><link>https://grails.apache.org/foundation/minutes/20221128-tab.html<
 [...]
 <h3>Meeting Attendance:</h3>
 <ul>
 <li><strong>Puneet Behl</strong> - Grails Product Development Lead at Object 
Computing</li>
diff --git a/foundation/minutes/20210321-tab.html 
b/foundation/minutes/20210321-tab.html
index 75c72befb1f..8a0fea64dbe 100644
--- a/foundation/minutes/20210321-tab.html
+++ b/foundation/minutes/20210321-tab.html
@@ -239,17 +239,17 @@ community events</p>
         <h3>2022</h3>
         <ul>
           <li>
-            <minutesLink>website.model.HtmlMinutes@9f14d4c</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@7a31b1b1</minutesLink>
             <parseDate>Nov 28, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@4e5ca285</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@4e29e6ea</minutesLink>
             <parseDate>Jul 07, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@721ad0e9</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@3c07f1cf</minutesLink>
             <parseDate>Mar 23, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
@@ -257,12 +257,12 @@ community events</p>
         <h3>2021</h3>
         <ul>
           <li>
-            <minutesLink>website.model.HtmlMinutes@a611d67</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@71a3837d</minutesLink>
             <parseDate>Dec 17, 2021</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@5f444266</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@6d36aaa3</minutesLink>
             <parseDate>Mar 21, 2021</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
diff --git a/foundation/minutes/20211217-tab.html 
b/foundation/minutes/20211217-tab.html
index 4628f54a1ed..54808fcfe69 100644
--- a/foundation/minutes/20211217-tab.html
+++ b/foundation/minutes/20211217-tab.html
@@ -281,17 +281,17 @@
         <h3>2022</h3>
         <ul>
           <li>
-            <minutesLink>website.model.HtmlMinutes@9f14d4c</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@7a31b1b1</minutesLink>
             <parseDate>Nov 28, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@4e5ca285</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@4e29e6ea</minutesLink>
             <parseDate>Jul 07, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@721ad0e9</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@3c07f1cf</minutesLink>
             <parseDate>Mar 23, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
@@ -299,12 +299,12 @@
         <h3>2021</h3>
         <ul>
           <li>
-            <minutesLink>website.model.HtmlMinutes@a611d67</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@71a3837d</minutesLink>
             <parseDate>Dec 17, 2021</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@5f444266</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@6d36aaa3</minutesLink>
             <parseDate>Mar 21, 2021</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
diff --git a/foundation/minutes/20220323-tab.html 
b/foundation/minutes/20220323-tab.html
index ad755a976e6..903d9587e80 100644
--- a/foundation/minutes/20220323-tab.html
+++ b/foundation/minutes/20220323-tab.html
@@ -324,17 +324,17 @@
         <h3>2022</h3>
         <ul>
           <li>
-            <minutesLink>website.model.HtmlMinutes@9f14d4c</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@7a31b1b1</minutesLink>
             <parseDate>Nov 28, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@4e5ca285</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@4e29e6ea</minutesLink>
             <parseDate>Jul 07, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@721ad0e9</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@3c07f1cf</minutesLink>
             <parseDate>Mar 23, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
@@ -342,12 +342,12 @@
         <h3>2021</h3>
         <ul>
           <li>
-            <minutesLink>website.model.HtmlMinutes@a611d67</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@71a3837d</minutesLink>
             <parseDate>Dec 17, 2021</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@5f444266</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@6d36aaa3</minutesLink>
             <parseDate>Mar 21, 2021</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
diff --git a/foundation/minutes/20220711-tab.html 
b/foundation/minutes/20220711-tab.html
index a283cdade3d..0b5477d49bf 100644
--- a/foundation/minutes/20220711-tab.html
+++ b/foundation/minutes/20220711-tab.html
@@ -232,17 +232,17 @@
         <h3>2022</h3>
         <ul>
           <li>
-            <minutesLink>website.model.HtmlMinutes@9f14d4c</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@7a31b1b1</minutesLink>
             <parseDate>Nov 28, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@4e5ca285</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@4e29e6ea</minutesLink>
             <parseDate>Jul 07, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@721ad0e9</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@3c07f1cf</minutesLink>
             <parseDate>Mar 23, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
@@ -250,12 +250,12 @@
         <h3>2021</h3>
         <ul>
           <li>
-            <minutesLink>website.model.HtmlMinutes@a611d67</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@71a3837d</minutesLink>
             <parseDate>Dec 17, 2021</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@5f444266</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@6d36aaa3</minutesLink>
             <parseDate>Mar 21, 2021</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
diff --git a/foundation/minutes/20221128-tab.html 
b/foundation/minutes/20221128-tab.html
index 8c9fc813311..4a15b1556ba 100644
--- a/foundation/minutes/20221128-tab.html
+++ b/foundation/minutes/20221128-tab.html
@@ -271,17 +271,17 @@
         <h3>2022</h3>
         <ul>
           <li>
-            <minutesLink>website.model.HtmlMinutes@9f14d4c</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@7a31b1b1</minutesLink>
             <parseDate>Nov 28, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@4e5ca285</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@4e29e6ea</minutesLink>
             <parseDate>Jul 07, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@721ad0e9</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@3c07f1cf</minutesLink>
             <parseDate>Mar 23, 2022</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
@@ -289,12 +289,12 @@
         <h3>2021</h3>
         <ul>
           <li>
-            <minutesLink>website.model.HtmlMinutes@a611d67</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@71a3837d</minutesLink>
             <parseDate>Dec 17, 2021</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
           <li>
-            <minutesLink>website.model.HtmlMinutes@5f444266</minutesLink>
+            <minutesLink>website.model.HtmlMinutes@6d36aaa3</minutesLink>
             <parseDate>Mar 21, 2021</parseDate>
             <a href='minutesLink'>MMM dd - Technology Advisory Board 
Meeting</a>
           </li>
diff --git a/foundation/minutes/index.html b/foundation/minutes/index.html
index 3281c504d1e..bb822e03752 100644
--- a/foundation/minutes/index.html
+++ b/foundation/minutes/index.html
@@ -126,7 +126,7 @@
     </div>
 </header>
 
-<article><div class='header-bar chalices-bg'><div class='content'><h1><a 
href='https://grails.apache.org/foundation/index.html'>Foundation</a></h1></div></div><div
 class='clear content container'><h3 class='column-header'>Meeting Minutes 
Archive</h3><div class='light'><div class='padded' style='padding-top: 0;'><div 
class="three-columns"><div class='column'><article class='blog-card' 
style='margin-bottom: 0; background-image: 
url(https://grails.apache.org/images/grails-blog-index-6.png)' [...]
+<article><div class='header-bar chalices-bg'><div class='content'><h1><a 
href='https://grails.apache.org/foundation/index.html'>Foundation</a></h1></div></div><div
 class='clear content container'><h3 class='column-header'>Meeting Minutes 
Archive</h3><div class='light'><div class='padded' style='padding-top: 0;'><div 
class="three-columns"><div class='column'><article class='blog-card' 
style='margin-bottom: 0; background-image: 
url(https://grails.apache.org/images/grails-blog-index-6.png)' [...]
 <footer>
     <div class='content'>
         <div class='apache-grails'>
diff --git a/guides/_redirects.json b/guides/_redirects.json
index 4afc8fbf2ae..d822360198b 100644
--- a/guides/_redirects.json
+++ b/guides/_redirects.json
@@ -1,6 +1,6 @@
 {
     "version": 1,
-    "generated": "2026-08-11T12:32:47.863180782Z",
+    "generated": "2026-08-11T14:10:47.774443606Z",
     "from_base": "https://guides.grails.org";,
     "to_base": "https://grails.apache.org/guides";,
     "count": 1785,
diff --git a/images/grails-teepublic-shirt-acid-black.jpg 
b/images/grails-teepublic-shirt-acid-black.jpg
new file mode 100644
index 00000000000..c4a095d568d
Binary files /dev/null and b/images/grails-teepublic-shirt-acid-black.jpg differ
diff --git a/index.html b/index.html
index fcb37716e4c..0626c42cd44 100644
--- a/index.html
+++ b/index.html
@@ -269,6 +269,19 @@
                 </div>
             </div>
         </div>
+        <section class="shirt-promotion" 
aria-labelledby="shirt-promotion-title">
+            <img class="shirt-promotion-image" 
src="https://grails.apache.org/images/grails-teepublic-shirt-acid-black.jpg";
+                 alt="Apache Grails T-shirt in Acid Black with an orange 
Grails logo" width="630" height="630"
+                 loading="lazy">
+            <div class="shirt-promotion-copy">
+                <h2 id="shirt-promotion-title">Apache Grails T-Shirt</h2>
+                <p>Take the Apache Grails logo with you on a TeePublic 
T-shirt.</p>
+                <p class="shirt-promotion-variant">Shown in Male Fit, Vintage, 
Acid Black. Select Vintage and Acid Black
+                    on TeePublic to match this look.</p>
+                <a class="shirt-promotion-link"
+                   
href="https://www.teepublic.com/t-shirt/96393154-apache-grails?store_id=3969012";>View
 the T-shirt on TeePublic</a>
+            </div>
+        </section>
     </div>
 </article>
 <article class="testimonials">
diff --git a/plugins.html b/plugins.html
index 78d74554e8a..eceaf1c984d 100644
--- a/plugins.html
+++ b/plugins.html
@@ -126,7 +126,7 @@
     </div>
 </header>
 
-<article><div class='header-bar chalices-bg'><div class='content'><h1>Grails 
Plugins</h1></div></div><div class='content plugins-page'><nav 
class='plugins-nav'><a href='#all' class='nav-tab active' data-tab='all'>All 
(256)</a><a href='#recent' class='nav-tab' data-tab='recent'>Recently 
Updated</a><a href='#stars' class='nav-tab' data-tab='stars'>Most Stars</a><a 
href='#tags' class='nav-tab' data-tab='tags'>Tags</a><a href='#owners' 
class='nav-tab' data-tab='owners'>Owners</a><a href='#li [...]
+<article><div class='header-bar chalices-bg'><div class='content'><h1>Grails 
Plugins</h1></div></div><div class='content plugins-page'><nav 
class='plugins-nav'><a href='#all' class='nav-tab active' data-tab='all'>All 
(256)</a><a href='#recent' class='nav-tab' data-tab='recent'>Recently 
Updated</a><a href='#stars' class='nav-tab' data-tab='stars'>Most Stars</a><a 
href='#tags' class='nav-tab' data-tab='tags'>Tags</a><a href='#owners' 
class='nav-tab' data-tab='owners'>Owners</a><a href='#li [...]
 in controller responses</p><div class='coords-wrapper'><a 
href='https://repo.grails.org/plugins/org/grails/plugins/cache-headers/2.0.2' 
class='maven-link' target='_blank' title='View on Maven repository'><code 
class='coords'>org.grails.plugins:<wbr>cache-headers:<wbr>2.0.2</code></a><button
 class='copy-btn' data-coords='org.grails.plugins:cache-headers:2.0.2' 
title='Copy to clipboard'>📋</button></div><div class='plugin-card-footer'><div 
class='footer-left'><a href='https://grails.apache. [...]
 on the Java API for RESTful Web Services.
 
@@ -154,7 +154,7 @@ functions for listing the results based on the search query.
 This plugin gives application authors a powerful framework to quickly get a 
scalable messaging solution running quickly.</p><div class='coords-wrapper'><a 
href='https://repo.grails.org/plugins/org/grails/plugins/rabbitmq-native/4.0.0' 
class='maven-link' target='_blank' title='View on Maven repository'><code 
class='coords'>org.grails.plugins:<wbr>rabbitmq-native:<wbr>4.0.0</code></a><button
 class='copy-btn' data-coords='org.grails.plugins:rabbitmq-native:4.0.0' 
title='Copy to clipboard'>📋 [...]
 Just point the auto complete JS URL at suggest/[subject]?term=bla and you get 
a JSON list of suggestion strings back.
 You can add suggestion handlers to the service as a closure, or just add a 
text file named [subject].txt with an itemper line to be searched for matches. 
The simple search returns a result if an item string contains the term anywhere.
-See docs for details.</p><div class='coords-wrapper'><a 
href='https://repo.grails.org/plugins/com/nerderg/plugins/SimpleSuggestions3/1.1'
 class='maven-link' target='_blank' title='View on Maven repository'><code 
class='coords'>com.nerderg.plugins:<wbr>SimpleSuggestions3:<wbr>1.1</code></a><button
 class='copy-btn' data-coords='com.nerderg.plugins:SimpleSuggestions3:1.1' 
title='Copy to clipboard'>📋</button></div><div class='plugin-card-footer'><div 
class='footer-left'><a href='https://grai [...]
+See docs for details.</p><div class='coords-wrapper'><a 
href='https://repo.grails.org/plugins/com/nerderg/plugins/SimpleSuggestions3/1.1'
 class='maven-link' target='_blank' title='View on Maven repository'><code 
class='coords'>com.nerderg.plugins:<wbr>SimpleSuggestions3:<wbr>1.1</code></a><button
 class='copy-btn' data-coords='com.nerderg.plugins:SimpleSuggestions3:1.1' 
title='Copy to clipboard'>📋</button></div><div class='plugin-card-footer'><div 
class='footer-left'><a href='https://grai [...]
 <footer>
     <div class='content'>
         <div class='apache-grails'>
diff --git a/plugins/owners/grails-plugins.html 
b/plugins/owners/grails-plugins.html
index 8801521bc45..129a0c2c85f 100644
--- a/plugins/owners/grails-plugins.html
+++ b/plugins/owners/grails-plugins.html
@@ -126,7 +126,7 @@
     </div>
 </header>
 
-<article><div class='header-bar chalices-bg'><div class='content'><h1>Grails 
Plugins</h1></div></div><div class='content plugins-page'><div 
class='breadcrumbs'><a href='https://grails.apache.org/plugins.html'>All Grails 
Plugins</a><span> » </span><span>Plugins by creator: 
grails-plugins</span></div><div class='plugins-section'><h2 
class='section-title'>Plugins by creator: grails-plugins</h2><ul 
class='plugin-list'><li class='plugin'><div class='plugin-header'><h3 
class='name'><a href='ht [...]
+<article><div class='header-bar chalices-bg'><div class='content'><h1>Grails 
Plugins</h1></div></div><div class='content plugins-page'><div 
class='breadcrumbs'><a href='https://grails.apache.org/plugins.html'>All Grails 
Plugins</a><span> » </span><span>Plugins by creator: 
grails-plugins</span></div><div class='plugins-section'><h2 
class='section-title'>Plugins by creator: grails-plugins</h2><ul 
class='plugin-list'><li class='plugin'><div class='plugin-header'><h3 
class='name'><a href='ht [...]
 in controller responses</p><div class='coords-wrapper'><a 
href='https://repo.grails.org/plugins/org/grails/plugins/cache-headers/2.0.2' 
class='maven-link' target='_blank' title='View on Maven repository'><code 
class='coords'>org.grails.plugins:<wbr>cache-headers:<wbr>2.0.2</code></a><button
 class='copy-btn' data-coords='org.grails.plugins:cache-headers:2.0.2' 
title='Copy to clipboard'>📋</button></div><div class='plugin-card-footer'><div 
class='footer-left'><a href='https://grails.apache. [...]
 <footer>
     <div class='content'>
diff --git a/plugins/tags/auditing.html b/plugins/tags/auditing.html
index 2311df8c2ef..53b321519ba 100644
--- a/plugins/tags/auditing.html
+++ b/plugins/tags/auditing.html
@@ -126,7 +126,7 @@
     </div>
 </header>
 
-<article><div class='header-bar chalices-bg'><div class='content'><h1>Grails 
Plugins</h1></div></div><div class='content plugins-page'><div 
class='breadcrumbs'><a href='https://grails.apache.org/plugins.html'>All Grails 
Plugins</a><span> » </span><span>Plugins by tag #auditing</span></div><div 
class='plugins-section'><h2 class='section-title'>Plugins by tag 
#auditing</h2><ul class='plugin-list'><li class='plugin'><div 
class='plugin-header'><h3 class='name'><a href='https://github.com/gra [...]
+<article><div class='header-bar chalices-bg'><div class='content'><h1>Grails 
Plugins</h1></div></div><div class='content plugins-page'><div 
class='breadcrumbs'><a href='https://grails.apache.org/plugins.html'>All Grails 
Plugins</a><span> » </span><span>Plugins by tag #auditing</span></div><div 
class='plugins-section'><h2 class='section-title'>Plugins by tag 
#auditing</h2><ul class='plugin-list'><li class='plugin'><div 
class='plugin-header'><h3 class='name'><a href='https://github.com/gra [...]
 <footer>
     <div class='content'>
         <div class='apache-grails'>
diff --git a/rss.xml b/rss.xml
index e3181d8e30e..0d703294c5f 100644
--- a/rss.xml
+++ b/rss.xml
@@ -1,4 +1,4 @@
-<?xml version="1.0" encoding="UTF-8"?><rss 
xmlns:content="http://purl.org/rss/1.0/modules/content/"; 
version="2.0"><channel><title>Blog | Grails 
Framework</title><link>https://grails.apache.org</link><description>A powerful 
Groovy-based web application framework for the JVM built on top of Spring 
Boot</description><pubDate>Tue, 11 Aug 2026 12:31:02 
GMT</pubDate><item><title>Søren Glasius Named 2026 Grails® Lifetime 
Contributor</title><link>https://grails.apache.org/blog/2026-07-28-soren-g [...]
+<?xml version="1.0" encoding="UTF-8"?><rss 
xmlns:content="http://purl.org/rss/1.0/modules/content/"; 
version="2.0"><channel><title>Blog | Grails 
Framework</title><link>https://grails.apache.org</link><description>A powerful 
Groovy-based web application framework for the JVM built on top of Spring 
Boot</description><pubDate>Tue, 11 Aug 2026 14:09:07 
GMT</pubDate><item><title>Søren Glasius Named 2026 Grails® Lifetime 
Contributor</title><link>https://grails.apache.org/blog/2026-07-28-soren-g [...]
 <p>The Apache Grails community is proud to honor <a 
href="https://github.com/sbglasius";>Søren Berg Glasius</a> with the 2026 Grails 
Lifetime Contributor Award. The award recognizes long-term, sustained 
contributions that have strengthened Grails as a framework, an ecosystem, and a 
community.</p>
 <p>For years, Grails users, plugin authors, conference speakers, and project 
contributors have seen the same pattern: Søren shows up for Grails, helps 
others succeed with it, and strengthens its ecosystem. Today he serves on the 
Project Management Committees for Apache Grails and Apache Groovy.</p>
 <h2>A Builder Across the Grails Framework</h2>
diff --git a/stylesheets/screen.css b/stylesheets/screen.css
index 5890c8d47cd..eab8d55506d 100644
--- a/stylesheets/screen.css
+++ b/stylesheets/screen.css
@@ -333,6 +333,80 @@ td {
        margin-top: 20px;
 }
 
+.shirt-promotion {
+       display: grid;
+       grid-template-columns: minmax(0, 1fr);
+       gap: 24px;
+       align-items: center;
+       box-sizing: border-box;
+       margin: 50px 0;
+       padding: 24px;
+       background-color: #ffffff;
+       border-top: 2px solid #feb672;
+       box-shadow: 0 8px 6px -6px #ccc;
+}
+
+.shirt-promotion-image {
+       display: block;
+       width: 100%;
+       max-width: 420px;
+       height: auto;
+       margin: 0 auto;
+}
+
+.shirt-promotion-copy {
+       min-width: 0;
+       color: #666666;
+}
+
+.training .content .shirt-promotion-copy h2 {
+       margin: 0 0 16px;
+       color: #4f4f4f;
+       font-size: 24px;
+       line-height: 1.3;
+}
+
+.shirt-promotion-variant {
+       color: #4f4f4f;
+       font-weight: bold;
+}
+
+.shirt-promotion-link,
+.shirt-promotion-link:visited {
+       display: inline-block;
+       box-sizing: border-box;
+       max-width: 100%;
+       padding: 12px 20px;
+       background-color: #255AA8;
+       box-shadow: 1px 4px 4px #ccc;
+       color: #ffffff;
+       font-family: 'Archia-Light', 'Roboto-Light', "Open Sans", "Helvetica 
Neue", Helvetica, Arial, sans-serif;
+       font-size: 18px;
+       line-height: 1.4;
+       text-decoration: none;
+}
+
+.shirt-promotion-link:hover {
+       background-color: #1d4684;
+       color: #ffffff;
+}
+
+.shirt-promotion-link:focus,
+.shirt-promotion-link:focus-visible {
+       background-color: #1d4684;
+       color: #ffffff;
+       outline: 3px solid #255AA8;
+       outline-offset: 3px;
+}
+
+@media screen and (min-width: 768px) {
+       .shirt-promotion {
+               grid-template-columns: minmax(240px, 0.9fr) minmax(0, 1.1fr);
+               gap: 40px;
+               padding: 32px;
+       }
+}
+
 
 
 body.search thead th,

Reply via email to