////
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
////

Many modern web frameworks in the Java space are more complicated than needed and don't embrace the Don't Repeat Yourself (DRY) principles.

Dynamic frameworks like Rails and Django helped pave the way to a more modern way of thinking about web applications. Grails builds on these concepts and dramatically reduces the complexity of building web applications on the Java platform. What makes it different, however, is that it does so by building on already established Java technologies like Spring and Hibernate.

Grails is a full stack framework and attempts to solve as many pieces of the web development puzzle through the core technology and its associated plugins. Included out the box are things like:

* link:{gormWebsite}[GORM] - An easy-to-use Object Mapping library with support for  link:{hibernate5Guide}[SQL],  link:{mongodb5Guide}[MongoDB], https://gorm.grails.org/latest/neo4j/manual/[Neo4j] and link:{gormWebsite}[more].
* View technologies for link:theWebLayer.html#gsp[rendering HTML] as well as link:theWebLayer.html#gson[JSON]
* A controller layer built on https://spring.io/projects/spring-boot[Spring Boot]
* A plugin system featuring https://grails.apache.org/plugins.html[hundreds of plugins].
* Flexible profiles to link:commandLine.html#creatingProject[create Web applications, Rest applications, plugins and more].
* An interactive command line environment and build system based on https://gradle.org[Gradle]
* An embedded https://tomcat.apache.org/[Tomcat] container which is configured for on the fly reloading

All of these are made easy to use through the power of the https://groovy-lang.org/[Groovy] language and the extensive use of Domain Specific Languages (DSLs)

This documentation will take you through getting started with Grails and building web applications with the Grails framework.

In addition to this documentation, there are https://guides.grails.org[comprehensive guides] that walk you through various aspects of the technology.

Finally, Grails is far more than just a web framework and is made up of various sub-projects. The following table summarizes some other key projects in the eco-system with links to documentation.

.Grails Ecosystem Projects
|===
|Project            | Description

| link:{hibernate5Guide}[GORM for Hibernate]
|An Object Mapping implementation for SQL databases

| link:{mongodb5Guide}[GORM for MongoDB]
|An Object Mapping implementation for the MongoDB Document Database

| https://gorm.grails.org/latest/neo4j/manual/[GORM for Neo4j]
|An Object Mapping implementation for Neo4j Graph Database

|link:theWebLayer.html#gsp[Groovy Server Pages]
|A View technology for rendering HTML and other markup on the server

|link:theWebLayer.html#gson[JSON Views]
|A View technology for rendering JSON on the server side

|link:async.html#asyncGorm[Async Framework]
|Asynchronous programming abstraction with support for RxJava, GPars and more


|===

