You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@grails.apache.org by gi...@apache.org on 2025/06/11 23:29:12 UTC

(grails-static-website) branch asf-site-production updated: Updating apache/grails-static-website asf-site-production branch for Github Actions run:15597860857

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

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


The following commit(s) were added to refs/heads/asf-site-production by this push:
     new 897236fa5b Updating apache/grails-static-website asf-site-production branch for Github Actions run:15597860857
897236fa5b is described below

commit 897236fa5baca8fa7b29905d26f9ef0c8c36d96c
Author: jamesfredley <ja...@users.noreply.github.com>
AuthorDate: Wed Jun 11 23:29:09 2025 +0000

    Updating apache/grails-static-website asf-site-production branch for Github Actions run:15597860857
---
 blog/2015-03-01.html                               |  12 +-
 blog/2016-04-13.html                               |   6 +-
 blog/2016-04-28.html                               |  12 +-
 blog/2016-05-26.html                               |  12 +-
 blog/2016-06-02.html                               |  12 +-
 blog/2016-06-07.html                               |  12 +-
 blog/2016-06-26.html                               |  12 +-
 blog/2016-07-06.html                               |  12 +-
 blog/2016-08-01.html                               |  12 +-
 blog/2016-08-31.html                               |  12 +-
 blog/2016-11-01.html                               |  12 +-
 blog/2016-11-10.html                               |   6 +-
 blog/2016-12-14.html                               |  12 +-
 blog/2017-04-02.html                               |  12 +-
 blog/2017-04-12.html                               |  12 +-
 blog/2017-06-28.html                               |   6 +-
 blog/2017-11-30.html                               |  12 +-
 blog/2017-12-05.html                               |  12 +-
 blog/2018-05-24.html                               |  12 +-
 blog/2018-06-22.html                               |  12 +-
 blog/2019-01-07.html                               |   6 +-
 blog/2019-05-30.html                               |  12 +-
 blog/2020-09-10-grails-state-of-union.html         |  12 +-
 .../2020-10-26-grails-foundation-announcement.html |  12 +-
 blog/2021-01-22-grails-exciting-updates.html       |  12 +-
 blog/2021-03-22-meet-the-new-mascot.html           |  12 +-
 blog/2021-06-10-grails-wrapper-update.html         |  12 +-
 blog/2021-07-20-call-for-productivity-tips.html    |  12 +-
 blog/2021-08-12-grails-5-rc1-release.html          |  12 +-
 blog/2021-08-25-groovy-4-webinar.html              |  12 +-
 blog/2021-09-02-grails-deep-dive.html              |  12 +-
 .../2021-09-15-q3-town-hall-meeting-scheduled.html |  12 +-
 blog/2021-09-17-groovy-4-webinar.html              |  12 +-
 blog/2021-09-24-q3-town-hall-meeting.html          |  12 +-
 blog/2021-10-08-developer-advocate-announced.html  |  12 +-
 blog/2021-10-11-grails-5-ga.html                   |  12 +-
 blog/2021-11-11.html                               |  12 +-
 blog/2021-11-23-db-migration-plugin-update.html    |  12 +-
 ...-12-06-february-2022-training-announcement.html |  12 +-
 blog/2021-12-14-log4j2-cve.html                    |  12 +-
 blog/2021-12-15-grails-five-one.html               |  12 +-
 blog/2022-01-07-2gm-town-hall-q1.html              |  12 +-
 ...nterprise-tools-and-infrastructure-partner.html |  12 +-
 blog/2022-03-31-grails-spring-rce.html             |  12 +-
 ...rains-new-tools-and-infrastructure-partner.html |  12 +-
 blog/2022-07-18-rce-vulnerability.html             |  12 +-
 blog/2022-09-28-static-binding-bug.html            |  12 +-
 blog/2022-11-22-ss-plugin-auth-cve.html            |  12 +-
 blog/2023-02-08-repository-maint.html              |  12 +-
 ...grails-foundation-joining-unity-foundation.html |  12 +-
 blog/2023-03-29-grails-6-m2.html                   |  12 +-
 blog/2023-05-27-grails-6-rc1.html                  |  12 +-
 blog/2023-07-25-introducing-grails-6.html          |  12 +-
 blog/2023-08-03-introducing-new-grails-forge.html  |  12 +-
 ...-introducing-grails-spring-security-core-6.html |  12 +-
 blog/2023-09-11-the-new-grails-plugin-portal.html  |  12 +-
 blog/2023-11-14-introducing-grails-6_1_0.html      |  12 +-
 blog/2023-12-20-cve-data-binding-dos.html          |  12 +-
 blog/2024-06-07-grails-future.html                 |  12 +-
 blog/2024-06-25-grails-seven-mvp.html              |  12 +-
 .../2024-10-01-grails-community-contributions.html |  12 +-
 blog/2024-10-03-introducing-grails-6-2-1.html      |  12 +-
 blog/2024-11-20-introducing-grails-6-2-2.html      |  12 +-
 blog/2024-12-23-grails-7-m1.html                   |  12 +-
 ...25-01-02-grails-community-rockstar-fredley.html |  12 +-
 blog/2025-01-03-introducing-grails-6-2-3.html      |  12 +-
 blog/2025-03-05-grails-7-m3.html                   |  14 +-
 ...rails-7-m3.html => 2025-06-10-grails-7-m4.html} | 308 +++++++--------------
 blog/index.html                                    | 162 +++++------
 foundation/minutes.xml                             |   2 +-
 rss.xml                                            | 181 +++++++++++-
 sitemap.xml                                        |   3 +
 72 files changed, 759 insertions(+), 679 deletions(-)

