Most builds start out simple and end up complex. Gradle is designed to handle this complexity naturally through its easy-to-use plugin API. More than just a way to script together a few custom scripts, Gradle plugins have the ability to alter the domain model of the build tool itself, letting you express your complex build requirements in simple and elegant extensions to Gradle's DSL. In the course, you'll see Tim create a plugin to help build Asciidoctor presentations, starting from boilerplate build and ending up with a fully customized, published plugin consumed from the plugin portal. The course materials are available at: https://github.com/tlberglund/asciidoctor-presentation.