 Hi there, I'm Sam Dutton, and I have a question for you. Are you still doing builds by hand? If so, let me show you an easier way. Modern web development involves quite a few tasks, running servers, optimizing images, and processing source code. Now, these are the kinds of manual tasks that you can automate with Gulp, Grunt, Make, or other build tools. The world of build tools is constantly changing, but we chose Gulp here for its relative longevity and its relative simplicity. Simply put, Gulp reads a file called the Gulp file to tell it what to do. It then processes your source files, transforms them, and writes the results to a build directory. This is a sample Gulp file.js file. It's written in JavaScript with a couple of Node.js extensions for loading other files. The require statements at the top load the core Gulp commands and the Gulp interface to Uglify. These are known as Gulp plugins. And by the way, Uglify is a program to compress and minify JavaScript. Now, Gulp files are divided into a series of tasks. A task might run a server, minify some code, or even delete files. Each task should be one self-contained action. We define a task named Uglify.js and write some JavaScript to implement it. The Gulp.source task reads all the .js files from source.js. We then pass all those files into the Uglify tool using the pipe command. Now, the output of each command is ready to pipe into the next. So we use the Gulp.desk command to write the result into new files under dist.js. Now, formerly, Gulp is a cross-platform streaming task runner that lets developers automate many development tasks. At a high level, Gulp reads files as streams and pipes the streams to different tasks. These tasks are code-based and use plugins. The tasks modify the files, building source files into production files. To get an idea of what Gulp can do, check the list of Gulp recipes on GitHub. Gulp is a node package, and the plugins that it uses are also node packages. So you need to install node.js first. This also installs the node package manager. And you should also enable Gulp from the command line. And to do this, install the Gulp CLI package. You can then go into your project or create a new one and have NPM install the Gulp plugins you need into your project. Write your Gulp file.js, and you can begin using Gulp from the command line. Here's an example of creating a project and installing Gulp plugins. The first line creates a new NPM project. This generates a package.json file that lists your project's plugins. The following commands install various example plugins, including Gulp itself. The save dev flag updates the package.json file with the corresponding plugin. The plugins are installed in a node modules directory. With this method, you can easily reinstall all plugins and their dependencies later by using the package.json file, rather than reinstalling each plugin individually. Now note that plugins A, B, and C are imaginary. We're just using those names to show how plugins work. Once the plugins are installed, they need to be loaded into the Gulp file using require. Now you're ready to define tasks. This task is named taskABC. It takes file from the some sources files path and pipes them through functions from each of the plugins, which modify the files. The processed files are passed to gulp.desk, which writes the files to some destination path. The task we just defined can be run from the command line by typing gulp space and the task name. In this case, it's gulp space taskABC. Here's a set of links for learning more about gulp. We've also built a codelab that takes you through common tasks. Follow the link to get to the lab. Now, don't worry if you've missed any details. Just look at the gulp documentation and our codelab to find out more. We supply gulp files with our codelabs, so you'll be all set. For now, let's get back to writing PWAs. And I'll see you soon.