diff --git a/blog/2015-03-01.html b/blog/2015-03-01.html
index 5b7ee4600e..801f5caf49 100644
--- a/blog/2015-03-01.html
+++ b/blog/2015-03-01.html
@@ -370,6 +370,12 @@ class DemoControllerFunctionalSpec extends GebSpec {
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -380,12 +386,6 @@ class DemoControllerFunctionalSpec extends GebSpec {
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2016-04-13.html b/blog/2016-04-13.html
index 257b89a9f6..26c6bf74a4 100644
--- a/blog/2016-04-13.html
+++ b/blog/2016-04-13.html
@@ -126,9 +126,9 @@ json {
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
-    <h3>March 5, 2025</h3>
-    <h2>Grails 7.0.0-M3 - Release Announcement</h2>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/quickcast.jpg)'>
diff --git a/blog/2016-04-28.html b/blog/2016-04-28.html
index 8e985c3088..68d3437d82 100644
--- a/blog/2016-04-28.html
+++ b/blog/2016-04-28.html
@@ -86,6 +86,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -96,12 +102,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2016-05-26.html b/blog/2016-05-26.html
index bce1927d8b..2fa1d1c7fe 100644
--- a/blog/2016-05-26.html
+++ b/blog/2016-05-26.html
@@ -104,6 +104,12 @@ runtime 'javax.xml.bind:jaxb-api:2.2.12'
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -114,12 +120,6 @@ runtime 'javax.xml.bind:jaxb-api:2.2.12'
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2016-06-02.html b/blog/2016-06-02.html
index ea4cf37e1b..f3e5e31b22 100644
--- a/blog/2016-06-02.html
+++ b/blog/2016-06-02.html
@@ -86,6 +86,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -96,12 +102,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2016-06-07.html b/blog/2016-06-07.html
index 1f057283c2..a5b3e9abd5 100644
--- a/blog/2016-06-07.html
+++ b/blog/2016-06-07.html
@@ -143,6 +143,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -153,12 +159,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2016-06-26.html b/blog/2016-06-26.html
index bbf59c749d..fc7d93b6a0 100644
--- a/blog/2016-06-26.html
+++ b/blog/2016-06-26.html
@@ -456,6 +456,12 @@ class SkillsTestController {
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -466,12 +472,6 @@ class SkillsTestController {
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2016-07-06.html b/blog/2016-07-06.html
index f0e7d19321..023e5f663e 100644
--- a/blog/2016-07-06.html
+++ b/blog/2016-07-06.html
@@ -245,15 +245,15 @@ If a parent module does not exist or the parent module isn’t being included on
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
-    <h3>March 5, 2025</h3>
-    <h2>Grails 7.0.0-M3 - Release Announcement</h2>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-03-introducing-grails-6-2-3.html'>
-    <h3>January 3, 2025</h3>
-    <h2>Introducing Grails Framework 6.2.3 Release</h2>
+  <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
+    <h3>March 5, 2025</h3>
+    <h2>Grails 7.0.0-M3 - Release Announcement</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2017-04-12.jpg)'>
diff --git a/blog/2016-08-01.html b/blog/2016-08-01.html
index e028f6b933..30961822e9 100644
--- a/blog/2016-08-01.html
+++ b/blog/2016-08-01.html
@@ -156,6 +156,12 @@ Marcin Erdmann (His first stateside appearance at Gr8?) did an all day Ratpack s
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -166,12 +172,6 @@ Marcin Erdmann (His first stateside appearance at Gr8?) did an all day Ratpack s
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2016-08-31.html b/blog/2016-08-31.html
index 14b4d3e8c0..067559563b 100644
--- a/blog/2016-08-31.html
+++ b/blog/2016-08-31.html
@@ -212,6 +212,12 @@ class WidgetService {
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -222,12 +228,6 @@ class WidgetService {
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2016-11-01.html b/blog/2016-11-01.html
index f86e00d9de..872ad51acf 100644
--- a/blog/2016-11-01.html
+++ b/blog/2016-11-01.html
@@ -209,6 +209,12 @@ else {
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -219,12 +225,6 @@ else {
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2016-11-10.html b/blog/2016-11-10.html
index e1d9d2a00f..20b275f096 100644
--- a/blog/2016-11-10.html
+++ b/blog/2016-11-10.html
@@ -167,9 +167,9 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
-    <h3>March 5, 2025</h3>
-    <h2>Grails 7.0.0-M3 - Release Announcement</h2>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2019-01-07.jpg)'>
diff --git a/blog/2016-12-14.html b/blog/2016-12-14.html
index 9d2f4138e5..366889af31 100644
--- a/blog/2016-12-14.html
+++ b/blog/2016-12-14.html
@@ -210,6 +210,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -220,12 +226,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2017-04-02.html b/blog/2017-04-02.html
index 949a6669a5..f5d001ba36 100644
--- a/blog/2017-04-02.html
+++ b/blog/2017-04-02.html
@@ -158,6 +158,12 @@ info.app.grailsVersion=3.2.5
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -168,12 +174,6 @@ info.app.grailsVersion=3.2.5
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2017-04-12.html b/blog/2017-04-12.html
index 71d4194b2b..c042e46535 100644
--- a/blog/2017-04-12.html
+++ b/blog/2017-04-12.html
@@ -184,15 +184,15 @@ dependencies {
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
-    <h3>March 5, 2025</h3>
-    <h2>Grails 7.0.0-M3 - Release Announcement</h2>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-03-introducing-grails-6-2-3.html'>
-    <h3>January 3, 2025</h3>
-    <h2>Introducing Grails Framework 6.2.3 Release</h2>
+  <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
+    <h3>March 5, 2025</h3>
+    <h2>Grails 7.0.0-M3 - Release Announcement</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-07-06.jpg)'>
diff --git a/blog/2017-06-28.html b/blog/2017-06-28.html
index d493f4c7cb..a7aa0d9fef 100644
--- a/blog/2017-06-28.html
+++ b/blog/2017-06-28.html
@@ -149,9 +149,9 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
-    <h3>March 5, 2025</h3>
-    <h2>Grails 7.0.0-M3 - Release Announcement</h2>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2019-01-07.jpg)'>
diff --git a/blog/2017-11-30.html b/blog/2017-11-30.html
index 0575490719..01d12a2125 100644
--- a/blog/2017-11-30.html
+++ b/blog/2017-11-30.html
@@ -84,6 +84,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -94,12 +100,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2017-12-05.html b/blog/2017-12-05.html
index e702dd8338..4d55fbc417 100644
--- a/blog/2017-12-05.html
+++ b/blog/2017-12-05.html
@@ -273,6 +273,12 @@ manually cleanup in functional tests.</p>
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -283,12 +289,6 @@ manually cleanup in functional tests.</p>
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2018-05-24.html b/blog/2018-05-24.html
index 92b09cb80a..d53f89769c 100644
--- a/blog/2018-05-24.html
+++ b/blog/2018-05-24.html
@@ -220,6 +220,12 @@ class DeclaredSlf4jServiceSpec extends Specification {
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -230,12 +236,6 @@ class DeclaredSlf4jServiceSpec extends Specification {
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2018-06-22.html b/blog/2018-06-22.html
index 0bf297e815..12d283dfdb 100644
--- a/blog/2018-06-22.html
+++ b/blog/2018-06-22.html
@@ -368,6 +368,12 @@ Moreover, it changes the method implementation to return a different String.
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -378,12 +384,6 @@ Moreover, it changes the method implementation to return a different String.
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2019-01-07.html b/blog/2019-01-07.html
index 0623a4c8a9..b918133550 100644
--- a/blog/2019-01-07.html
+++ b/blog/2019-01-07.html
@@ -93,9 +93,9 @@ script:
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
-    <h3>March 5, 2025</h3>
-    <h2>Grails 7.0.0-M3 - Release Announcement</h2>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
   </a>
 </article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2017-06-28.jpg)'>
diff --git a/blog/2019-05-30.html b/blog/2019-05-30.html
index 1d7dfd33d2..c3e8db27ad 100644
--- a/blog/2019-05-30.html
+++ b/blog/2019-05-30.html
@@ -91,6 +91,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -101,12 +107,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2020-09-10-grails-state-of-union.html b/blog/2020-09-10-grails-state-of-union.html
index 81ee81fc11..68f8f44da3 100644
--- a/blog/2020-09-10-grails-state-of-union.html
+++ b/blog/2020-09-10-grails-state-of-union.html
@@ -127,6 +127,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -137,12 +143,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2020-10-26-grails-foundation-announcement.html b/blog/2020-10-26-grails-foundation-announcement.html
index 58ae3f7769..b9627c9d21 100644
--- a/blog/2020-10-26-grails-foundation-announcement.html
+++ b/blog/2020-10-26-grails-foundation-announcement.html
@@ -83,6 +83,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -93,12 +99,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-01-22-grails-exciting-updates.html b/blog/2021-01-22-grails-exciting-updates.html
index 8adf832368..fb1342b277 100644
--- a/blog/2021-01-22-grails-exciting-updates.html
+++ b/blog/2021-01-22-grails-exciting-updates.html
@@ -122,6 +122,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -132,12 +138,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-03-22-meet-the-new-mascot.html b/blog/2021-03-22-meet-the-new-mascot.html
index 23e6537892..ef2616010f 100644
--- a/blog/2021-03-22-meet-the-new-mascot.html
+++ b/blog/2021-03-22-meet-the-new-mascot.html
@@ -89,6 +89,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -99,12 +105,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-06-10-grails-wrapper-update.html b/blog/2021-06-10-grails-wrapper-update.html
index 9210f2b2f9..2e46fb6566 100644
--- a/blog/2021-06-10-grails-wrapper-update.html
+++ b/blog/2021-06-10-grails-wrapper-update.html
@@ -103,6 +103,12 @@ org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 3; The element type
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -113,12 +119,6 @@ org.xml.sax.SAXParseException; lineNumber: 6; columnNumber: 3; The element type
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-07-20-call-for-productivity-tips.html b/blog/2021-07-20-call-for-productivity-tips.html
index 8323cf45eb..d430793343 100644
--- a/blog/2021-07-20-call-for-productivity-tips.html
+++ b/blog/2021-07-20-call-for-productivity-tips.html
@@ -88,6 +88,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -98,12 +104,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-08-12-grails-5-rc1-release.html b/blog/2021-08-12-grails-5-rc1-release.html
index 5ef53f13c4..bf3ac3a82f 100644
--- a/blog/2021-08-12-grails-5-rc1-release.html
+++ b/blog/2021-08-12-grails-5-rc1-release.html
@@ -109,6 +109,12 @@ Alternatively, you could download the Grails Binary directly from the <a href="h
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -119,12 +125,6 @@ Alternatively, you could download the Grails Binary directly from the <a href="h
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-08-25-groovy-4-webinar.html b/blog/2021-08-25-groovy-4-webinar.html
index cf21753b73..e71135689a 100644
--- a/blog/2021-08-25-groovy-4-webinar.html
+++ b/blog/2021-08-25-groovy-4-webinar.html
@@ -81,6 +81,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -91,12 +97,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-09-02-grails-deep-dive.html b/blog/2021-09-02-grails-deep-dive.html
index d99daf82be..5acd142b8a 100644
--- a/blog/2021-09-02-grails-deep-dive.html
+++ b/blog/2021-09-02-grails-deep-dive.html
@@ -82,6 +82,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -92,12 +98,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-09-15-q3-town-hall-meeting-scheduled.html b/blog/2021-09-15-q3-town-hall-meeting-scheduled.html
index 4a9878d291..d231357a29 100644
--- a/blog/2021-09-15-q3-town-hall-meeting-scheduled.html
+++ b/blog/2021-09-15-q3-town-hall-meeting-scheduled.html
@@ -83,6 +83,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -93,12 +99,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-09-17-groovy-4-webinar.html b/blog/2021-09-17-groovy-4-webinar.html
index edb6a7c332..2e89fee6ee 100644
--- a/blog/2021-09-17-groovy-4-webinar.html
+++ b/blog/2021-09-17-groovy-4-webinar.html
@@ -87,6 +87,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -97,12 +103,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-09-24-q3-town-hall-meeting.html b/blog/2021-09-24-q3-town-hall-meeting.html
index 36cc09bdbf..bbd5c814bf 100644
--- a/blog/2021-09-24-q3-town-hall-meeting.html
+++ b/blog/2021-09-24-q3-town-hall-meeting.html
@@ -89,6 +89,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -99,12 +105,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-10-08-developer-advocate-announced.html b/blog/2021-10-08-developer-advocate-announced.html
index 12b543f7f4..d3af2a5e99 100644
--- a/blog/2021-10-08-developer-advocate-announced.html
+++ b/blog/2021-10-08-developer-advocate-announced.html
@@ -93,6 +93,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -103,12 +109,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-10-11-grails-5-ga.html b/blog/2021-10-11-grails-5-ga.html
index fc31979ab1..dfa6810778 100644
--- a/blog/2021-10-11-grails-5-ga.html
+++ b/blog/2021-10-11-grails-5-ga.html
@@ -113,6 +113,12 @@ framework 5. Also, most Grails framework 4 plugins should work just fine, unless
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -123,12 +129,6 @@ framework 5. Also, most Grails framework 4 plugins should work just fine, unless
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-11-11.html b/blog/2021-11-11.html
index 92db633754..f08abbf308 100644
--- a/blog/2021-11-11.html
+++ b/blog/2021-11-11.html
@@ -88,6 +88,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -98,12 +104,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-11-23-db-migration-plugin-update.html b/blog/2021-11-23-db-migration-plugin-update.html
index 2d9f091965..6d6285f8e9 100644
--- a/blog/2021-11-23-db-migration-plugin-update.html
+++ b/blog/2021-11-23-db-migration-plugin-update.html
@@ -109,6 +109,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -119,12 +125,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-12-06-february-2022-training-announcement.html b/blog/2021-12-06-february-2022-training-announcement.html
index 9fac484778..d8afdefc7e 100644
--- a/blog/2021-12-06-february-2022-training-announcement.html
+++ b/blog/2021-12-06-february-2022-training-announcement.html
@@ -87,6 +87,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -97,12 +103,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-12-14-log4j2-cve.html b/blog/2021-12-14-log4j2-cve.html
index 2c66786241..5469510402 100644
--- a/blog/2021-12-14-log4j2-cve.html
+++ b/blog/2021-12-14-log4j2-cve.html
@@ -117,6 +117,12 @@ For releases &gt;=2.0-beta9 and &lt;=2.10.0, the mitigation is to remove the <co
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -127,12 +133,6 @@ For releases &gt;=2.0-beta9 and &lt;=2.10.0, the mitigation is to remove the <co
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2021-12-15-grails-five-one.html b/blog/2021-12-15-grails-five-one.html
index ef6d96c75f..f801ed6e36 100644
--- a/blog/2021-12-15-grails-five-one.html
+++ b/blog/2021-12-15-grails-five-one.html
@@ -116,6 +116,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -126,12 +132,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2022-01-07-2gm-town-hall-q1.html b/blog/2022-01-07-2gm-town-hall-q1.html
index 63ebbed0df..a601d64c8b 100644
--- a/blog/2022-01-07-2gm-town-hall-q1.html
+++ b/blog/2022-01-07-2gm-town-hall-q1.html
@@ -89,6 +89,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -99,12 +105,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2022-01-07-gradle-enterprise-tools-and-infrastructure-partner.html b/blog/2022-01-07-gradle-enterprise-tools-and-infrastructure-partner.html
index 967c822cc9..4f75a73886 100644
--- a/blog/2022-01-07-gradle-enterprise-tools-and-infrastructure-partner.html
+++ b/blog/2022-01-07-gradle-enterprise-tools-and-infrastructure-partner.html
@@ -86,6 +86,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -96,12 +102,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2022-03-31-grails-spring-rce.html b/blog/2022-03-31-grails-spring-rce.html
index e09972774a..9b447fe835 100644
--- a/blog/2022-03-31-grails-spring-rce.html
+++ b/blog/2022-03-31-grails-spring-rce.html
@@ -94,6 +94,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -104,12 +110,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2022-04-01-jetbrains-new-tools-and-infrastructure-partner.html b/blog/2022-04-01-jetbrains-new-tools-and-infrastructure-partner.html
index 3532a5bd7b..5c8dc44b8c 100644
--- a/blog/2022-04-01-jetbrains-new-tools-and-infrastructure-partner.html
+++ b/blog/2022-04-01-jetbrains-new-tools-and-infrastructure-partner.html
@@ -86,6 +86,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -96,12 +102,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2022-07-18-rce-vulnerability.html b/blog/2022-07-18-rce-vulnerability.html
index 835dd641a4..840c075d91 100644
--- a/blog/2022-07-18-rce-vulnerability.html
+++ b/blog/2022-07-18-rce-vulnerability.html
@@ -117,6 +117,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -127,12 +133,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2022-09-28-static-binding-bug.html b/blog/2022-09-28-static-binding-bug.html
index 8e13ed6417..0da1690b8c 100644
--- a/blog/2022-09-28-static-binding-bug.html
+++ b/blog/2022-09-28-static-binding-bug.html
@@ -114,6 +114,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -124,12 +130,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2022-11-22-ss-plugin-auth-cve.html b/blog/2022-11-22-ss-plugin-auth-cve.html
index 89b00b5dc0..c889f09252 100644
--- a/blog/2022-11-22-ss-plugin-auth-cve.html
+++ b/blog/2022-11-22-ss-plugin-auth-cve.html
@@ -106,6 +106,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -116,12 +122,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2023-02-08-repository-maint.html b/blog/2023-02-08-repository-maint.html
index 12772654b9..2974a4fb84 100644
--- a/blog/2023-02-08-repository-maint.html
+++ b/blog/2023-02-08-repository-maint.html
@@ -84,6 +84,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -94,12 +100,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2023-03-17-grails-foundation-joining-unity-foundation.html b/blog/2023-03-17-grails-foundation-joining-unity-foundation.html
index 2fae4d7d24..20929d4b7a 100644
--- a/blog/2023-03-17-grails-foundation-joining-unity-foundation.html
+++ b/blog/2023-03-17-grails-foundation-joining-unity-foundation.html
@@ -87,6 +87,12 @@ Moving the Grails Foundation under Unity provides a meaningful alliance between
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -97,12 +103,6 @@ Moving the Grails Foundation under Unity provides a meaningful alliance between
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2023-03-29-grails-6-m2.html b/blog/2023-03-29-grails-6-m2.html
index bc97288b6c..2142920657 100644
--- a/blog/2023-03-29-grails-6-m2.html
+++ b/blog/2023-03-29-grails-6-m2.html
@@ -169,6 +169,12 @@ With a hopeful outlook towards the future and a deep sense of gratitude, we eage
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -179,12 +185,6 @@ With a hopeful outlook towards the future and a deep sense of gratitude, we eage
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2023-05-27-grails-6-rc1.html b/blog/2023-05-27-grails-6-rc1.html
index 0a08806b9a..31d9c3096d 100644
--- a/blog/2023-05-27-grails-6-rc1.html
+++ b/blog/2023-05-27-grails-6-rc1.html
@@ -133,6 +133,12 @@ sdk use grails dev
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -143,12 +149,6 @@ sdk use grails dev
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2023-07-25-introducing-grails-6.html b/blog/2023-07-25-introducing-grails-6.html
index dadfeebc79..2474d78aa6 100644
--- a/blog/2023-07-25-introducing-grails-6.html
+++ b/blog/2023-07-25-introducing-grails-6.html
@@ -128,6 +128,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -138,12 +144,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2023-08-03-introducing-new-grails-forge.html b/blog/2023-08-03-introducing-new-grails-forge.html
index 4d0c070755..69f05f176b 100644
--- a/blog/2023-08-03-introducing-new-grails-forge.html
+++ b/blog/2023-08-03-introducing-new-grails-forge.html
@@ -201,6 +201,12 @@ sdk use grails dev
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -211,12 +217,6 @@ sdk use grails dev
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2023-08-25-introducing-grails-spring-security-core-6.html b/blog/2023-08-25-introducing-grails-spring-security-core-6.html
index 4f3bf64adc..7c50c95edf 100644
--- a/blog/2023-08-25-introducing-grails-spring-security-core-6.html
+++ b/blog/2023-08-25-introducing-grails-spring-security-core-6.html
@@ -124,6 +124,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -134,12 +140,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2023-09-11-the-new-grails-plugin-portal.html b/blog/2023-09-11-the-new-grails-plugin-portal.html
index 97eaa977ff..da1a063186 100644
--- a/blog/2023-09-11-the-new-grails-plugin-portal.html
+++ b/blog/2023-09-11-the-new-grails-plugin-portal.html
@@ -130,6 +130,12 @@
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -140,12 +146,6 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2023-11-14-introducing-grails-6_1_0.html b/blog/2023-11-14-introducing-grails-6_1_0.html
index ca0f5dfd71..7ef364631c 100644
--- a/blog/2023-11-14-introducing-grails-6_1_0.html
+++ b/blog/2023-11-14-introducing-grails-6_1_0.html
@@ -200,6 +200,12 @@ grailsGradlePluginVersion=6.1.0
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -210,12 +216,6 @@ grailsGradlePluginVersion=6.1.0
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2023-12-20-cve-data-binding-dos.html b/blog/2023-12-20-cve-data-binding-dos.html
index 3be650e655..f0a55ad063 100644
--- a/blog/2023-12-20-cve-data-binding-dos.html
+++ b/blog/2023-12-20-cve-data-binding-dos.html
@@ -100,6 +100,12 @@ This defect has been fixed, and the recommended versions above reflect the patch
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -110,12 +116,6 @@ This defect has been fixed, and the recommended versions above reflect the patch
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2024-06-07-grails-future.html b/blog/2024-06-07-grails-future.html
index cd5285a7e6..71f72386cb 100644
--- a/blog/2024-06-07-grails-future.html
+++ b/blog/2024-06-07-grails-future.html
@@ -116,6 +116,12 @@ we are all defining the way forward and your help is appreciated.</p>
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -126,12 +132,6 @@ we are all defining the way forward and your help is appreciated.</p>
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2024-06-25-grails-seven-mvp.html b/blog/2024-06-25-grails-seven-mvp.html
index c03599199b..7402befdee 100644
--- a/blog/2024-06-25-grails-seven-mvp.html
+++ b/blog/2024-06-25-grails-seven-mvp.html
@@ -87,6 +87,12 @@ on priorities for the Grails 7 MVP.</p>
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -97,12 +103,6 @@ on priorities for the Grails 7 MVP.</p>
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2024-10-01-grails-community-contributions.html b/blog/2024-10-01-grails-community-contributions.html
index 937c4ba02f..123f0fe14e 100644
--- a/blog/2024-10-01-grails-community-contributions.html
+++ b/blog/2024-10-01-grails-community-contributions.html
@@ -92,6 +92,12 @@ priorities for the technology and helping to manage governance of the Framework.
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -102,12 +108,6 @@ priorities for the technology and helping to manage governance of the Framework.
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2024-10-03-introducing-grails-6-2-1.html b/blog/2024-10-03-introducing-grails-6-2-1.html
index 5c544b5b83..8b7dc3555d 100644
--- a/blog/2024-10-03-introducing-grails-6-2-1.html
+++ b/blog/2024-10-03-introducing-grails-6-2-1.html
@@ -192,6 +192,12 @@ grailsGradlePluginVersion=6.2.1
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -202,12 +208,6 @@ grailsGradlePluginVersion=6.2.1
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2024-11-20-introducing-grails-6-2-2.html b/blog/2024-11-20-introducing-grails-6-2-2.html
index def65ab913..dbbd0f1bba 100644
--- a/blog/2024-11-20-introducing-grails-6-2-2.html
+++ b/blog/2024-11-20-introducing-grails-6-2-2.html
@@ -189,6 +189,12 @@ grailsGradlePluginVersion=6.2.3
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -199,12 +205,6 @@ grailsGradlePluginVersion=6.2.3
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2024-12-23-grails-7-m1.html b/blog/2024-12-23-grails-7-m1.html
index f8c1fc204d..d6b436dbc2 100644
--- a/blog/2024-12-23-grails-7-m1.html
+++ b/blog/2024-12-23-grails-7-m1.html
@@ -332,6 +332,12 @@ With a hopeful outlook towards the future and a deep sense of gratitude, we eage
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -342,12 +348,6 @@ With a hopeful outlook towards the future and a deep sense of gratitude, we eage
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
-    <h3>January 2, 2025</h3>
-    <h2>James Fredley Named 2025 Grails® Rock Star</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2025-01-02-grails-community-rockstar-fredley.html b/blog/2025-01-02-grails-community-rockstar-fredley.html
index d2069a6160..c9b9702747 100644
--- a/blog/2025-01-02-grails-community-rockstar-fredley.html
+++ b/blog/2025-01-02-grails-community-rockstar-fredley.html
@@ -110,6 +110,12 @@ Grails leader and a great person. Please keep up the fantastic work!</p>
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -120,12 +126,6 @@ Grails leader and a great person. Please keep up the fantastic work!</p>
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2024-12-23-grails-7-m1.html'>
-    <h3>December 23, 2024</h3>
-    <h2>Grails 7.0.0-M1 - Release Announcement</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2025-01-03-introducing-grails-6-2-3.html b/blog/2025-01-03-introducing-grails-6-2-3.html
index e90701bb9b..0bab968844 100644
--- a/blog/2025-01-03-introducing-grails-6-2-3.html
+++ b/blog/2025-01-03-introducing-grails-6-2-3.html
@@ -136,6 +136,12 @@ grailsGradlePluginVersion=6.2.4
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -146,12 +152,6 @@ grailsGradlePluginVersion=6.2.4
     <h3>January 2, 2025</h3>
     <h2>James Fredley Named 2025 Grails® Rock Star</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2024-12-23-grails-7-m1.html'>
-    <h3>December 23, 2024</h3>
-    <h2>Grails 7.0.0-M1 - Release Announcement</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2025-03-05-grails-7-m3.html b/blog/2025-03-05-grails-7-m3.html
index 9de423ed44..208277ca32 100644
--- a/blog/2025-03-05-grails-7-m3.html
+++ b/blog/2025-03-05-grails-7-m3.html
@@ -83,7 +83,7 @@ We encourage you to try this pre-release and provide your feedback <a href="http
 <h3>Users Mailing List</h3>
 <p>The users mailing list will be a General purpose list for questions and discussion about Grails.<br />
 <strong>Web Archive:</strong> <a href="https://lists.apache.org/list.html?users@grails.apache.org">https://lists.apache.org/list.html?users@grails.apache.org</a> <br />
-<strong>Subscribe:</strong> Send a blank email to <a href="mailto:users-subscribe@grails.apache.org]">users-subscribe@grails.apache.org</a></p>
+<strong>Subscribe:</strong> Send a blank email to <a href="mailto:users-subscribe@grails.apache.org">users-subscribe@grails.apache.org</a></p>
 <h3>Dev Mailing List</h3>
 <p>The dev mailing list is focused on the framework implementation and its evolution. <br />
 <strong>Web Archive:</strong> <a href="https://lists.apache.org/list.html?dev@grails.apache.org">https://lists.apache.org/list.html?dev@grails.apache.org</a> <br />
@@ -362,6 +362,12 @@ the future. Happy coding!</p>
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-01-03-introducing-grails-6-2-3.html'>
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
@@ -372,12 +378,6 @@ the future. Happy coding!</p>
     <h3>January 2, 2025</h3>
     <h2>James Fredley Named 2025 Grails® Rock Star</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2024-12-23-grails-7-m1.html'>
-    <h3>December 23, 2024</h3>
-    <h2>Grails 7.0.0-M1 - Release Announcement</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/2025-03-05-grails-7-m3.html b/blog/2025-06-10-grails-7-m4.html
similarity index 52%
copy from blog/2025-03-05-grails-7-m3.html
copy to blog/2025-06-10-grails-7-m4.html
index 9de423ed44..317b4f6170 100644
--- a/blog/2025-03-05-grails-7-m3.html
+++ b/blog/2025-06-10-grails-7-m4.html
@@ -1,24 +1,24 @@
 <!DOCTYPE html>
 <html>
 <head>
-    <title>Grails 7.0.0-M3 - Release Announcement</title>
+    <title>Apache Grails (Incubating) 7.0.0-M4 - Release Announcement</title>
     <meta name="keywords" content="grails,jvm,framework,groovy,gradle,spring-boot,gorm"/>
-    <meta name="description" content="The Grails Foundation™ is excited to announce the Milestone 3 release of Grails Framework 7!"/>
-    <meta name="date" content="March 5, 2025"/>
+    <meta name="description" content="The Apache Grails (incubating) community is pleased to announce is excited to announce the Milestone 4 release of Grails Framework 7!"/>
+    <meta name="date" content="June 10, 2025"/>
     <meta name="robots" content="all"/>
     <link rel="alternate" type="application/rss+xml" title="RSS" href="https://grails.apache.org/rss.xml"/>
     <meta charset='UTF-8'/>
     <link rel='icon' href='https://grails.apache.org/images/favicon.ico'/>
     <meta name='twitter:card' content='summary_large_image'/>
     <meta name='twitter:site' content='@grailsframework'/>
-    <meta name='twitter:description' content='The Grails Foundation™ is excited to announce the Milestone 3 release of Grails Framework 7!'/>
+    <meta name='twitter:description' content='The Apache Grails (incubating) community is pleased to announce is excited to announce the Milestone 4 release of Grails Framework 7!'/>
     <meta name='twitter:creator' content='@grailsframework'/>
     <meta property='og:image' content='https://grails.apache.org/images/grails.png'/>
     <meta property='og:image:width' content='300'/>
     <meta property='og:image:height' content='300'/>
     <meta property='og:url' content='https://grails.apache.org'/>
-    <meta property='og:title' content='Grails 7.0.0-M3 - Release Announcement'/>
-    <meta property='og:description' content='The Grails Foundation™ is excited to announce the Milestone 3 release of Grails Framework 7!'/>
+    <meta property='og:title' content='Apache Grails (Incubating) 7.0.0-M4 - Release Announcement'/>
+    <meta property='og:description' content='The Apache Grails (incubating) community is pleased to announce is excited to announce the Milestone 4 release of Grails Framework 7!'/>
     <meta property='og:type' content='website'/>
 
     <meta name='viewport' content='width=device-width, initial-scale=1'/>
@@ -71,212 +71,105 @@
   </div>
 </div>
 <div class='content container'>
-  <div class='light padded blogpost'><h1>Grails 7.0.0-M3 - Release Announcement</h1>
+  <div class='light padded blogpost'><h1>Apache Grails (Incubating) 7.0.0-M4 - Release Announcement</h1>
 <p><span class="author">By James Fredley</span></p>
-<p><span class="date">March 5, 2025</span></p>
-<p>The Grails Foundation is excited for the release of Grails Framework 7.0.0-M3. <br />
+<p><span class="date">June 10, 2025</span></p>
+<p>The Apache Grails (incubating) community is excited for the release of Grails Framework 7.0.0-M4. <br />
 We encourage you to try this pre-release and provide your feedback <a href="https://github.com/apache/grails-core/issues">here</a>.</p>
-<p>The next milestone is planned to be released under the Apache Software Foundation as Apache Grails 7.0.0-M4.</p>
-<p>NOTE: Due to a release problem, 7.0.0-M2 was skipped.</p>
-<h2>Mailing Lists Changes</h2>
-<p>As we transition to Apache more communications will occur on our new Apache mailing lists.</p>
+<h2>Download Source Code and Binary Distributions</h2>
+<p><a href="/download.html">Apache Grails Downloads</a></p>
 <h3>Users Mailing List</h3>
 <p>The users mailing list will be a General purpose list for questions and discussion about Grails.<br />
 <strong>Web Archive:</strong> <a href="https://lists.apache.org/list.html?users@grails.apache.org">https://lists.apache.org/list.html?users@grails.apache.org</a> <br />
-<strong>Subscribe:</strong> Send a blank email to <a href="mailto:users-subscribe@grails.apache.org]">users-subscribe@grails.apache.org</a></p>
+<strong>Subscribe:</strong> Send a blank email to <a href="mailto:users-subscribe@grails.apache.org">users-subscribe@grails.apache.org</a></p>
 <h3>Dev Mailing List</h3>
 <p>The dev mailing list is focused on the framework implementation and its evolution. <br />
 <strong>Web Archive:</strong> <a href="https://lists.apache.org/list.html?dev@grails.apache.org">https://lists.apache.org/list.html?dev@grails.apache.org</a> <br />
 <strong>Subscribe:</strong> Send a blank email to <a href="mailto:dev-subscribe@grails.apache.org">dev-subscribe@grails.apache.org</a></p>
-<p>When participating in Apache mailing lists, you should never include any personally identifiable information (PII) like
+<p>When participating in mailing lists, you should never include any personally identifiable information (PII) like
 your address, phone number or email address, as all messages sent to these lists are publicly accessible and archived,
 meaning anyone can view your information. Make sure your email client does not add your signature with these items.</p>
 <h2>What's Changed</h2>
-<p>For changes made in Grails 7 prior to 7.0.0-M3, check out the <a href="/blog/2024-12-23-grails-7-m1.html">Grails 7.0.0-M1 Release Blog Post</a></p>
-<h3>With the release of Grails 7.0.0-M3, we have:</h3>
+<p>For changes made in Grails 7 prior to 7.0.0-M4, check out the <a href="/blog/2024-12-23-grails-7-m1.html">Grails 7.0.0-M1 Release Blog Post</a> and <a href="/blog/2025-03-05-grails-7-m3.html">Grails 7.0.0-M3 Release Blog Post</a></p>
+<p>Apache Grails (incubating) 7.0.0-M4 is the first release for Grails under the Apache Software Foundation (ASF). This release focuses first on meeting the requirements of the ASF &amp; improving the developer experience of Grails itself &amp; Grails Applications. As part of this transition, the developers moved to a mono repository, reworked the way the various Grails CLIs work, modernized its build system, modernized the various Grails Gradle Tasks, modernized the various Grails Gradl [...]
+<h3>With the release of Grails 7.0.0-M4, we have:</h3>
 <ul>
-<li>Consolidated several main/core Git repositories/Gradle projects to drastically reduce the time to publish a release.
-This resulted in the version of many dependencies changing and in some cases skipping major versions to match with the
-consolidated project. The old project Git repository default branch readme has been updated to point to the new location.
-Existing issues and PRs have been migrated when possible.</li>
-<li>Consolidated 10 active profiles into a single Git repository/Gradle Project.</li>
-<li>Consolidated 6 Spring Security plugins into the Spring Security Core Git repository.</li>
-<li>Updated the Web and Base Grails profiles to generate runnable Grails 7 applications.</li>
-<li>Changed so that <code>hibernate-ehcache</code> is no longer provided by the <code>hibernate5</code> plugin.
-<a href="https://github.com/apache/grails-core/blob/7.0.x/UPGRADE7.md">See details</a></li>
-<li>Fixed documentation (asciidoc, groovydoc &amp; javadoc) generation and publishing across many projects.</li>
-<li>Ensured tests run during build and CI across many projects.</li>
-<li>Updated <code>ContainerGebSpec</code> in <code>geb</code> with:
-<ul>
-<li>Cross-platform file input support.</li>
-<li>IDE hints and auto-completion of <code>Browser.*</code>, <code>Page.*</code> and <code>WebDriver.pageSource</code> methods.</li>
-<li>Recycling of the recording container.</li>
-<li>Delegation to the current page object.</li>
-<li>Inclusion of the <code>ScreenshotReporter</code> by default.</li>
-<li>Fix of log message for reports directory.</li>
+<li>PR #14750 - support non-persistent super classes for @Autotimestamp</li>
+<li>Issue #14745 - remove deprecated doc method on Grails Plugins</li>
+<li>Issue #14745 - remove duplicate grails.factories &amp; grails-plugin.xml files now that AST generation is working correctly</li>
+<li>Issue #14745 - switch to Spring Boot 3.5.0 with Spring Framework 6.2.7 due to bug (https://github.com/spring-projects/spring-framework/issues/34796)</li>
+<li>Issue #14745 - change the grails-gradle-model to export Groovy 3 due to Gradle Task isolation in later versions of Gradle</li>
+<li>Issue #14745 - rework the FindMainTask to correctly set the main Application class on BootWar, BootJar, &amp; BootRun</li>
+<li>Issue #14745 - remove org.grails.plugins.CodecGrailsPlugin; use org.grails.plugins.codecs.CodecsGrailsPlugin instead</li>
+<li>Issue #14745 - remove the remaining pathingJar task functions</li>
+<li>Issue #14745 - fix a databinding scenario in DataBindingUtils to lookup a domain object</li>
+<li>PR #14749 - retire Mongo 5.0 &amp; 6.0 test pipelines since those versions are end of support</li>
+<li>PR #14746 - switch to asset-pipeline-gradle 5.0.9</li>
+<li>PR #14743 - remove redundant buildScript from test projects</li>
+<li>Issue #14706 - rework grailsw to be usable independently of SDKMAN installs</li>
+<li>Issue #14706 - rework grails-shell-cli to be usable independently of SDKMAN installs</li>
+<li>Issue #14706 - rework the command cli to support a grailsw that can self-update either forge or legacy shell cli</li>
+<li>Issue #14706 - distribute a delegating CLI that can call either forge or the legacy shell cli</li>
+<li>Issue #14706 - rework the legacy shell cli to correctly find profiles</li>
+<li>Issue #14706 - rework both grailsw &amp; grails-shell-cli to be testable outside of releases</li>
+<li>Issue #14679 - generate reproducible groovydoc jars</li>
+<li>Issue #14679 - fix profile compilation to generate reproducible jars</li>
+<li>Issue #14679 - ensure groovydoc is used instead of javadoc for documentation jars</li>
+<li>PR #14709 - switch to Gradle 8.14</li>
+<li>PR #14678 - add support for external config locations, by incorporating the external-config plugin into Grails core</li>
+<li>Refactor grails into a mono repo (grails-views, gsp, data mapping, geb, etc are all merged into core now)</li>
+<li>As part of the mono repo transition, several Deprecated classes were removed from the views project; see the upgrade guide for the details.</li>
+<li>Issue #14679 - refactor grails build to be parallel &amp; lazy</li>
+<li>Issue #14679 - change all Grails gradle tasks to support Caching where appropriate and support lazy style configuration</li>
+<li>Issue #14679 - Redesign the Grails Data TCK to support modern versions of Java</li>
+<li>Issue #14679 - Support consistent property dates in generated property files when SOURCE_DATE_EPOCH is set</li>
+<li>Issue #14679 - Make grails.factories generation reproducible</li>
+<li>Issue #14679 - Refactor Grails AST Transformations to take advantage of Groovy's TransformWithPriority and enforce transforms always run in the order defined by the class <code>GroovyTransformOrder</code></li>
+<li>Issue #14679 - Remove manifest attributes that could vary on the Grails jars (Built-By, Created-By etc)</li>
+<li>Issue #14679 - Fix sourcejar creation to not contain duplicates</li>
+<li>Issue #14679 - Fix javadoc jars to be generated based on groovydoc &amp; to not contain duplicates</li>
+<li>Issue #14679 - Change AST transforms to be reproducible by adopting determined ordering collections</li>
+<li>Issue #14679 - Configure Grails jars per Gradle's reproducibility requirements (fixed permissions, reproducible file order, etc)</li>
+<li>Issue #13850 - introduce <code>grails-common</code> to share common code between Grails Data Mapping &amp; Grails-Core</li>
+<li>Issue #14679 - add scripts to confirm reproducibility of Grails; currently 14 of 290 jars are reproducible</li>
+<li>Issue #14679 - make TagLib lookups reproducible</li>
+<li>PR #14671 - switch to webjars for test css/js assets instead of checked in files</li>
+<li>The Grails Gradle plugin had a bug that caused plugin resolution issues that was fixed after the last milestone.</li>
+<li>Rework the grails bom to generate valid Gradle modules, be easier to maintain, and valid pom files.  Enhance the documentation process to parse the bom &amp; generate the published versions in the grails doc.</li>
 </ul>
-</li>
-<li>Updated <code>grails-gradle-plugin</code> with:
-<ul>
-<li>End-to-end tests.</li>
-<li>Fix of <code>configScript</code> handling.</li>
-<li>Inclusion of <code>testFixtures</code> in version resolving for POM generation in <code>org.grails.grails-publish</code>.</li>
-<li>Fix to include AST sources in javadoc and source jars.</li>
-<li>Fix to <code>org.grails.grails-publish</code> to ensure sources and javadoc are published by default.</li>
-<li>Changes and standardization of profile task names so they can be used with the Java Gradle Plugin.</li>
-<li>Changes to not require Java or Groovy Gradle Plugins for profile publishing.</li>
-<li>Fix of profile publishing to support the Java Gradle Plugin.</li>
-<li>Consolidation of profiles into a single Gradle multi-project build.</li>
-</ul>
-</li>
-<li>Updated <code>database-migration-plugin</code> with:
+<p>And in addition to all of this:</p>
 <ul>
-<li>Move to <code>gorm-hibernate5</code> project.</li>
-<li>Exclusion of <code>liquibase-commercial</code> to prevent it from being exported.</li>
-<li>Loading of migrations from embedded jars (plugins).</li>
-<li>Allowing the loading of classpath resources for sqlFile changesets.</li>
-</ul>
-</li>
-<li>Replaced <code>tomcat-jdbc</code> with <code>HikariCP</code> in default generated applications from <code>grails-shell</code> CLI and <code>grails-forge</code> CLI.</li>
-<li>Updated <code>asset-pipeline</code> to resolve missing graalvm asset compiler dependencies for bootRun, unit test and integration tests.</li>
-<li>Leveraged <code>grails-bom</code> versions wherever possible to simplify updates across the projects.</li>
-<li>Consolidated any versions not set by <code>grails-bom</code> in <code>gradle.properties</code> across projects.</li>
-<li>Allowed disabling of <code>AutoTimestamp</code> on insertion event if values are not <code>null</code>.</li>
-<li>Allowed customization of <code>AutoTimestamp</code> <code>dateCreated</code> and <code>lastUpdated</code> properties.</li>
-<li>Added GSP Pagination support for Bootstrap 5.</li>
-<li>Fixed configuration loading in the <code>quartz</code> plugin.</li>
-<li>Fixed an error in <code>grails-bom</code> with handling inherited BOMs from <code>spring-boot-dependencies</code>.</li>
+<li>We changed all coordinates of Grails to be org.apache.grails based. See https://github.com/apache/grails-core/blob/7.0.x/RENAME.md for how we mapped these libraries. There is also a script documented in the upgrade guide to assist in upgrading.</li>
+<li>Consolidated main Grails projects into grails-core git monorepository to drastically speed up development, testing and the release process</li>
+<li>Significant test fixes</li>
+<li>Significant documentation updates &amp; changes</li>
+<li>Addition of license headers to Grails Source</li>
+<li>Addition of NOTICE to Grails Source</li>
+<li>Created https://repo.grails.org/grails/restricted/ to replace https://repo.grails.org/grails/core longer term.  This virtual repo's scope is significantly reduced to help reduce the chance of using outdated libraries.</li>
 </ul>
+<p>Upgrade instructions are available in the <a href="https://docs.grails.org/7.0.0-M4/guide/single.html#upgrading60x">documentation</a>.</p>
 <h2>Dependency Upgrades</h2>
 <p>In this release, we've upgraded several dependency versions, including but not limited to the following:</p>
 <ul>
-<li>Asset Pipeline 5.0.8</li>
-<li>Groovy 4.0.25</li>
-<li>Jna 5.16.0</li>
-<li>MongoDB driver: 5.3.1</li>
-<li>Slf4j 2.0.16</li>
-<li>Spring Boot 3.4.2</li>
-<li>Spring Framework 6.2.2</li>
-<li>See all in the <a href="https://central.sonatype.com/artifact/org.grails/grails-bom/7.0.0-M3">grails-bom</a>.</li>
-</ul>
-<p>As part of the Grails 7.0.0-M3 release we have also released milestones of the following:</p>
-<ul>
-<li>org.grails.plugins:async:7.0.0-M3</li>
-<li>org.grails.plugins:audit-logging:6.0.0-M4</li>
-<li>org.grails.plugins:cache:8.0.0-M3</li>
-<li>org.grails.plugins:converters:7.0.0-M3</li>
-<li>org.grails.plugins:database-migration:9.0.0-M3</li>
-<li>org.grails.plugins:events:7.0.0-M3</li>
-<li>org.grails.plugins:fields:6.0.0-M3</li>
-<li>org.grails.plugins:geb:5.0.0-M3</li>
-<li>org.grails.plugins:grails-redis:5.0.0-M3</li>
-<li>org.grails.plugins:grails-web-console:7.0.0-M2</li>
-<li>org.grails.plugins:gsp:7.0.0-M3</li>
-<li>org.grails.plugins:hibernate5:9.0.0-M3</li>
-<li>org.grails.plugins:mongodb:9.0.0-M3</li>
-<li>org.grails.plugins:quartz:4.0.0-M2</li>
-<li>org.grails.plugins:scaffolding:6.0.0-M3</li>
-<li>org.grails.plugins:spring-security-acl:7.0.0-M3</li>
-<li>org.grails.plugins:spring-security-cas:7.0.0-M3</li>
-<li>org.grails.plugins:spring-security-core:7.0.0-M3</li>
-<li>org.grails.plugins:spring-security-ldap:7.0.0-M3</li>
-<li>org.grails.plugins:spring-security-oauth2:7.0.0-M3</li>
-<li>org.grails.plugins:spring-security-rest:7.0.0-M3</li>
-<li>org.grails.plugins:spring-security-rest-gorm:7.0.0-M3</li>
-<li>org.grails.plugins:spring-security-rest-grailscache:7.0.0-M3</li>
-<li>org.grails.plugins:spring-security-rest-memcached:7.0.0-M3</li>
-<li>org.grails.plugins:spring-security-rest-redis:7.0.0-M3</li>
-<li>org.grails.plugins:spring-security-rest-testapp-profile:7.0.0-M3</li>
-<li>org.grails.plugins:spring-security-ui:7.0.0-M3</li>
-<li>org.grails.plugins:views-gradle:4.0.0-M3</li>
-<li>org.grails.plugins:views-json:4.0.0-M3</li>
-<li>org.grails.plugins:views-json-templates:9.0.0-M3</li>
-<li>org.grails.plugins:views-markup:4.0.0-M3</li>
-<li>org.grails.profiles:angular:10.0.2</li>
-<li>org.grails.profiles:base:10.0.2</li>
-<li>org.grails.profiles:plugin:10.0.2</li>
-<li>org.grails.profiles:profile:10.0.2</li>
-<li>org.grails.profiles:react:10.0.2</li>
-<li>org.grails.profiles:rest-api:10.0.2</li>
-<li>org.grails.profiles:rest-api-plugin:10.0.2</li>
-<li>org.grails.profiles:vue:10.0.2</li>
-<li>org.grails.profiles:web:10.0.2</li>
-<li>org.grails.profiles:web-plugin:10.0.2</li>
-<li>org.grails:grails-async:7.0.0-M3</li>
-<li>org.grails:grails-async-gpars:7.0.0-M3</li>
-<li>org.grails:grails-async-rxjava:7.0.0-M3</li>
-<li>org.grails:grails-async-rxjava2:7.0.0-M3</li>
-<li>org.grails:grails-bootstrap:7.0.0-M3</li>
-<li>org.grails:grails-codecs:7.0.0-M3</li>
-<li>org.grails:grails-console:7.0.0-M3</li>
-<li>org.grails:grails-core:7.0.0-M3</li>
-<li>org.grails:grails-databinding:7.0.0-M3</li>
-<li>org.grails:grails-datastore-async:9.0.0-M3</li>
-<li>org.grails:grails-datastore-core:9.0.0-M3</li>
-<li>org.grails:grails-datastore-gorm:9.0.0-M3</li>
-<li>org.grails:grails-datastore-gorm-async:9.0.0-M3</li>
-<li>org.grails:grails-datastore-gorm-hibernate5:9.0.0-M3</li>
-<li>org.grails:grails-datastore-gorm-mongodb:9.0.0-M3</li>
-<li>org.grails:grails-datastore-gorm-rx:9.0.0-M3</li>
-<li>org.grails:grails-datastore-gorm-support:9.0.0-M3</li>
-<li>org.grails:grails-datastore-gorm-tck:9.0.0-M3</li>
-<li>org.grails:grails-datastore-gorm-test:9.0.0-M3</li>
-<li>org.grails:grails-datastore-gorm-validation:9.0.0-M3</li>
-<li>org.grails:grails-datastore-web:9.0.0-M3</li>
-<li>org.grails:grails-dependencies:7.0.0-M3</li>
-<li>org.grails:grails-docs:7.0.0-M3</li>
-<li>org.grails:grails-encoder:7.0.0-M3</li>
-<li>org.grails:grails-events-gpars:7.0.0-M3</li>
-<li>org.grails:grails-events-rxjava:7.0.0-M3</li>
-<li>org.grails:grails-events-rxjava2:7.0.0-M3</li>
-<li>org.grails:grails-gorm-testing-support:9.0.0-M3</li>
-<li>org.grails:grails-gradle-model:7.0.0-M3</li>
-<li>org.grails:grails-gradle-plugin:7.0.0-M4</li>
-<li>org.grails:grails-gsp:7.0.0-M3</li>
-<li>org.grails:grails-logging:7.0.0-M3</li>
-<li>org.grails:grails-plugin-codecs:7.0.0-M3</li>
-<li>org.grails:grails-plugin-controllers:7.0.0-M3</li>
-<li>org.grails:grails-plugin-databinding:7.0.0-M3</li>
-<li>org.grails:grails-plugin-datasource:7.0.0-M3</li>
-<li>org.grails:grails-plugin-domain-class:7.0.0-M3</li>
-<li>org.grails:grails-plugin-i18n:7.0.0-M3</li>
-<li>org.grails:grails-plugin-interceptors:7.0.0-M3</li>
-<li>org.grails:grails-plugin-mimetypes:7.0.0-M3</li>
-<li>org.grails:grails-plugin-rest:7.0.0-M3</li>
-<li>org.grails:grails-plugin-services:7.0.0-M3</li>
-<li>org.grails:grails-plugin-url-mappings:7.0.0-M3</li>
-<li>org.grails:grails-plugin-validation:7.0.0-M3</li>
-<li>org.grails:grails-shell:7.0.0-M3</li>
-<li>org.grails:grails-spring:7.0.0-M3</li>
-<li>org.grails:grails-test:7.0.0-M3</li>
-<li>org.grails:grails-testing-support:7.0.0-M3</li>
-<li>org.grails:grails-test-suite-base:7.0.0-M3</li>
-<li>org.grails:grails-test-suite-persistence:7.0.0-M3</li>
-<li>org.grails:grails-test-suite-uber:7.0.0-M3</li>
-<li>org.grails:grails-test-suite-web:7.0.0-M3</li>
-<li>org.grails:grails-web:7.0.0-M3</li>
-<li>org.grails:grails-web-boot:7.0.0-M3</li>
-<li>org.grails:grails-web-common:7.0.0-M3</li>
-<li>org.grails:grails-web-databinding:7.0.0-M3</li>
-<li>org.grails:grails-web-gsp:7.0.0-M3</li>
-<li>org.grails:grails-web-mvc:7.0.0-M3</li>
-<li>org.grails:grails-web-taglib:7.0.0-M3</li>
-<li>org.grails:grails-web-testing-support:7.0.0-M3</li>
-<li>org.grails:grails-web-url-mappings:7.0.0-M3</li>
-<li>org.grails:grails7-wrapper:6.0.0</li>
-<li>org.grails:views-json-testing-support:4.0.0-M3</li>
+<li>Asset Pipeline 5.0.9</li>
+<li>Groovy 4.0.27</li>
+<li>Spring Framework 6.2.7</li>
+<li>Spring Boot 3.5.0</li>
+<li>Gradle 8.14</li>
+<li>Spock 2.3-groovy-4.0</li>
+<li>See all in the <a href="https://docs.grails.org/7.0.0-M4/ref/Versions/Grails%20BOM.html">grails-bom</a>.</li>
 </ul>
-<h2>Installing Grails 7.0.0-M3</h2>
-<p>Try out Grails 7.0.0-M3 today by visiting the online app creator * <a href="https://start.grails.org/">Grails Forge</a>.
-Alternatively, you can quickly install Grails 7.0.0-M3 using the <a href="https://sdkman.io/">SDKMan</a>.</p>
+<h2>Installing Grails 7.0.0-M4</h2>
+<p>Try out Grails 7.0.0-M4 today by visiting the online app creator * <a href="https://start.grails.org/">Grails Forge</a>.
+Alternatively, you can quickly install Grails 7.0.0-M4 using the <a href="https://sdkman.io/">SDKMan</a>.</p>
 <ol>
 <li>
 <p>If you don't have SDKMan installed, follow the instructions at <a href="https://sdkman.io/install/">SDKMan Installation Guide</a>
 to set it up.</p>
 </li>
 <li>
-<p>Once SDKMan is installed, open your terminal and run the following command to install Grails 7.0.0-M3:</p>
-<pre><code class="language-shell">sdk install grails 7.0.0-M3
+<p>Once SDKMan is installed, open your terminal and run the following command to install Grails 7.0.0-M4:</p>
+<pre><code class="language-shell">sdk install grails 7.0.0-M4
 </code></pre>
 </li>
 <li>
@@ -285,34 +178,36 @@ to set it up.</p>
 </code></pre>
 </li>
 </ol>
-<h2>Upgrading Your Existing Applications to Grails 7.0.0-M3</h2>
+<h2>Upgrading Your Existing Applications to Grails 7.0.0-M4</h2>
 <p>If you already have a Grails application and want to upgrade to the latest version, follow these steps:</p>
 <ol>
 <li>
 <p>Open the project in your favorite IDE (preferably JetBrains' IntelliJ IDEA).</p>
 </li>
 <li>
-<p>Update your application's <code>gradle.properties</code> file to specify Grails 7.0.0-M3 as the desired version.</p>
-<pre><code class="language-properties">grailsVersion=7.0.0-M3
+<p>Update your application's <code>gradle.properties</code> file to specify Grails 7.0.0-M4 as the desired version.</p>
+<pre><code class="language-properties">grailsVersion=7.0.0-M4
 # The Grails Gradle Plugin version is now available in the BOM
 # and can be omitted if your project adds the Grails BOM to the
 # buildscript dependencies.
 grailsGradlePluginVersion=7.0.0-M4
+# Temporary for 7.0.0-M4 to force the latest version
+groovy.version=4.0.27
 </code></pre>
 </li>
 <li>
 <p>Make any necessary adjustments to your application code, configuration, and dependencies to ensure compatibility with
-the new version. See https://docs.grails.org/7.0.0-M3/guide/single.html#upgrading60x.</p>
+the new version. See https://docs.grails.org/7.0.0-M4/guide/single.html#upgrading60x.</p>
 </li>
 </ol>
 <p>Normally, Grails Core dependencies are automatically updated using the Grails Bill of Materials (BOM). However, if you
 have specific versions defined in your build configuration, you may need to manually update them to align with
-Grails 7.0.0-M3.</p>
-<p>By following these steps, you should be able to transition your existing Grails application to Grails 7.0.0-M3.</p>
+Grails 7.0.0-M4.</p>
+<p>By following these steps, you should be able to transition your existing Grails application to Grails 7.0.0-M4.</p>
 <h3>Exploring Alternative Approaches</h3>
 <p>If manual dependency updates seem daunting, or you want a more streamlined approach, consider the following alternatives:</p>
 <h4>1. Use Grails Forge Website</h4>
-<p>Visit <a href="https://start.grails.org">Grails Forge</a> and generate a new Grails application with Grails 7.0.0-M3. Compare the
+<p>Visit <a href="https://start.grails.org">Grails Forge</a> and generate a new Grails application with Grails 7.0.0-M4. Compare the
 versions in the newly generated application with your existing one to identify any discrepancies. This can serve as a
 reference point for your update.</p>
 <h4>2. Automated Dependency Update Bots</h4>
@@ -321,30 +216,29 @@ reference point for your update.</p>
 detect and update outdated dependencies in your project, including Grails dependencies, saving you time and effort in
 manual updates.</p>
 <p>With these steps and alternative approaches, you should be well on your way to enjoying the exciting features and
-improvements in Grails 7.0.0-M3. Happy coding!</p>
-<h2>Why should you try out Grails 7.0.0-M3?</h2>
+improvements in Grails 7.0.0-M4. Happy coding!</p>
+<h2>Why should you try out Grails 7.0.0-M4?</h2>
 <ul>
 <li>Help us test this major upgrade of the Grails Framework and provide feedback.</li>
 <li>Be ready for when Grails 7 is released.</li>
 </ul>
 <h2>Grails 7 Release Schedule</h2>
 <ul>
-<li>We will continue to work on <a href="https://github.com/orgs/grails/projects/3">updating and fixing issues</a> over the next few
+<li>We will continue to work on <a href="https://github.com/orgs/apache/projects/487">updating and fixing issues</a> over the next few
 weeks.</li>
-<li>Apache Grails 7.0.0-M4 will be released thereafter under the Apache Software Foundation.</li>
-<li>Based on feedback, an Apache Grails final milestone or RC release is targeted for April 2025.</li>
+<li>Based on feedback, an Apache Grails RC release is targeted for July 2025.</li>
 </ul>
 <h2>Thank you!</h2>
 <p>A huge thank you to our amazing community for supporting the Grails Framework over the past 19 years! We’re excited for
 the future and grateful for the opportunity to continue innovating and pushing Grails forward together.</p>
 <h2>Contributors</h2>
-<p>We would like to extend our heartfelt thanks to all the contributors who made Grails 7.0.0-M3 possible. <br />
+<p>We would like to extend our heartfelt thanks to all the contributors who made Grails 7.0.0-M4 possible. <br />
 Special thanks to:</p>
 <ul>
 <li><a href="https://github.com/jdaugherty">James Daugherty</a></li>
+<li><a href="https://github.com/jamesfredley">James Fredley</a></li>
 <li><a href="https://github.com/matrei">Mattias Reichel</a></li>
 <li><a href="https://github.com/codeconsole">Scott Murphy</a></li>
-<li><a href="https://github.com/jamesfredley">James Fredley</a></li>
 <li><a href="https://github.com/sbglasius">Søren Berg Glasius</a></li>
 <li><a href="https://github.com/davydotcom">David Estes</a></li>
 <li><a href="https://github.com/amondel2">Aaron Mondelblatt</a></li>
@@ -354,7 +248,7 @@ Special thanks to:</p>
 <li><a href="https://github.com/gsartori">Gianluca Sartori</a></li>
 <li><a href="https://github.com/paulk-asert">Paul King</a></li>
 </ul>
-<p>Their dedication and hard work have significantly contributed to the release of Grails 7.0.0-M3.</p>
+<p>Their dedication and hard work have significantly contributed to the release of Grails 7.0.0-M4.</p>
 <p>Join the <a href="https://grails.slack.com">Grails Slack Community</a>, share your feedback, and contribute to making Grails Framework even better in
 the future. Happy coding!</p>
     <h2 class='space-above'>
@@ -362,6 +256,12 @@ the future. Happy coding!</p>
     </h2>
     <div class='threecolumns'>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
+    <h3>March 5, 2025</h3>
+    <h2>Grails 7.0.0-M3 - Release Announcement</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-01-03-introducing-grails-6-2-3.html'>
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
@@ -372,12 +272,6 @@ the future. Happy coding!</p>
     <h3>January 2, 2025</h3>
     <h2>James Fredley Named 2025 Grails® Rock Star</h2>
   </a>
-</article></div>
-      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
-  <a href='https://grails.apache.org/blog/2024-12-23-grails-7-m1.html'>
-    <h3>December 23, 2024</h3>
-    <h2>Grails 7.0.0-M1 - Release Announcement</h2>
-  </a>
 </article></div>
     </div>
   </div>
diff --git a/blog/index.html b/blog/index.html
index a3e088104d..a5ddba6f5a 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -74,6 +74,12 @@
   <div class='light'>
     <div class='padded' style='padding-top: 0;'><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
+  <a href='https://grails.apache.org/blog/2025-06-10-grails-7-m4.html'>
+    <h3>June 10, 2025</h3>
+    <h2>Apache Grails (Incubating) 7.0.0-M4 - Release...</h2>
+  </a>
+</article></div>
+      <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-03-05-grails-7-m3.html'>
     <h3>March 5, 2025</h3>
     <h2>Grails 7.0.0-M3 - Release Announcement</h2>
@@ -84,13 +90,13 @@
     <h3>January 3, 2025</h3>
     <h2>Introducing Grails Framework 6.2.3 Release</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2025-01-02-grails-community-rockstar-fredley.html'>
     <h3>January 2, 2025</h3>
     <h2>James Fredley Named 2025 Grails® Rock Star</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2024-12-23-grails-7-m1.html'>
     <h3>December 23, 2024</h3>
@@ -102,13 +108,13 @@
     <h3>November 20, 2024</h3>
     <h2>Introducing Grails Framework 6.2.2 Release</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2024-10-03-introducing-grails-6-2-1.html'>
     <h3>October 3, 2024</h3>
     <h2>Introducing Grails Framework 6.2.1 Release</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-5.png)'>
   <a href='https://grails.apache.org/blog/2024-10-01-grails-community-contributions.html'>
     <h3>October 1, 2024</h3>
@@ -120,13 +126,13 @@
     <h3>June 25, 2024</h3>
     <h2>Grails 7 MVP</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-5.png)'>
   <a href='https://grails.apache.org/blog/2024-06-07-grails-future.html'>
     <h3>June 7, 2024</h3>
     <h2>Grails Future Planning</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-security.png)'>
   <a href='https://grails.apache.org/blog/2023-12-20-cve-data-binding-dos.html'>
     <h3>December 20, 2023</h3>
@@ -138,13 +144,13 @@
     <h3>November 14, 2023</h3>
     <h2>Introducing Grails Framework 6.1.0 Release</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2023-09-11-the-new-grails-plugin-portal.html'>
     <h3>September 11, 2023</h3>
     <h2>Introducing the New Grails Plugin Portal - A ...</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2023-08-25-introducing-grails-spring-security-core-6.html'>
     <h3>August 25, 2023</h3>
@@ -156,13 +162,13 @@
     <h3>August 3, 2023</h3>
     <h2>Introducing the New Grails Forge - A Lightnin...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2023-07-25-introducing-grails-6.html'>
     <h3>July 25, 2023</h3>
     <h2>Introducing Grails 6 - Embracing Modern Java,...</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2023-05-27-grails-6-rc1.html'>
     <h3>May 27, 2023</h3>
@@ -174,13 +180,13 @@
     <h3>March 29, 2023</h3>
     <h2>Grails 6 M2 - Release Annoucement</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-1.png)'>
   <a href='https://grails.apache.org/blog/2023-03-17-grails-foundation-joining-unity-foundation.html'>
     <h3>March 17, 2023</h3>
     <h2>Grails Foundation joining Unity</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-5.png)'>
   <a href='https://grails.apache.org/blog/2023-02-08-repository-maint.html'>
     <h3>February 8, 2023</h3>
@@ -192,13 +198,13 @@
     <h3>November 22, 2022</h3>
     <h2>Grails Spring Security Core Plugin Improper P...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2022-09-28-static-binding-bug.html'>
     <h3>September 28, 2022</h3>
     <h2>Grails Data Binding to Static Properties Bug</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-1.png)'>
   <a href='https://grails.apache.org/blog/2022-07-18-rce-vulnerability.html'>
     <h3>July 18, 2022</h3>
@@ -210,13 +216,13 @@
     <h3>April 1, 2022</h3>
     <h2>Announcing Our Newest Tools and Infrastructur...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-5.png)'>
   <a href='https://grails.apache.org/blog/2022-03-31-grails-spring-rce.html'>
     <h3>March 31, 2022</h3>
     <h2>Grails and the Recent Spring Framework RCE</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2022-01-07-gradle-enterprise-tools-and-infrastructure-partner.html'>
     <h3>January 7, 2022</h3>
