| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <title>Apache Grails® Framework</title> |
| <meta name="keywords" content="grails,jvm,framework,groovy,gradle,spring-boot,gorm"/> |
| <meta name="description" content="A powerful Groovy-based web application framework for the JVM built on top of Spring Boot"/> |
| <meta name="date" content="July 5, 2026"/> |
| <meta name="robots" content="all"/> |
| <meta name='twitter:card' content='summary_large_image'/> |
| <meta name='twitter:site' content='@grailsframework'/> |
| <meta name='twitter:description' content='A powerful Groovy-based web application framework for the JVM built on top of Spring Boot'/> |
| <meta name='twitter:creator' content='@grailsframework'/> |
| <meta property='og:image' content='https://grails.apache.org/images/grails.png'/> |
| <meta property='og:url' content='https://grails.apache.org/index.html'/> |
| <meta property='og:title' content='Apache Grails® Framework'/> |
| <meta property='og:description' content='A powerful Groovy-based web application framework for the JVM built on top of Spring Boot'/> |
| <meta property='og:type' content='website'/> |
| |
| <meta charset='UTF-8'/> |
| <meta name='viewport' content='width=device-width, initial-scale=1'/> |
| <link rel='icon' href='https://grails.apache.org/images/favicon.ico'/> |
| <link rel='mask-icon' href='https://grails.apache.org/images/grails-pinned-icon.svg' color='feb672'/> |
| <link rel='alternate' type='application/rss+xml' title='RSS' href='https://grails.apache.org/rss.xml'/> |
| <link rel='stylesheet' href='https://grails.apache.org/stylesheets/screen.css'/> |
| <link rel='stylesheet' href='https://grails.apache.org/stylesheets/plugin.css'/> |
| <script src='https://grails.apache.org/javascripts/navigation.js'></script> |
| |
| <!-- Matomo --> |
| <script> |
| var _paq = window._paq = window._paq || []; |
| _paq.push(['setDoNotTrack', true]); |
| _paq.push(['disableCookies']); |
| _paq.push(['trackPageView']); |
| _paq.push(['enableLinkTracking']); |
| (function() { |
| var u = 'https://analytics.apache.org/'; |
| _paq.push(['setTrackerUrl', u + 'matomo.php']); |
| _paq.push(['setSiteId', '79']); |
| var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0]; |
| g.async = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s); |
| })(); |
| </script> |
| <!-- End Matomo Code --> |
| |
| <script |
| async |
| src="https://widget.kapa.ai/kapa-widget.bundle.js" |
| data-website-id="d804a9f2-51a2-414c-97f7-12f2a1ba4609" |
| data-project-name="Apache Grails" |
| data-project-color="#3F4346" |
| data-font-family="system-ui,-apple-system,BlinkMacSystemFont,Roboto,Helvetica,Arial,Segoe UI,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;" |
| data-project-logo="https://grails.apache.org/images/grails.png" |
| data-modal-override-open-id="ask-ai-input" |
| data-modal-override-open-class="search-input" |
| data-user-analytics-fingerprint-enabled="true" |
| data-modal-title="Apache Grails AI Assistant" |
| data-modal-example-questions-title="Try asking me..." |
| data-modal-example-questions="How does database migration work?,How does Spring Security work?" |
| data-button-text-color="#FBB576" |
| data-modal-header-bg-color="#FFFFFF" |
| data-modal-title-color="#FBB576" |
| data-consent-required="true"></script> |
| |
| |
| <link rel='stylesheet' href='https://grails.apache.org/stylesheets/paginate.css'/> |
| <script src='https://grails.apache.org/javascripts/paginate.js'></script> |
| |
| |
| |
| <script src='https://grails.apache.org/javascripts/plugins.js'></script> |
| </head> |
| <body> |
| <header class='main-header'> |
| <div class='content'> |
| <a href='https://grails.apache.org/index.html'><img class='grails-logo' src='https://grails.apache.org/images/grails_logo.svg' alt='Grails Logo'/></a> |
| <a href='javascript:show("top-menus", "show-navigation-link")' id='show-navigation-link' |
| class='mobile align-center'>Show Navigation</a> |
| <div id='top-menus'> |
| <nav class='secondary-menu' id='secondary-menu'> |
| <ul> |
| <li><a href='https://grails.apache.org/casestudies/index.html'>Case Studies</a></li> |
| <li><a href='https://grails.apache.org/blog/index.html'>Blog</a></li> |
| <li><a href='https://grails.apache.org/learning.html'>Learning</a></li> |
| <li><a href='https://grails.apache.org/community.html'>Community</a></li> |
| <li><a href='https://grails.apache.org/search.html'>Search</a></li> |
| </ul> |
| </nav> |
| <nav class='main-menu' id='main-menu'> |
| <ul> |
| <li><a href='https://grails.apache.org/documentation.html'>Documentation</a></li> |
| <li><a href='https://grails.apache.org/download.html'>Download</a></li> |
| <li><a href='https://grails.apache.org/plugins.html'>Plugins</a></li> |
| <li><a href='https://grails.apache.org/guides'>Guides</a></li> |
| <li><a href='https://grails.apache.org/faq.html'>FAQ</a></li> |
| <li><a href='https://grails.apache.org/support.html'>Support</a></li> |
| <li><a href='https://start.grails.org'>Forge App</a></li> |
| </ul> |
| </nav> |
| </div> |
| </div> |
| </header> |
| |
| <article><div class="home-bar"> |
| <div class="content"> |
| <h1>A powerful Groovy-based web application framework for the JVM built on top of Spring Boot</h1> |
| <div class="get-started-row"> |
| <div class="call-to-action"> |
| <h2> |
| <a href="https://start.grails.org/"> |
| <span class="version">Get Started</span> |
| </a> |
| </h2> |
| </div> |
| </div> |
| <div class="hero-cards"><div class="hero-card"><div class="hero-card-label">Grails 7.2.0</div><div class="hero-card-actions"><a class="hero-action hero-action-download" href="https://www.apache.org/dyn/closer.lua/grails/core/7.2.0/distribution/apache-grails-7.2.0-bin.zip?action=download">Download</a><a class="hero-action hero-action-docs" href="https://grails.apache.org/docs/7.2.0/">Documentation</a></div></div><div class="hero-card"><div class="hero-card-label">Grails 7.1.3</div><div class="hero-card-actions"><a class="hero-action hero-action-download" href="https://www.apache.org/dyn/closer.lua/grails/core/7.1.3/distribution/apache-grails-7.1.3-bin.zip?action=download">Download</a><a class="hero-action hero-action-docs" href="https://grails.apache.org/docs/7.1.3/">Documentation</a></div></div><div class="hero-card"><div class="hero-card-label">Grails 7.0.13</div><div class="hero-card-actions"><a class="hero-action hero-action-download" href="https://www.apache.org/dyn/closer.lua/grails/core/7.0.13/distribution/apache-grails-7.0.13-bin.zip?action=download">Download</a><a class="hero-action hero-action-docs" href="https://grails.apache.org/docs/7.0.13/">Documentation</a></div></div></div> |
| <div class="get-started-row"> |
| <div class="call-to-action"> |
| <a class="allversions" href="https://grails.apache.org/download.html">browse all download versions</a> |
| <span class="allversions"> · </span> |
| <a class="allversions" href="https://grails.apache.org/documentation.html">browse all documentation versions</a> |
| </div> |
| </div> |
| <div class="get-started-row"> |
| <div class="call-to-action"> |
| <h2> |
| <a href="https://grails.apache.org/support-schedule.html"> |
| <span class="version">Support Schedule</span> |
| </a> |
| </h2> |
| </div> |
| </div> |
| <div class="get-started-row"> |
| <div class="call-to-action"> |
| <span class="allversions">NOTE: Versions prior to 7.0.0-M4 are not ASF releases. Links to those releases |
| are provided here as a convenience.</span> |
| </div> |
| </div> |
| </div> |
| </div> |
| <article id="features"> |
| <div class="content"> |
| <div class="three-columns"> |
| <div class="column"> |
| <img src="https://grails.apache.org/images/flatlearningcurve.png" alt="Flat Learning Curve" loading="lazy"> |
| <h3>Flat Learning Curve</h3> |
| <p>Convention-over-configuration, sensible defaults, opinionated APIs, and the Groovy language combine |
| to make the Grails<sup>®</sup> framework easy to learn for Java developers.</p> |
| </div> |
| <div class="column"> |
| <img src="https://grails.apache.org/images/springboot.svg" alt="Spring Boot" loading="lazy"> |
| <h3>On top of Spring Boot</h3> |
| <p>The Grails framework is built on top of Spring Boot and leverages Spring Boot's time-saving features, |
| such as Spring-powered dependency injection.</p> |
| </div> |
| <div class="column"> |
| <img src="https://grails.apache.org/images/java.png" alt="Smooth Java Integration" loading="lazy"> |
| <h3>Smooth Java Integration</h3> |
| <p>The Grails framework seamlessly and transparently integrates and interoperates with Java, the JVM, |
| and existing Java EE containers.</p> |
| </div> |
| <div class="column"> |
| <img src="https://grails.apache.org/images/groovy.png" alt="Groovy Programming Language" loading="lazy"> |
| <h3>Groovy-Based</h3> |
| <p>Apache Groovy is a language for the Java platform designed to enhance developers' productivity. It is |
| an optionally-typed and dynamic language but with static-typing and static compilation capabilities. |
| </p> |
| </div> |
| <div class="column"> |
| <img src="https://grails.apache.org/images/gorm.png" alt="GORM - Data Access Toolkit" loading="lazy"> |
| <h3>Seamless GORM Integration</h3> |
| <p>The Grails framework seamlessly integrates with GORM, a data access toolkit that provides a rich set |
| of APIs for accessing relational and non-relational data. GORM also includes implementations for |
| Hibernate (SQL), MongoDB, Cassandra, and Neo4j.</p> |
| </div> |
| <div class="column"> |
| <img src="https://grails.apache.org/images/restapis.svg" alt="REST APIs, REACT, ANGULAR" loading="lazy"> |
| <h3>REST APIs, REACT, ANGULAR</h3> |
| <p>With the use of application profiles, including React and Angular, the Grails framework allows |
| developers to build REST APIs or modern web applications with a JavaScript frontend.</p> |
| </div> |
| <div class="column"> |
| <img src="https://grails.apache.org/images/plugins.svg" alt="Grails Plugins Logo" loading="lazy"> |
| <h3>Plugins</h3> |
| <p>Developers can build plugins that extend and enhance the Grails framework, or they can access |
| existing plugins published by a vibrant plugin community.</p> |
| </div> |
| <div class="column"> |
| <img src="https://grails.apache.org/images/view.svg" alt="View Technologies" loading="lazy"> |
| <h3>View Technologies</h3> |
| <p>Technologies such as GSP, JSON Views, and Markup Views help developers effortlessly generate HTML, |
| JSON, and XML.</p> |
| </div> |
| <div class="column"> |
| <img src="https://grails.apache.org/images/asynchronous.svg" alt="Asynchronous Capabilities" loading="lazy"> |
| <h3>Asynchronous Capabilities</h3> |
| <p>The async features of the Grails framework aim to simplify concurrent programming. The framework's |
| features include the concept of Promises, a unified event model, and the use of RxJava to write |
| reactive logic.</p> |
| </div> |
| <div class="column"> |
| <img src="https://grails.apache.org/images/opensource.svg" alt="Open Source" loading="lazy"> |
| <h3>Open Source</h3> |
| <p>The Grails framework is an open source Apache 2 License project.</p> |
| </div> |
| <div class="column"> |
| <img src="https://grails.apache.org/images/dsl.png" alt="Domain-Specific Languages" loading="lazy"> |
| <h3>Domain-Specific Languages</h3> |
| <p>The Grails framework relies on expressive domain-specific languages (DSLs) for validation, querying, |
| markup rendering, and more.</p> |
| </div> |
| <div class="column"> |
| <img src="https://grails.apache.org/images/idesupport.png" alt="IDE Support" loading="lazy"> |
| <h3>IDE Support</h3> |
| <p>Developers can access support at any time via IDEs and text editors, such as Intellij IDEA, Eclipse, |
| Sublime, and Textmate.</p> |
| </div> |
| </div> |
| </div> |
| </article> |
| <article class="training"> |
| <div class="content"> |
| <div class="two-columns"> |
| <div class="column"> |
| <div class="event"> |
| <img src="https://grails.apache.org/images/confs/communityovercode.png" alt="Community over Code" loading="lazy"> |
| <h3> |
| <a href="https://communityovercode.org">Community over Code</a> |
| </h3> |
| <span class="location">Glasgow, United Kingdom</span> |
| <span class="dates">October 11 - 14, 2026</span> |
| <p>Community over Code features a dedicated Groovy & Grails track.</p> |
| </div> |
| </div> |
| </div> |
| </div> |
| </article> |
| <article class="testimonials"> |
| <div class="content"> |
| <h2>They all use the Apache Grails Framework</h2> |
| <img src="https://grails.apache.org/images/testimoniallogos.png" alt="Companies using Grails" loading="lazy"> |
| </div> |
| </article> </article> |
| <footer> |
| <div class='content'> |
| <div class='apache-grails'> |
| <p>Apache Grails is supported by the Apache Software Foundation and the Grails community.</p> |
| <a href='https://apache.org'><img src='https://www.apache.org/img/asf_logo.png' width='200px' alt='Apache Software Foundation'/></a> |
| <p>Apache, Apache Grails, Grails, Groovy, and the ASF logo are either registered trademarks or trademarks of The Apache Software Foundation.</p> |
| </div> |
| <nav class='social-media-nav'> |
| <ul> |
| <li><a href='mailto:dev@grails.apache.org'><img src='https://grails.apache.org/images/email.svg' alt='Email Icon'/></a></li> |
| <li><a href='https://slack.grails.org'><img src='https://grails.apache.org/images/slack.svg' alt='Slack Icon'/></a></li> |
| <li><a href='https://www.youtube.com/@GrailsFramework'><img src='https://grails.apache.org/images/youtube.svg' alt='Youtube Icon'/></a></li> |
| <li><a href='https://bsky.app/profile/grails.apache.org'><img src='https://grails.apache.org/images/bsky.svg' alt='Bluesky Icon'/></a></li> |
| <li><a rel="me" href="https://fosstodon.org/@grails"><img src='https://grails.apache.org/images/mastodont.svg' alt='Mastodon Icon'/></a></li> |
| <li><a href='https://www.linkedin.com/showcase/official-grails/'><img src='https://grails.apache.org/images/linkedin.svg' alt='LinkedIn Icon'/></a></li> |
| <li><a href='https://github.com/apache/grails-core'><img src='https://grails.apache.org/images/github.svg' alt='GitHub Icon'/></a></li> |
| <li><a href='https://twitter.com/grailsframework'><img src='https://grails.apache.org/images/x-twitter.svg' alt='Twitter Icon'/></a></li> |
| </ul> |
| </nav> |
| </div> |
| <div class='footer-bottom'> |
| <p>© 2005-2026 the Apache Grails project</p> |
| <p>Grails is Open Source: |
| <a href='https://www.apache.org/licenses/'>License</a>, |
| <a href='https://privacy.apache.org/policies/privacy-policy-public.html'>Privacy Policy</a>, |
| <a href='https://www.apache.org/foundation/sponsorship'>Sponsor Apache</a>, |
| <a href='https://www.apache.org/events/current-event'>Events</a>, |
| <a href='https://www.apache.org/security'>Security</a>, |
| <a href='https://www.apache.org/foundation/thanks.html'>Thanks</a>, |
| <a href='https://grails.apache.org/support-schedule.html'>Support Schedule</a> |
| </p> |
| </div> |
| </footer> |
| |
| </body> |
| </html> |