 So, build processes are important because when you want to be fast you have to sort of give up the things that are slowing you down. T-shirt. T-shirt. It's a t-shirt slogan. Love it. He says wearing a yeoman t-shirt. Product placement. But you are completely right. Things like minifying your CSS and your JavaScript, optimizing images, like all of that stuff is really laborious if you have to do it manually. So getting in your build process makes total sense because just whenever you do a build of your site it's just done, taken care of. Yeah. This sort of fits into my three tiers of optimization tooling. I should make a pamphlet. I feel like an advert is about to start playing. That's what it feels like right now. It's life advice. Yeah. It's a difference. Okay, so there's sort of a baseline of tools that everybody should be doing these days. Yeah. Like hashtag I hate, you know, data roaming charges. I don't want anyone shipping a thousand images down the line. So the baseline is you should be at least minifying your styles and your JavaScript, optimizing your images, using compression on the server side, using like async scripts, leverage caching. Yep. We redirect. So that's the baseline. Yeah. Then we've got stuff that you and I have been exploring a lot lately, which is sort of get fast and stay fast. Tools like things that will help you inline your critical paths, CSS, so that you can improve first render, things that will help you remove a new CSS. Like a ton of those things, what I'm finding myself doing is I'm using the bill process, like building out custom little things where basically I can still control what the critical path is and the bill process is just helping me manage it. Like I know there are bill pro steps where it's like it'll do everything for you and it's like magic and that scares me because I don't feel like I understand it enough to know whether those tools are doing the right thing or not. So I'm still in like a learning phase, but I'm using the bill process just to make it easier for me to explore. So there's Web Starter Kit, there's also Polymer Starter Kit, which is very similar to Web Starter Kit except it's got extra plugins specific to Polymer like Fulcanize and things like that. But then Yo-Man is basically like you can just go in and it'll ask you what like generator you want to use is what they're called, where you can then just generate any style of project. So if you wanted to use something like Angular or React or whatever new hotness is out there, there's chances are there's a generator that will give you a bill process already for those things. Yeah, exactly. And like one thing I find, so we've got all of the baseline performance optimization is pretty much covered by Web Starter Kit. And if you're like one thing I find a lot of agencies doing is that they'll use Yo-Man to scaffold out their projects and they'll go into Web Starter Kit and they'll take a look and say okay well we're interested in the image optimization parts or the script minification parts, we're just going to steal like 70% of this file and just like drop it into our project and that's perfectly fine. You know, pick and choose what makes sense to you. So the way that I've started doing this now and I know you kind of don't agree with this approach but I- I'm just going to walk out. Yeah, you should. So I have one Gulp file that basically you can do a thing like require directory and then any JavaScript file within that directory it will basically take the Gulp tasks from those each individual files and then you can basically use them as you would like and just one big long Gulp file. And the reason I'm doing that is you can split it out into like styles and scripts and images like each section will deal with its own thing and then I can copy those files into a new project to leave any old ones that I don't want and just change the directories. And it's like a really nice way of getting re-use out of my Gulp files because before when I had big ones everything would just become messy, it'd be hard to maintain or understand like where problems were whereas when I've got them in multiple files everything just sort of becomes much easier to manage and maintain and share. You've been demoted from colleague to desk occupant. Hush. This approach is actually pretty legit. If you're finding that you've got a really, really long Gulp file splitting them out totally makes sense. The reason we haven't done it in some of our boilerplate projects is that for beginners you don't want them to have to think about one other thing and it also gets a little bit trickier to debug if you've got multiple tasks and different files that depend on each other. It's not a whole lot more but it's just another thing you've got to think about. Yeah, like this is where I always get to a weird point of like best practice versus like ease of use. Yeah. And I always tend to go for best practice because like you ever look at any of the native platforms they always just say this is the right way of doing something for this platform or this IDE or library or whatever. There's no like middle ground where you could do something because it's easier. So. Nope. I'm not saying you're wrong but it's totally fair. I remember when we were like a little while ago you gave me a rundown of one of your presentations and it was one of the bits was on build processes and you were like everyone should just use grunt. Actually Gulp is going out, it's the kid on the block, it's kind of cool. Everyone should just use Gulp. Actually there's this new thing that's kind of coming out called broccoli that's also a build process. Then again NPM scripts is also coming so maybe use that. Yep. And in my head I realised this was at the time where I just lent grunt and I was switching over to Gulp because it seemed like that that was getting used a lot and I realised that basically all of the web tooling ecosystem is basically a game of thrones where the minute I fall in love with one it's going to die and be replaced. So there's a bit of me that feels like I should just never get attached to any of my tools because sooner or later by getting attached I'm almost dooming it.