@@ -228,13 +234,13 @@
     <h3>January 7, 2022</h3>
     <h2>2GM Town Hall Meeting: 2022 Q1</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-2.png)'>
   <a href='https://grails.apache.org/blog/2021-12-15-grails-five-one.html'>
     <h3>December 18, 2021</h3>
     <h2>Grails Framework 5.1 Released</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2019-12-20.jpg)'>
   <a href='https://grails.apache.org/blog/2021-12-14-log4j2-cve.html'>
     <h3>December 14, 2021</h3>
@@ -246,13 +252,13 @@
     <h3>December 7, 2021</h3>
     <h2>Grails Training Now Enrolling</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-2.png)'>
   <a href='https://grails.apache.org/blog/2021-11-23-db-migration-plugin-update.html'>
     <h3>November 23, 2021</h3>
     <h2>Grails Database Migration 4.0.0-RC1 Released</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2019-12-20.jpg)'>
   <a href='https://grails.apache.org/blog/2021-11-11.html'>
     <h3>November 11, 2021</h3>
@@ -264,13 +270,13 @@
     <h3>October 11, 2021</h3>
     <h2>Grails framework 5 GA Released</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-1.png)'>
   <a href='https://grails.apache.org/blog/2021-10-08-developer-advocate-announced.html'>
     <h3>October 8, 2021</h3>
     <h2>New Developer Advocate Announced</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-4.png)'>
   <a href='https://grails.apache.org/blog/2021-09-24-q3-town-hall-meeting.html'>
     <h3>September 24, 2021</h3>
