Grails は、バージョン 2.0 以降、標準で jQuery サポートを取り込んでいる。また、プラグイン等で OpenRico、Prototype、Yahoo! UI libraryといった Ajax ライブラリをサポートしている。AjaxコードとHTMLを生成する既存のタグライブラリを利用できる。また、自前のタグライブラリを生成するのも容易である。
Grails は GSP (Groovy Server Pages) と JSP をサポートしている。基本的には GSP を使用する。以下のコード例は GSP で書かれたビューであり、上記のコントローラが用意したモデル内の本のリストを表示する。<!doctype html><html>  <head>    <title>Our books</title>  </head>  <body>    <ul>      <g:each in="${books}">        <li>${it.title} (${it.author.name})</li>      </g:each>    </ul>  </body></html>デフォルトのファイル名の命名規則は grails-app/views/コントローラ名/アクション名.gsp であり、このビューはGrailsプロジェクトの grails-app/views/book/list.gsp として保存する。この位置に保存することで BookController と list アクションにマッピングされる。また、この位置に置くだけで Grails がこれをビューとして認識する。GSP では ${} の部分で変数やメソッドを利用できる。標準設定はエスケープされずにそのまま出力されるが、grails-app/conf/Config.groovy の grails.views.default.codec を html にすると、HTMLエスケープして出力される。
Grails はWebページの振る舞いを実装するのにコントローラを使う。以下のコードはコントローラの例である。 class BookController {    def list() {       [ books: Book.findAll() ]    } }1つのコントローラは複数のアクションを持ち、上のコントローラには list アクションがあり、データベース内の全ての本を含むモデルを返す。戻り値として 連想配列内で books を返しているが、これはビューから参照できる。上記例はビューのファイル名が無指定なので、grails-app/views/book/list.gsp になる。このコントローラを生成するには、grails create-controller book コマンドを使う。grails-app/controllers ディレクトリにクラスが作成される。コントローラクラスは作成するだけで Grails に認識される。list アクションは http://ドメイン名/myapp/book/list にマッピングされる。コントローラで XML や JSON などを返したいときは以下のように行える。 import grails.converters.* class BookController {    def json() {       render Book.list() as JSON    } }
Grails は、MVCパラダイムにしたがって設計されている。ここでは、コントローラとビューについて解説する。モデル(ドメインクラス)については後述する。Grails のアプリケーションは、以下のような grails コマンドによって作成される。grails create-app myappこのコマンドによって、myapp ディレクトリ配下にGrailsアプリケーションに必要なディレクトリ構造やライブラリ等の雛形が生成される。
Grails はいくつかのクラス上で Mixin 経由の動的メソッドを用意している。Grails では Mixin はメソッドである。Mixin はクラスに動的に追加される機能であり、あたかもその機能がプログラム上でコンパイルされたかのように利用できる。この動的メソッドは、クラスを拡張したりインタフェースを実装したりすることなく、操作を実行できるようにする。Grails では、クラスの種類に基づいて動的メソッドを提供する。例えば、ドメインクラスはセーブ/削除/検索などの永続性操作を自動化するメソッドを持っている。
従来のJavaによるWebツールキットでは、開発環境の整備は開発者が行わなければいけなかった。Grails は完全な開発環境を備えており、Webサーバ（Apache Tomcat）やデータベース（H2 Database）なども含んでいて、即座に使用することができる。全ての必要なライブラリはディストリビューションに含まれており、JavaのWeb環境も自動的に用意する。grails run-app で内蔵サーバーを起動できるが、この場合は、開発モードになり、ソースコードの変更は自動的にリロードされ、適用される。開発モードの場合、初期設定は、H2 Database のオンメモリデータベースとなっている。本番環境向けは、grails war で war ファイルにまとめ、Apache Tomcat などに配備することができる。
こういった問題の最も簡単な解決策は、育児を他に代行してもらい、負担を軽減させることである。一時的にせよストレス因から離れることで精神的に回復し、事態を冷静に見詰めなおして打開策が開けることも期待される。例えば配偶者が積極的に育児をサポートするとか、祖父母との共同生活をするとかである。ただ関係者間でそういった解決策が図りにくい場合もあり、あるいは経済的ないし社会的な状況がそれを許さないなど複雑な事情が絡むケースもある。その場合において児童相談所などは適切なアドバイスと助力を行っているほか、産婦人科や小児科なども間接的に適切なアドバイスが行える場合もある。このほか、地域コミュニティや保育園・幼稚園の父母間やPTAなどの場にも相互扶助が可能なケースもあり、例えば相互に子供を預けあったり、あるいは同じ世代の子を持つ親同士で会話（または雑談）などの形で、ストレスを発散できる可能性もある。また育児に関しては、命に関わるような大怪我をさせたなどということでもない限りは、常識的範疇では取り返しの付かないような大失敗というのも余り存在せず、育児馴れした者の育て方を見ると大雑把この上ないことからも判るとおり、あまりに神経質に与えられた情報に忠実になる必要も無いなどの事情も見え隠れしている。こと晩婚化に関連する「初めての挫折」の問題では、最初のうちこそ思い通りにならなかった部分も、次第に慣れて上手に行くようになるなどの傾向もあり、「決まりごとに神経質になり過ぎないように」などの助言も育児書上などに見られる。