This document discusses progressive enhancement and how to build progressive user interfaces with Grails. It provides examples of using Grails features like request.xhr and withFormat to vary output for AJAX requests. It also covers techniques like separating markup and behavior, reading and enhancing markup with JavaScript, form enhancements, and test-driven progressive enhancement using Modernizr and yepnope.