@@ -282,13 +288,13 @@
     <h3>September 17, 2021</h3>
     <h2>Webinar: An Insider's Guide to Groovy 4</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-2.png)'>
   <a href='https://grails.apache.org/blog/2021-09-15-q3-town-hall-meeting-scheduled.html'>
     <h3>September 15, 2021</h3>
     <h2>2GM Q3 Town Hall Meeting Coming Soon</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-1.png)'>
   <a href='https://grails.apache.org/blog/2021-09-02-grails-deep-dive.html'>
     <h3>September 2, 2021</h3>
@@ -300,13 +306,13 @@
     <h3>August 25, 2021</h3>
     <h2>Groovy 4 Webinar Coming Soon</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2021-08-12-grails-5-rc1-release.html'>
     <h3>August 11, 2021</h3>
     <h2>Grails 5.0.0 RC1 Released</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-2.png)'>
   <a href='https://grails.apache.org/blog/2021-07-20-call-for-productivity-tips.html'>
     <h3>July 20, 2021</h3>
@@ -318,13 +324,13 @@
     <h3>June 10, 2021</h3>
     <h2>Updated Grails Wrapper for Grails 3 and 4 pro...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-1.png)'>
   <a href='https://grails.apache.org/blog/2021-05-21-2gm-town-hall-q2.html'>
     <h3>May 21, 2021</h3>
     <h2>2GM Town Hall Meeting: 2021 Q2</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-6.png)'>
   <a href='https://grails.apache.org/blog/2021-04-07-publish-grails-plugin-to-maven-central.html'>
     <h3>April 7, 2021</h3>
@@ -336,13 +342,13 @@
     <h3>March 22, 2021</h3>
     <h2>Meet the Grails® Framework's New Mascot, Sir ...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-5.png)'>
   <a href='https://grails.apache.org/blog/2021-02-12-alerts-regarding-bintray-sunset.html'>
     <h3>February 12, 2021</h3>
     <h2>Important Information Regarding Grails and Bi...</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-4.png)'>
   <a href='https://grails.apache.org/blog/2021-02-05-2gm-town-hall-q1.html'>
     <h3>February 5, 2021</h3>
@@ -354,13 +360,13 @@
     <h3>January 22, 2021</h3>
     <h2>Grails Framework Exciting Updates</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-5.png)'>
   <a href='https://grails.apache.org/blog/2020-10-26-grails-foundation-announcement.html'>
     <h3>October 26, 2020</h3>
     <h2>Grails® Foundation Announced</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/grails-blog-index-3.png)'>
   <a href='https://grails.apache.org/blog/2020-10-16-2gm-town-hall-2020-q4.html'>
     <h3>October 16, 2020</h3>
@@ -372,13 +378,13 @@
     <h3>October 1, 2020</h3>
     <h2>2GM Quarterly Town Hall Meetings</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2020-09-10.jpg)'>
   <a href='https://grails.apache.org/blog/2020-09-10-grails-state-of-union.html'>
     <h3>September 10, 2020</h3>
     <h2>Grails® State of the Union</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2019-12-20.jpg)'>
   <a href='https://grails.apache.org/blog/2019-12-20.html'>
     <h3>December 20, 2019</h3>
@@ -390,13 +396,13 @@
     <h3>August 27, 2019</h3>
     <h2>Webinar: Groovy 3 and Beyond – An Insider's G...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2019-07-11.jpg)'>
   <a href='https://grails.apache.org/blog/2019-07-11.html'>
     <h3>July 11, 2019</h3>
     <h2>Grails® 4 GA Released</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2019-06-18.jpg)'>
   <a href='https://grails.apache.org/blog/2019-06-18.html'>
     <h3>June 18, 2019</h3>
@@ -408,13 +414,13 @@
     <h3>May 30, 2019</h3>
     <h2>Possible Grails® MITM Vulnerability</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2019-05-24.jpg)'>
   <a href='https://grails.apache.org/blog/2019-05-24.html'>
     <h3>May 24, 2019</h3>
     <h2>Webinar: Single-Page Apps Simplified with the...</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2019-03-27.jpg)'>
   <a href='https://grails.apache.org/blog/2019-03-27.html'>
     <h3>March 27, 2019</h3>
@@ -426,13 +432,13 @@
     <h3>February 19, 2019</h3>
     <h2>Grails® 4 Milestone 1 Released</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2019-01-30.html'>
     <h3>January 30, 2019</h3>
     <h2>Quickcast #12: Building Grails® Applications ...</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2019-01-07.jpg)'>
   <a href='https://grails.apache.org/blog/2019-01-07.html'>
     <h3>January 7, 2019</h3>
@@ -444,13 +450,13 @@
     <h3>October 12, 2018</h3>
     <h2>Webinar: Introduction to Grails® Multi-Tenanc...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2018-10-02.jpg)'>
   <a href='https://grails.apache.org/blog/2018-10-02.html'>
     <h3>October 2, 2018</h3>
     <h2>Grails® Domain Read-Only Attribute</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2018-09-23.jpg)'>
   <a href='https://grails.apache.org/blog/2018-09-23.html'>
     <h3>September 23, 2018</h3>
@@ -462,13 +468,13 @@
     <h3>August 22, 2018</h3>
     <h2>Quickcast #11: Grails® Profiling with YourKit</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2018-08-22-1.html'>
     <h3>August 22, 2018</h3>
     <h2>Quickcast #10: Debugging Grails® Apps</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2018-06-22.jpg)'>
   <a href='https://grails.apache.org/blog/2018-06-22.html'>
     <h3>June 22, 2018</h3>
@@ -480,13 +486,13 @@
     <h3>June 15, 2018</h3>
     <h2>Webinar: I've Seen Grails® Code You Wouldn't ...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2018-05-24.jpg)'>
   <a href='https://grails.apache.org/blog/2018-05-24.html'>
     <h3>May 24, 2018</h3>
     <h2>Grails® Mock Logging</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2018-05-18.jpg)'>
   <a href='https://grails.apache.org/blog/2018-05-18.html'>
     <h3>May 18, 2018</h3>
@@ -498,13 +504,13 @@
     <h3>April 6, 2018</h3>
     <h2>Webinar: Database Migration with Grails® 3</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2018-04-05.jpg)'>
   <a href='https://grails.apache.org/blog/2018-04-05.html'>
     <h3>April 5, 2018</h3>
     <h2>Introducing the Grails® 3 GORM Logical Delete...</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2018-03-09.jpg)'>
   <a href='https://grails.apache.org/blog/2018-03-09.html'>
     <h3>March 9, 2018</h3>
@@ -516,13 +522,13 @@
     <h3>March 6, 2018</h3>
     <h2>Webinar: Browser Automation Testing with Geb ...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2018-03-02.jpg)'>
   <a href='https://grails.apache.org/blog/2018-03-02.html'>
     <h3>March 2, 2018</h3>
     <h2>Grails® Development with Groovy Eclipse</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2018-02-09.jpg)'>
   <a href='https://grails.apache.org/blog/2018-02-09.html'>
     <h3>February 9, 2018</h3>
@@ -534,13 +540,13 @@
     <h3>February 8, 2018</h3>
     <h2>Quickcast #9: GORM Many-to-One Relationship –...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2017-12-05.jpg)'>
   <a href='https://grails.apache.org/blog/2017-12-05.html'>
     <h3>December 5, 2017</h3>
     <h2>Grails® Test Leakage</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2017-11-30.jpg)'>
   <a href='https://grails.apache.org/blog/2017-11-30.html'>
     <h3>November 30, 2017</h3>
@@ -552,13 +558,13 @@
     <h3>November 21, 2017</h3>
     <h2>Grails® React Profiles</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2017-11-09.jpg)'>
   <a href='https://grails.apache.org/blog/2017-11-09.html'>
     <h3>November 9, 2017</h3>
     <h2>Webinar: Grails® 3 for Spring Developers</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2017-10-30.html'>
     <h3>October 30, 2017</h3>
@@ -570,13 +576,13 @@
     <h3>July 26, 2017</h3>
     <h2>Grails® 3.3 GA Released</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2017-07-12.html'>
     <h3>July 12, 2017</h3>
     <h2>Quickcast #7: Logging with Grails® 3</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2017-06-28.jpg)'>
   <a href='https://grails.apache.org/blog/2017-06-28.html'>
     <h3>June 28, 2017</h3>
@@ -588,13 +594,13 @@
     <h3>June 27, 2017</h3>
     <h2>Checked Exceptions Rollback Transactions Sinc...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2017-05-09.jpg)'>
   <a href='https://grails.apache.org/blog/2017-05-09.html'>
     <h3>May 9, 2017</h3>
     <h2>Why You Should Avoid Using Autowiring for Gra...</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2017-04-12.jpg)'>
   <a href='https://grails.apache.org/blog/2017-04-12.html'>
     <h3>April 12, 2017</h3>
@@ -606,13 +612,13 @@
     <h3>April 2, 2017</h3>
     <h2>How to Add Build Info to Your Project</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2017-03-27.jpg)'>
   <a href='https://grails.apache.org/blog/2017-03-27.html'>
     <h3>March 27, 2017</h3>
     <h2>GORM 6.1 Released</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2017-01-20-4.html'>
     <h3>January 20, 2017</h3>
@@ -624,13 +630,13 @@
     <h3>January 20, 2017</h3>
     <h2>Quickcast #4: Angular Scaffolding</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2017-01-20-3.html'>
     <h3>January 20, 2017</h3>
     <h2>Quickcast #5: Retrieving Runtime Config Value...</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2017-01-20-1.html'>
     <h3>January 20, 2017</h3>
@@ -642,13 +648,13 @@
     <h3>December 14, 2016</h3>
     <h2>G3 Summit 2016 Wrap-up!</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-11-14.jpg)'>
   <a href='https://grails.apache.org/blog/2016-11-14.html'>
     <h3>November 14, 2016</h3>
     <h2>Introducing the React Profile for Grails®</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-11-10.jpg)'>
   <a href='https://grails.apache.org/blog/2016-11-10.html'>
     <h3>November 10, 2016</h3>
@@ -660,13 +666,13 @@
     <h3>November 1, 2016</h3>
     <h2>Configuring Rolling Logging with Logback</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-10-03.jpg)'>
   <a href='https://grails.apache.org/blog/2016-10-03.html'>
     <h3>October 3, 2016</h3>
     <h2>How to Use Travis-CI to Build and Deploy Your...</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-09-28.jpg)'>
   <a href='https://grails.apache.org/blog/2016-09-28.html'>
     <h3>September 28, 2016</h3>
@@ -678,13 +684,13 @@
     <h3>September 12, 2016</h3>
     <h2>How to Migrate from Resources Plugin to Asset...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-08-31.jpg)'>
   <a href='https://grails.apache.org/blog/2016-08-31.html'>
     <h3>August 31, 2016</h3>
     <h2>Retrieving Config Values In Grails® 3</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-08-01.jpg)'>
   <a href='https://grails.apache.org/blog/2016-08-01.html'>
     <h3>August 1, 2016</h3>
@@ -696,13 +702,13 @@
     <h3>July 22, 2016</h3>
     <h2>Grails® 3.2 M2 and GORM 6.0 M2 Released</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-07-06.jpg)'>
   <a href='https://grails.apache.org/blog/2016-07-06.html'>
     <h3>July 6, 2016</h3>
     <h2>Grails® Angular Scaffolding</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-06-26.jpg)'>
   <a href='https://grails.apache.org/blog/2016-06-26.html'>
     <h3>June 26, 2016</h3>
@@ -714,13 +720,13 @@
     <h3>June 7, 2016</h3>
     <h2>GR8Conf EU 2016 Wrap-up!</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-06-02.jpg)'>
   <a href='https://grails.apache.org/blog/2016-06-02.html'>
     <h3>June 2, 2016</h3>
     <h2>Monitoring and Metrics with Grails® 3</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-05-31.jpg)'>
   <a href='https://grails.apache.org/blog/2016-05-31.html'>
     <h3>May 31, 2016</h3>
@@ -732,13 +738,13 @@
     <h3>May 28, 2016</h3>
     <h2>Using React with the Grails® framework</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-05-26.jpg)'>
   <a href='https://grails.apache.org/blog/2016-05-26.html'>
     <h3>May 26, 2016</h3>
     <h2>Deploying Grails® 3.1 Applications to JBoss 6...</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-04-28.jpg)'>
   <a href='https://grails.apache.org/blog/2016-04-28.html'>
     <h3>April 28, 2016</h3>
@@ -750,13 +756,13 @@
     <h3>April 27, 2016</h3>
     <h2>How to Use a Specific Version of GORM in Grai...</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2016-04-13.jpg)'>
   <a href='https://grails.apache.org/blog/2016-04-13.html'>
     <h3>April 13, 2016</h3>
     <h2>JSON Views</h2>
   </a>
-</article></div></div><div class="threecolumns">
+</article></div>
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/quickcast.jpg)'>
   <a href='https://grails.apache.org/blog/2016-04-01-2.html'>
     <h3>April 1, 2016</h3>
@@ -768,13 +774,13 @@
     <h3>April 1, 2016</h3>
     <h2>Quickcast #1: Grails® Interceptors</h2>
   </a>
-</article></div>
+</article></div></div><div class="threecolumns">
       <div class='column'><article class='blogcard' style='background-image: url(https://grails.apache.org/images/2015-03-01.jpg)'>
   <a href='https://grails.apache.org/blog/2015-03-01.html'>
     <h3>March 1, 2015</h3>
     <h2>Grails® 3 Interceptors</h2>
   </a>
-</article></div></div>
+</article></div>
     </div>
   </div>
 </div>&nbsp;</article>
diff --git a/foundation/minutes.xml b/foundation/minutes.xml
index 608815b077..2c6efa8d4a 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>Wed, 11 Jun 2025 23:24:11 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>Wed, 11 Jun 2025 23:27:57 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/rss.xml b/rss.xml
index 3097995d8b..636b38e1f1 100644
--- a/rss.xml
+++ b/rss.xml
@@ -1,4 +1,181 @@
-<?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>Wed, 11 Jun 2025 23:24:13 GMT</pubDate><item><title>Grails 7.0.0-M3 - Release Announcement</title><link>https://grails.apache.org/blog/2025-03-05-grails-7-m3.html</link [...]
+<?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>Wed, 11 Jun 2025 23:27:59 GMT</pubDate><item><title>Apache Grails (Incubating) 7.0.0-M4 - Release Announcement</title><link>https://grails.apache.org/blog/2025-06-10-gr [...]
+<p>The Apache Grails (incubating) community is excited for the release of Grails Framework 7.0.0-M4. <br />
+We encourage you to try this pre-release and provide your feedback <a href="https://github.com/apache/grails-core/issues">here</a>.</p>
+<h2>Download Source Code and Binary Distributions</h2>
+<p><a href="/download.html">Apache Grails Downloads</a></p>
+<h3>Users Mailing List</h3>
+<p>The users mailing list will be a General purpose list for questions and discussion about Grails.<br />
+<strong>Web Archive:</strong> <a href="https://lists.apache.org/list.html?users@grails.apache.org">https://lists.apache.org/list.html?users@grails.apache.org</a> <br />
+<strong>Subscribe:</strong> Send a blank email to <a href="mailto:users-subscribe@grails.apache.org">users-subscribe@grails.apache.org</a></p>
+<h3>Dev Mailing List</h3>
+<p>The dev mailing list is focused on the framework implementation and its evolution. <br />
+<strong>Web Archive:</strong> <a href="https://lists.apache.org/list.html?dev@grails.apache.org">https://lists.apache.org/list.html?dev@grails.apache.org</a> <br />
+<strong>Subscribe:</strong> Send a blank email to <a href="mailto:dev-subscribe@grails.apache.org">dev-subscribe@grails.apache.org</a></p>
+<p>When participating in mailing lists, you should never include any personally identifiable information (PII) like
+your address, phone number or email address, as all messages sent to these lists are publicly accessible and archived,
+meaning anyone can view your information. Make sure your email client does not add your signature with these items.</p>
+<h2>What's Changed</h2>
+<p>For changes made in Grails 7 prior to 7.0.0-M4, check out the <a href="/blog/2024-12-23-grails-7-m1.html">Grails 7.0.0-M1 Release Blog Post</a> and <a href="/blog/2025-03-05-grails-7-m3.html">Grails 7.0.0-M3 Release Blog Post</a></p>
+<p>Apache Grails (incubating) 7.0.0-M4 is the first release for Grails under the Apache Software Foundation (ASF). This release focuses first on meeting the requirements of the ASF &amp; improving the developer experience of Grails itself &amp; Grails Applications. As part of this transition, the developers moved to a mono repository, reworked the way the various Grails CLIs work, modernized its build system, modernized the various Grails Gradle Tasks, modernized the various Grails Gradl [...]
+<h3>With the release of Grails 7.0.0-M4, we have:</h3>
+<ul>
+<li>PR #14750 - support non-persistent super classes for @Autotimestamp</li>
+<li>Issue #14745 - remove deprecated doc method on Grails Plugins</li>
+<li>Issue #14745 - remove duplicate grails.factories &amp; grails-plugin.xml files now that AST generation is working correctly</li>
+<li>Issue #14745 - switch to Spring Boot 3.5.0 with Spring Framework 6.2.7 due to bug (https://github.com/spring-projects/spring-framework/issues/34796)</li>
+<li>Issue #14745 - change the grails-gradle-model to export Groovy 3 due to Gradle Task isolation in later versions of Gradle</li>
+<li>Issue #14745 - rework the FindMainTask to correctly set the main Application class on BootWar, BootJar, &amp; BootRun</li>
+<li>Issue #14745 - remove org.grails.plugins.CodecGrailsPlugin; use org.grails.plugins.codecs.CodecsGrailsPlugin instead</li>
+<li>Issue #14745 - remove the remaining pathingJar task functions</li>
+<li>Issue #14745 - fix a databinding scenario in DataBindingUtils to lookup a domain object</li>
+<li>PR #14749 - retire Mongo 5.0 &amp; 6.0 test pipelines since those versions are end of support</li>
+<li>PR #14746 - switch to asset-pipeline-gradle 5.0.9</li>
+<li>PR #14743 - remove redundant buildScript from test projects</li>
+<li>Issue #14706 - rework grailsw to be usable independently of SDKMAN installs</li>
+<li>Issue #14706 - rework grails-shell-cli to be usable independently of SDKMAN installs</li>
+<li>Issue #14706 - rework the command cli to support a grailsw that can self-update either forge or legacy shell cli</li>
+<li>Issue #14706 - distribute a delegating CLI that can call either forge or the legacy shell cli</li>
+<li>Issue #14706 - rework the legacy shell cli to correctly find profiles</li>
+<li>Issue #14706 - rework both grailsw &amp; grails-shell-cli to be testable outside of releases</li>
+<li>Issue #14679 - generate reproducible groovydoc jars</li>
+<li>Issue #14679 - fix profile compilation to generate reproducible jars</li>
+<li>Issue #14679 - ensure groovydoc is used instead of javadoc for documentation jars</li>
+<li>PR #14709 - switch to Gradle 8.14</li>
+<li>PR #14678 - add support for external config locations, by incorporating the external-config plugin into Grails core</li>
+<li>Refactor grails into a mono repo (grails-views, gsp, data mapping, geb, etc are all merged into core now)</li>
+<li>As part of the mono repo transition, several Deprecated classes were removed from the views project; see the upgrade guide for the details.</li>
+<li>Issue #14679 - refactor grails build to be parallel &amp; lazy</li>
+<li>Issue #14679 - change all Grails gradle tasks to support Caching where appropriate and support lazy style configuration</li>
+<li>Issue #14679 - Redesign the Grails Data TCK to support modern versions of Java</li>
+<li>Issue #14679 - Support consistent property dates in generated property files when SOURCE_DATE_EPOCH is set</li>
+<li>Issue #14679 - Make grails.factories generation reproducible</li>
+<li>Issue #14679 - Refactor Grails AST Transformations to take advantage of Groovy's TransformWithPriority and enforce transforms always run in the order defined by the class <code>GroovyTransformOrder</code></li>
+<li>Issue #14679 - Remove manifest attributes that could vary on the Grails jars (Built-By, Created-By etc)</li>
+<li>Issue #14679 - Fix sourcejar creation to not contain duplicates</li>
+<li>Issue #14679 - Fix javadoc jars to be generated based on groovydoc &amp; to not contain duplicates</li>
+<li>Issue #14679 - Change AST transforms to be reproducible by adopting determined ordering collections</li>
+<li>Issue #14679 - Configure Grails jars per Gradle's reproducibility requirements (fixed permissions, reproducible file order, etc)</li>
+<li>Issue #13850 - introduce <code>grails-common</code> to share common code between Grails Data Mapping &amp; Grails-Core</li>
+<li>Issue #14679 - add scripts to confirm reproducibility of Grails; currently 14 of 290 jars are reproducible</li>
+<li>Issue #14679 - make TagLib lookups reproducible</li>
+<li>PR #14671 - switch to webjars for test css/js assets instead of checked in files</li>
+<li>The Grails Gradle plugin had a bug that caused plugin resolution issues that was fixed after the last milestone.</li>
+<li>Rework the grails bom to generate valid Gradle modules, be easier to maintain, and valid pom files.  Enhance the documentation process to parse the bom &amp; generate the published versions in the grails doc.</li>
+</ul>
+<p>And in addition to all of this:</p>
+<ul>
+<li>We changed all coordinates of Grails to be org.apache.grails based. See https://github.com/apache/grails-core/blob/7.0.x/RENAME.md for how we mapped these libraries. There is also a script documented in the upgrade guide to assist in upgrading.</li>
+<li>Consolidated main Grails projects into grails-core git monorepository to drastically speed up development, testing and the release process</li>
+<li>Significant test fixes</li>
+<li>Significant documentation updates &amp; changes</li>
+<li>Addition of license headers to Grails Source</li>
+<li>Addition of NOTICE to Grails Source</li>
+<li>Created https://repo.grails.org/grails/restricted/ to replace https://repo.grails.org/grails/core longer term.  This virtual repo's scope is significantly reduced to help reduce the chance of using outdated libraries.</li>
+</ul>
+<p>Upgrade instructions are available in the <a href="https://docs.grails.org/7.0.0-M4/guide/single.html#upgrading60x">documentation</a>.</p>
+<h2>Dependency Upgrades</h2>
+<p>In this release, we've upgraded several dependency versions, including but not limited to the following:</p>
+<ul>
+<li>Asset Pipeline 5.0.9</li>
+<li>Groovy 4.0.27</li>
+<li>Spring Framework 6.2.7</li>
+<li>Spring Boot 3.5.0</li>
+<li>Gradle 8.14</li>
+<li>Spock 2.3-groovy-4.0</li>
+<li>See all in the <a href="https://docs.grails.org/7.0.0-M4/ref/Versions/Grails%20BOM.html">grails-bom</a>.</li>
+</ul>
+<h2>Installing Grails 7.0.0-M4</h2>
+<p>Try out Grails 7.0.0-M4 today by visiting the online app creator * <a href="https://start.grails.org/">Grails Forge</a>.
+Alternatively, you can quickly install Grails 7.0.0-M4 using the <a href="https://sdkman.io/">SDKMan</a>.</p>
+<ol>
+<li>
+<p>If you don't have SDKMan installed, follow the instructions at <a href="https://sdkman.io/install/">SDKMan Installation Guide</a>
+to set it up.</p>
+</li>
+<li>
+<p>Once SDKMan is installed, open your terminal and run the following command to install Grails 7.0.0-M4:</p>
+<pre><code class="language-shell">sdk install grails 7.0.0-M4
+</code></pre>
+</li>
+<li>
+<p>You're all set! To verify the installation, run:</p>
+<pre><code class="language-shell">grails --version
+</code></pre>
+</li>
+</ol>
+<h2>Upgrading Your Existing Applications to Grails 7.0.0-M4</h2>
+<p>If you already have a Grails application and want to upgrade to the latest version, follow these steps:</p>
+<ol>
+<li>
+<p>Open the project in your favorite IDE (preferably JetBrains' IntelliJ IDEA).</p>
+</li>
+<li>
+<p>Update your application's <code>gradle.properties</code> file to specify Grails 7.0.0-M4 as the desired version.</p>
+<pre><code class="language-properties">grailsVersion=7.0.0-M4
+# The Grails Gradle Plugin version is now available in the BOM
+# and can be omitted if your project adds the Grails BOM to the
+# buildscript dependencies.
+grailsGradlePluginVersion=7.0.0-M4
+# Temporary for 7.0.0-M4 to force the latest version
+groovy.version=4.0.27
+</code></pre>
+</li>
+<li>
+<p>Make any necessary adjustments to your application code, configuration, and dependencies to ensure compatibility with
+the new version. See https://docs.grails.org/7.0.0-M4/guide/single.html#upgrading60x.</p>
+</li>
+</ol>
+<p>Normally, Grails Core dependencies are automatically updated using the Grails Bill of Materials (BOM). However, if you
+have specific versions defined in your build configuration, you may need to manually update them to align with
+Grails 7.0.0-M4.</p>
+<p>By following these steps, you should be able to transition your existing Grails application to Grails 7.0.0-M4.</p>
+<h3>Exploring Alternative Approaches</h3>
+<p>If manual dependency updates seem daunting, or you want a more streamlined approach, consider the following alternatives:</p>
+<h4>1. Use Grails Forge Website</h4>
+<p>Visit <a href="https://start.grails.org">Grails Forge</a> and generate a new Grails application with Grails 7.0.0-M4. Compare the
+versions in the newly generated application with your existing one to identify any discrepancies. This can serve as a
+reference point for your update.</p>
+<h4>2. Automated Dependency Update Bots</h4>
+<p>Configure automated dependency update bots like <a href="https://docs.renovatebot.com/">Renovate</a> or
+<a href="https://dependabot.com/">Dependabot</a> with your source control platform (e.g., GitHub). These bots can automatically
+detect and update outdated dependencies in your project, including Grails dependencies, saving you time and effort in
+manual updates.</p>
+<p>With these steps and alternative approaches, you should be well on your way to enjoying the exciting features and
+improvements in Grails 7.0.0-M4. Happy coding!</p>
+<h2>Why should you try out Grails 7.0.0-M4?</h2>
+<ul>
+<li>Help us test this major upgrade of the Grails Framework and provide feedback.</li>
+<li>Be ready for when Grails 7 is released.</li>
+</ul>
+<h2>Grails 7 Release Schedule</h2>
+<ul>
+<li>We will continue to work on <a href="https://github.com/orgs/apache/projects/487">updating and fixing issues</a> over the next few
+weeks.</li>
+<li>Based on feedback, an Apache Grails RC release is targeted for July 2025.</li>
+</ul>
+<h2>Thank you!</h2>
+<p>A huge thank you to our amazing community for supporting the Grails Framework over the past 19 years! We’re excited for
+the future and grateful for the opportunity to continue innovating and pushing Grails forward together.</p>
+<h2>Contributors</h2>
+<p>We would like to extend our heartfelt thanks to all the contributors who made Grails 7.0.0-M4 possible. <br />
+Special thanks to:</p>
+<ul>
+<li><a href="https://github.com/jdaugherty">James Daugherty</a></li>
+<li><a href="https://github.com/jamesfredley">James Fredley</a></li>
+<li><a href="https://github.com/matrei">Mattias Reichel</a></li>
+<li><a href="https://github.com/codeconsole">Scott Murphy</a></li>
+<li><a href="https://github.com/sbglasius">Søren Berg Glasius</a></li>
+<li><a href="https://github.com/davydotcom">David Estes</a></li>
+<li><a href="https://github.com/amondel2">Aaron Mondelblatt</a></li>
+<li><a href="https://github.com/arjangch">Arjang Chinichian</a></li>
+<li><a href="https://github.com/JonasPammer">Jonas Pammer</a></li>
+<li><a href="https://github.com/bkoehm">Brian Koehmstedt</a></li>
+<li><a href="https://github.com/gsartori">Gianluca Sartori</a></li>
+<li><a href="https://github.com/paulk-asert">Paul King</a></li>
+</ul>
+<p>Their dedication and hard work have significantly contributed to the release of Grails 7.0.0-M4.</p>
+<p>Join the <a href="https://grails.slack.com">Grails Slack Community</a>, share your feedback, and contribute to making Grails Framework even better in
+the future. Happy coding!</p>]]></description><author>James Fredley</author><guid>2025-06-10-grails-7-m4</guid><pubDate>Tue, 10 Jun 2025 00:00:00 GMT</pubDate></item><item><title>Grails 7.0.0-M3 - Release Announcement</title><link>https://grails.apache.org/blog/2025-03-05-grails-7-m3.html</link><description><![CDATA[</p>
 <p>The Grails Foundation is excited for the release of Grails Framework 7.0.0-M3. <br />
 We encourage you to try this pre-release and provide your feedback <a href="https://github.com/apache/grails-core/issues">here</a>.</p>
 <p>The next milestone is planned to be released under the Apache Software Foundation as Apache Grails 7.0.0-M4.</p>
@@ -8,7 +185,7 @@ We encourage you to try this pre-release and provide your feedback <a href="http
 <h3>Users Mailing List</h3>
 <p>The users mailing list will be a General purpose list for questions and discussion about Grails.<br />
 <strong>Web Archive:</strong> <a href="https://lists.apache.org/list.html?users@grails.apache.org">https://lists.apache.org/list.html?users@grails.apache.org</a> <br />
-<strong>Subscribe:</strong> Send a blank email to <a href="mailto:users-subscribe@grails.apache.org]">users-subscribe@grails.apache.org</a></p>
+<strong>Subscribe:</strong> Send a blank email to <a href="mailto:users-subscribe@grails.apache.org">users-subscribe@grails.apache.org</a></p>
 <h3>Dev Mailing List</h3>
 <p>The dev mailing list is focused on the framework implementation and its evolution. <br />
 <strong>Web Archive:</strong> <a href="https://lists.apache.org/list.html?dev@grails.apache.org">https://lists.apache.org/list.html?dev@grails.apache.org</a> <br />
diff --git a/sitemap.xml b/sitemap.xml
index 5cd7ca1cd7..b4c43bd98a 100644
--- a/sitemap.xml
+++ b/sitemap.xml
@@ -351,6 +351,9 @@
   <url>
     <loc>https://grails.apache.org/blog/2025-03-05-grails-7-m3.html</loc>
   </url>
+  <url>
+    <loc>https://grails.apache.org/blog/2025-06-10-grails-7-m4.html</loc>
+  </url>
   <url>
     <loc>https://grails.apache.org/blog/index.html</loc>
   </url>