 around the base by the number of, like, visits, you know, free visits, walking out for two days, three days, whatever the case may be. Any, you know, any recommendations on anything beyond, you know, some, you know, those plugins are free, which is what we're doing, right? No. I've written about 100 free plugins. I do it because I enjoy writing code. And most of them aren't things I would even want to deal with the effort of selling. But his question was, in a general sense, you know, in his own website he's got, you know, the firewall plug-in, a limit log-ins, things like that. And is there anything he's missing, or is it, is that covering it? First off, your host should be making sure the underlying server is up to date, because that's, most of those big vulnerabilities that have been in the news have all been at that level, like Heartbleed, and then the spectrum, and whatever the specter and something else melt down. Those are all server level things, which, again, I'm not a sysadmin, I'm not even pretending to know how that works. But those are things that you, running a site, couldn't really do anything about it anyway. That's at the server level. The plug-ins, if you're working with a managed host, they're gonna take care of that for you. And not in the updates, but usually they will have those security tools embedded in the site to where you're not even doing anything, and they're just handling it. And most of the hosts, they all have a different way to do it. There's not one right, wrong, this, that, and the other. But more importantly is, yeah, it's keeping yourself up to dates, keeping an eye on it. Sometimes just visually looking at your site again, both in the front and back end, you're gonna find where those things happen. Be it a security thing, or be it just like, maybe there was an update and it changed a div tag, and now something's off to the side. I run into the habit of I forget to actually look at what I built. Like, I'll build something, and I'll look at it and everything works, and I'll forget about it. So just kind of almost trying to look at your site as a regular viewer, again. You can kind of catch some of those things that maybe you wouldn't see, or you can run into, you know, if you're logged in, you're gonna get different stuff that shows up. So try it logged out on a different browser, just to see what's happening for your average user. And from there, you'll, you know, you should find any other little cracks. But again, if you're running firewall and logins and I'm a good host, there's not much else. Oh yeah, yeah, like those things are all automated. Like, and again, like this isn't a security thing. There's people that know way a lot more about that than I do. But most of that stuff's automated anyway. They're just looking for, you know, people are just looking for vulnerabilities on sites. So yeah, this is a matter of keeping an eye on things and keeping things up to date. Three security plugins is not better than one. Just like three SEO plugins isn't better than one. Usually it's just gonna counter-dict itself and they won't work. So yeah, if you've got it working and you've got a minimal and they're not creating big, you know, performance issues because that's the biggest thing you'll run into with security plugins or performance issues. Because they're doing so much work that they can slow down the site if they're not built properly. So that's why I'm saying go look at it like a regular person because you might notice things are running differently because you're not logged in. So who else has a question? No, I put them on hosts that do that for me. And the reason being is, you know, there used to be and it was, I don't remember which plugin I used to use. I think they may have changed names. But I try to go as minimal on that end as possible because I don't really fully know how some of those things work. In the sense like I've not audited WorkFence or any of those big security plugins because they do so many things. In general, when I look for plugins, be it for security or any other reason, I try to find plugins, if I haven't already built it is it does one thing. It does the one thing I want it to do and only the one thing I want it to do because the chances of it interacting with other plugins wrong reduces greatly. The chance of it breaking in general with changes to WordPress go away. Like I've got plugins that I wrote five years ago that work just fine. I've not updated a single line of code because they do one thing. And that one thing hasn't changed in core. So, you know, I tend to, like the number of plugins is irrelevant. One bad plugin is worse than 100 well-written ones. And for, again, like the security stuff, like a lot of that is you hear about it all the time. So it seems like it's a huge deal. But for most site owners, as long as they've done the initial stuff at the beginning, there's not, you know, like you wouldn't, neither of us would be able to actually recognize a security attack if it were happening, you know, in real time. But the people on the hosting level do. So that's why, you know, especially with a lot of the managed hosts now, they're doing that because that's like, that's a full-time job for somebody is to monitor security threats and make sure those weird, you know, libraries nestled into the bottom of Linux are updated. Like that's a full-time job. And that's why hosts have paid those people. So I let them do it. You know, I try to focus on what I'm good at and then let professionals do the things that I'm not and doing things like, you know, like securing a server and all that. But from a list of plugins, like, yeah, limit login attempts, that one's always good just because that stops a lot of the, just the throttling hits on your WP login. I don't really run anything else other than that. But I'm always, I'm inside of my site every, all my sites 10 times a day. So if anything, and most of them are on hosts that I have access to, so I can see everything happening, which is not everybody. So, but again, same thing, just keep an eye on it. You know, visually looking at it will do a lot more because you know what it's supposed to look like because it's your site. So if anything's out of place, you're gonna know before anybody else because you know where it's supposed to be. And a lot of times that, you know, if you see just one thing off that wasn't off before, that's usually a sign that other things have been changed and may not be the way that you wanted it. So, and the only other thing I would do is if you're running any of those security plugins, which again, most of them are fine. Don't just go check every box. Like, who here used W3 cache? I won't say continues to use because you shouldn't. But the, it used to be you could check all these boxes, but there was really nothing about it that said what they did. And it let you turn on two different types of caching at the same time that were completely against each other. Like you couldn't, you can't use both object caching and the database caching the way they had it set up. But it let you pick both of them. So all it would do was make your site slower. And it wouldn't even like prompt you saying, hey, you've turned this thing on. So a lot of times when you get all these settings in a plugin, you're like, oh yeah, that looks good. Yeah, I totally want a page. Yeah, I want this, I want that, but you may not. And so look at what the plugin is trying to do. Make sure you go through any plugin you ever install. Go to the settings page, make sure every single setting is what you do or don't want. Because a lot of times, everything that I've built, usually I have it load a set of default values at install. So that way, if you don't go to the settings page, it works. And it's not finding like index values that are missing or things like that. So just be mindful of what you're using. And periodically, especially with those bigger plugins, go back to the settings. Like how many people here have had to update their Facebook privacy settings at least five times? That'd be everybody. Because they keep adding new things that they opt you in or out of automatically. Same thing with some of those big plugins. Like they add features, they add, they change the way certain existing features work. So kind of periodically just pop back in and look. Like all right, is it still configured the way that I want it to be configured? Is there a notice telling me I need to go authorize something or connect something to something else? Like especially with analytics and stuff. Sometimes if Google's notorious for changing their APIs and never telling anybody about it until they do it. So there was a point I think it was like a year or two ago where essentially I had to go back and reauthorize every single Google Analytics account in every site that I managed. Because Google had changed how the connection between the site and they worked. If I hadn't have looked in those settings, I would have just all of a sudden be like, why are my analytics wrong? Nothing prompted me to say hey, Google changed something, you should do this. I just happened to go look and that's why I saw it. So like periodically go through and just kind of look at the settings again, make sure that it's still doing what you want, that it's still there, that you haven't forgotten about it and realized like you don't need it anymore. Like you can probably go get rid of most of the social, social sharing plugins that you have in your site. Like LinkedIn got rid of the share account and nobody noticed. You go look at them, they don't give share account anymore. Nobody, nobody even noticed. I mean it's LinkedIn but still. So yeah, those kind of things. I just kind of keep an eye on what you're running and you'll see stuff that you can get rid of, you can see stuff that you can change. It may be like, okay, this plugin does nine things and you only want one. Find a plugin that just does the one. It's gonna be lighter, it's gonna be easier to use, it's not gonna get in your way and it's just gonna run to a lot less issue, chance of issues because of it. Congratulations. I just want to hear your take on it but it looks like it's pitched to novice users. So I mean there's talks, I mean I think there's a track on Gutenberg and it's been evolving so much that depending on when you, like you seeing it for the first time is probably better than most of us here because we've watched it evolve and changed so much that I'm not even sure, like I have screenshots that I know that I've looked at and I don't even know if they're valid anymore which is fine because this is the development phase where that stuff should be changing. Some people look at Gutenberg as a page builder. Some people look at it as like a whole new UI. Some people kinda look at it in between and I think the, for most things that I've seen, once it's actually done, well and I say done as in release, it'll always be iterated on, you're gonna start to see how people use it and that I think will dictate a lot of the further development on it and where it goes. Yeah, it's a totally different UI. For long time WordPress users it's gonna be incredibly jarring. It's gonna seem wrong at first just because it's such a departure from what we're used to. I'll say in the beginning of it, I was in no way, I thought it was a waste of time in the very beginning. I was like there's nothing wrong with the iter we have. We have plenty of other things we can work on. That's not how open source works. Furthermore, the people that were working on Gutenberg, it's not like they didn't work on some other thing that I think is more important. They wanted to work on that, so they did. I think it's gonna be a long-term good change because the iter that we have now is like 10 years old. I don't use any other software that's 10 years old other than that, and maybe it's some banking software that they haven't updated. So as much as I wish certain things didn't change because I'm comfortable with it, if the current experience I feel, if it doesn't evolve with the rest of the web, WordPress won't go away, but it won't be what people want it to be anymore. And you'll start to see that sort of drop off where like, yeah, okay, yeah, it's WordPress, but it'd be really cool if I could do this, and then they end up going to places like Medium or whatever other platforms that are out there. So most people don't use editors like we do. So for most people, I think, again, once it's done, and it's solid enough that things aren't gonna drastically change from appearance and functionality-wise, I think it'll be a long-term good thing. It's gonna be rough. I think it's gonna be a rough transition for a lot of people, both from the people that have had a site and maybe have a developer that they call every now and then if they have a problem, all of a sudden everything's gonna look really different one day. I'm sure that I will get contacted from old clients saying that their sites are broken, and I'll deal with it. But yeah, I think it's gonna be a little bit of a rough transition, but I think when it's done, that actual transition part, I think it's gonna be worth it because some of the things that people are building off of that are things that would take me, like some of those blocks that people, you see people mentioning that oh, I did do it to this, do it to that, like it used to take me days to develop the functionality so users could do that stuff, whereas now it would be a button that they hit and they're like yeah, there's my picture, there's my map, there's my call to action, like all of those things that you can do with blocks used to be all custom code, which meant no two sites ever did it the same, heck, no two sites that I built did it the same. And that now in turn becomes something that I have to manage and keep up on and could break, whereas the Gutenberg stuff should be, and once they've kind of nailed it down, should allow being able to introduce new features to things that would show up in the content, because really what Gutenberg is, is it's redefining what we think is content. For most of us, content's the words in the middle, and then we have a sidebar and some other, you know, this, that and the other. Now it's the whole page is really the content, depending on how you build your site and what you're trying to say, it could be any number of things, but yeah, maybe you got a map, maybe you got these things, you know, all of those things can be built into Gutenberg, so the user just thinks everything works together. So I also read that initially it was being developed with kind of a react and a template in mind, and now you've created your own library to do that? I don't know which one they've decided, and there's probably somebody here that would know better. Initially there was some questions in licensing with React because of Facebook. They had a weird license on it that said that it was open source, but we can still do whatever we want and change, like it was a very odd license, and again, I'm not even an attorney, but it looked weird to me. They blinked. Facebook changed the license, which is why we can use it without any risk of them pulling something. A lot of the stuff built, so there's still a lot of React in there, but yeah, a lot of the stuff we're building is on top of it for WordPress is being built, you know, to match WordPress, so yeah, it's still written in React, which I know very little. I've tried, I still can't wrap my head around the idea of throwing CSS and JavaScript, I mean, CSS and HTML inside of JavaScript files, it just seems wrong, I know, but React's not going anywhere. Like I'm learning it because it finally, I'm like, all right, yeah, this isn't a fad, this isn't gonna be gone in a year, this isn't gonna be Angular 1 or whatever it was, or other languages or libraries that were huge and now nobody talks about, so I mean, it's worth learning, obviously, but I think, again, for the end user, they're not gonna have, they're not gonna know React. You know, like your average Facebook user doesn't know that they're using React, they know that they're using Facebook. It's gonna be the same idea, like they're not gonna be aware, they don't have to, they're users, that's why we do what we do is so they can just use it. So I think, again, like once it's polished and they kinda work through some of the things, like meta boxes are still a thing that they're working through some of the edge cases on, making sure plugins that already exist work with it, like I know I'm gonna have to take a week or two and kinda run through some of my bigger plugins and make sure everything's still showing up where it should, but, you know, otherwise, yeah, it's, I mean, again, I think next, I'd say maybe like two, three years from now, the conversation would be like, what else can we do with Gutenberg? Not, why do we need it? Like I think that's gonna happen. With Gutenberg? He's asking, is there anything that, available out there that lets you just kinda play with it? First off, yeah, you can download the plugin, automatically right now, if you wanted to. There's also Tom, what's his last name? Begins with an N. I can't remember, but he built a, essentially a front end testing for Gutenberg that you can just go and mess with, without logging in, without downloading anything. And I can't remember the name of the site right now. I'll, frontenberg, yeah, thank you. Thank you, Eder. So that'll let you go in and play with it now. And as the updates are done and the development's being worked on, that gets updated, so you can see changes as well. And that's actually a great first way, if you haven't really messed with it, is go to that site, because you don't have to do anything other than mess with it. You don't have to install anything, you don't have to configure anything, you just go. So I would definitely, I would go that route and just kinda, again, get familiar with it. Like I wouldn't get too worried about like the minor details of where buttons are, or fonts and color, you know, like all that's gonna be ironed out. I would just kinda get used to the feel of where and how things move and get put together. Okay. We're seeing some developer from another country to kind of go in, tweak, I don't know what he was doing exactly. And he optimizes site despite the fact that I have been overbundance of plugins. Okay, first one, we'll get to your second one after. His question was, is there like a number of plugins that is the right number? And the answer is no. There's not a number, there's not a minimum or a maximum. I've had sites running two plugins, I've had sites running 78 plugins. The site that was running 78 plugins had a page load time of 1.1 second. It's not the number, it's how well they're written. And that's why, again, like I said earlier, like looking for plugins, I do one thing. It's very easy to write clean, concise code to do one thing. The moment you start adding other functionality to that plugin, it becomes muddled because now you have to check for things. Like the first big plugin I ever wrote was for FAQs. And it was like right when Custom Post Types came out and I think it was like, I don't know, there's like 50,000 or 100,000 people using it. And I wrote it six years ago, so the code isn't great. But people would ask for, it was the first one that ever got any traction. And people would ask for this feature. I'm like, yeah, absolutely, I would just code all this stuff in because I was all excited about it. And now I have to support a plugin with all these features that maybe 1% of people use. I actually have a huge update to it that I haven't pushed because I'm afraid I'm gonna break people's sites. So again, the number, now I just look at what you're running and look if you're actually using what you've installed. Because again, like if it does nine things and you're using one, there's probably a plugin that just does the one. And most of the plugin, a bunch of ones that I've built will do the conversion of stuff from other plugins. I built one that does, somebody wrote a blog post once called minimum viable meta tags. And it was like the bare number of tags you had to have so that like Facebook and Twitter and all that would like pick up the title and the picture and all that. So I made a plugin that did that because it's the smallest possible it can be. And I had it where it'll convert from Yoast and all in one and all that. So things like that, yeah, I wasn't using any of the other SEO tools in the SEO plugin. I literally just wanted meta tags. So I just installed something that did meta tags and I didn't even bother with the rest of this. Yeah, cause I didn't, it was from my outside. I could care less about SEO. So I'll never beat nor cross Georgia in Google. I've learned. So it's not even worth it for me. But yeah, I find it, Doug doing the one thing I want and then you can end up stacking on top of that and it doesn't become as much of an issue because not only is it only doing the one thing, it's not touching other plugins. It's kind of siloing itself. And you'll, yeah, one bad plugin can totally ruin your performance. Like if anyone's using broken link checker, turn it off like as soon as we're done. Because that plugin is throttling and trashing your site more than you could possibly imagine because it's constantly checking every single piece of content you have with multiple regex passes to try to find a link that doesn't work. Turn it on when you want to use it and check and turn it right back off. Like certain hosts won't even let you keep that plugin on anymore because that's how non-performant it is. So things like that, just keep an eye on what's running. There's some tools you can actually do performance testing with both online and some plugins like the query monitor, which is a plugin that I use on when I'm developing stuff that in the toolbar it'll give you load time and how many hooks are running. You can find duplicate queries that way. It's all a query monitor. John Blackburn wrote it, it's a great plugin. And then another thing that's also fun is I wrote a plugin called Airplane Mode, which does exactly what it sounds like. It turns off any external call. And I built it because I was on a plane home from Portland and it kept trying to load the Google font that used to be in the admin, which would then error out every 30 seconds because I was on a plane with no Wi-Fi and I couldn't turn it off. So I was pissed off on an airplane, so I wrote a plugin and now it's huge, but by activating that I can, if I turn that back on I can see the performance difference. I can start looking, okay, what external calls are slowing down my site? You know, if you have like, for example, remember that little Facebook, like here's all my friends that you put in your sidebar? Every single photo of someone was making a separate HTTP call. Also then a call for your information and then, so depending on how many little squares of people you had it could be making anywhere from 15 to 35 HTTP calls for a stupid little sidebar widget that nobody cared about. So things like that, we're like, try to look at the individual pieces that are running and that's where you'll probably find what's wrong. And then, yeah, second question. Yeah, I mean, most of my stuff I'll put in GitHub and I know just enough about Git to where it works, but if it breaks I have to Google or ask somebody and but I'll keep it in there. I try to push them, yeah, I push stuff either public in GitHub. Some stuff I don't put in the repo because it's like developer focused or just something that regular users don't need and it's in GitHub so like developer knows how to find it, I'm not gonna get support questions from a developer the same way that I would with a user. So like, I used to use Wamp and then Mamp and now I run Vagrant, which there's local, they're here, there's desktop, the other handful of ones, so find the one that you're comfortable with because some of them allow you to change PHP versions really fast so like if you're working on different stuff you might need to test five, four, then five, six, then seven, I don't because I'm putting stuff on a host that I know is gonna be one version. And usually I just kinda keep stuff lean on my own computers, but if you have a local environment that you're comfortable with, use it. If you have a editor that you're comfortable with, use it. Like I don't use a full IDE, I hate them. I personally, they're just way too complicated and they get in the way of me doing my job. Other people could not do their job without them and that's fine. It's more important to use what you're comfortable with than trying to use what people say this is the right thing because all it'll do is make you slower. So I'll use Grunt because that was the first one I learned and I don't use any of those enough to bother having to relearn whatever, I think there's gulp and I don't even know what there are anymore. But I don't really have a boilerplate so much as, like there's certain stuff, I'll just go and grab from stuff that I've written because I've saved almost every bit of code I've ever written. And so I'll remember, oh okay, I wrote that functionality for that one site. I'll go take it, kind of pull it out and then look at it, clean it up, try to general purpose it. A lot of times, now mind you, I work for, I never introduced myself. I'm Andrew Norcross, I work for Liquid Web. I used to run Reactive Studios as a client service and product company. So a lot of times there'd be things where we'd be working on a larger client project and certain functionality, like this is useful. And we would write that separately, write it as a plugin and put it on their site but then we can now use that across, I'd be like once is an edge case, twice is starting and then three times is you'd better get used to it. And that's where I'll do with that and I'll just kind of piece together what I need as I'm doing it. I think there's a big difference between developers that were self-taught and ones that actually had a structured education because there's a lot of things I do that I don't know, I just do that because that's what I've always done. And I still to this day, I've been doing this for almost 12 years now, I get corrected by people that have been doing this much less than I have and they're absolutely right. It's like I'm used to doing things the way that I do them and sometimes I don't pay attention to the fact that other things change. That's, again, the whole thing with WordPress Backwards Compatibility means I don't necessarily have to get better as a developer for a while. I don't recommend doing that but you can get away with it in the sense that something's not gonna break every three months because we're doing these huge overhauls. So after that, not really, I mean, I just got, most of the projects that we would do were so one-off and unique that there'd be a little bit of stuff that I could share between but the scope was such that we couldn't really wholesale reuse stuff. So I use Grunt, SAS, again, that was one that made sense to me because it still had brackets. I've used Composer and stuff that already had Composer. I don't myself set up Composer for that stuff just because usually in my head it's overkill but if you're building something that's gonna get released publicly, it's probably worth looking at pulling in the unit testing suite and all that stuff you can do with Composer. I know there are other ones but Composer's the only one that I've seen enough people using that I know I can ask somebody when I don't understand it. Yeah, so he was asking if you wanna do your own performance testing. The easiest way is if you can't, usually you can't do it on a production site because it's live and people are doing things on it. So the host that you're on should provide you with the ability to spin up a staging site that is mirrored of your live site in importantly the same environment. So it's got the same caching, it's got the same PHP versions, the same all the things. And then, because you can destroy it, you can just thrash a staging site to figure something out and just delete it and move on. So I mentioned the query monitor will show you a lot of the query times. That's the first thing I look at is I will look at individual pages on the site that I know are important. It's like the homepage, if there's a contact page, if there's any galleries or any, especially e-commerce, if there's any checkouts and all that, I'll actually just walk through like I'm a normal person. And it shows me the admin bar, it'll show you the query time. So you can start to see, okay, there's 19 queries on this page. Why? Now they may be valid. But by doing that, you can start to dig down and see, okay, what's happening page to page. Your biggest performance set is going to be advertising. Like I get that the internet runs on ads, but I absolutely hate advertising because they slow down sites to the point where, like I've had, I remember once I actually, I was so upset with a client because they, they kept saying that you're making my site slow. And I was like, no, all these ad networks are making your site slow. And I bet him, we fired the client afterwards, he was kind of an asshole, but I bet him. I'm like, I will bet you a dollar that everything that you're complaining about is your ad networks. And so I made a copy of the site and I made it identical, except for removing the ads. And it dropped nine seconds off their load time. I won my dollar. And, you know, so sometimes it's like, yeah, you got to dig through, just start, you know, it seems very rudimentary, but yeah, you know, deactivate, turn it back on. See, one of the biggest things, people write plugins that are only intended to work in the admin and still load their assets on the front end. That's going to be a performance set because you're loading CSS and possibly JavaScript files that you're never going to use on the front because it's only for an admin. And furthermore, it should only be on one page in the admin for whatever that plugin is, but instead they load it everywhere. So like in query monitor, you can see every action that gets fired. So the save posts, the, you know, whatever it is, like all of the ones that get, all the hooks that get fired on the front end, it will show you every single one. So you can start to see, wait, why is the admin, you know, save plugins made for the admin? Why is this loading here on every page? Like why is the CSS for a settings page in the admin loading on the front end? And that's just usually just a careless developer and start to look for those things and just kind of drill down to like, what's the bare minimum of the site to work and then use that as your baseline? Because sometimes it's a host. Sometimes just the host sucks. Sometimes it's the, it's one plugin. You know, I've had plenty of sites where there's literally one plugin that is creating every single problem on the site. Get rid of the one plugin and your problem solved. So just kind of work backwards with what's there. Sometimes we'll like, I'll switch out a theme. Like, okay, is this the theme code that's the problem? But again, if you do it all on a staging site, you're not going to mess with production and you're not gonna upset anybody that's happened to visit your site. So yeah, I've got at least, for any site that I have to manage, I have at least one local, a staging, a test and production. So like, I'll build it local. I'll throw it on staging to make sure nothing blows up immediately. Then I'll push it to test to make sure that it's working with everything else and then the client or whoever the stakeholders can go look at it and then I'll push it to production. So I do all my stuff at the staging and local. So by the time it gets to anybody else looking at it, the performance stuff's been looked at. Or you can say, oh, okay, as soon as I went from staging to test, my performance dropped, what's different? Because usually there's something different. So it's turning on logging, it's turning on, sometimes going into the hosting panel, depending on what the panel is and looking. Am I running the right versions of things? Like am I still running an old version of PHP because I just forgot? Like I found a site the other day that I had on 5.2, I know. Because I looked at it in four years and that was the default when it was installed and I just never bothered to look. So I switched to seven and lo and behold, the site is a lot faster. So especially if anything you can upgrade to PHP 7 and above do it, that's gonna give you an immediate performance boost right off the bat, assuming that none of your code is written in such a way that it'll error. So like spin up a staging, change the PHP version, make sure everything still works, turn on the logging so that if there are like those silent errors that don't actually, you know like white screen it, but they're still like a missing index or this one setting isn't there. Like I mentioned earlier about going to the settings page, sometimes if they don't set settings but the plugin will still look for them, it'll error quietly because it's looking for a value that doesn't exist or a variable. So look for those kind of things. Like turn on the WP debug and I usually, I will turn on WP debug on, debug logging on, display off. So that way I can still actually look at what I'm working on. But it'll spit out and especially if you're using query monitor it'll show up in red in that bar that here four errors, one warning. And then you can kind of dig through and figure out what's wrong and work backwards from there and that should take care of most of it. I'm gonna ask him and then you. Some of it will be influenced by whatever the client already has. So for some of them they already had their own versioning set up and their own servers, especially when we would start working with more enterprise level clients, they had infrastructure so I would, I try to be as flexible as possible with my own workflow. And because I'm usually working with somebody else and the chance of them having the exact same workflow as I do is not gonna happen. So I try to be as flexible as possible. Like I used to blind text, it's comfortable for me. I use git whether it's in GitHub or GitLab whatever one it's in, I push there. I try to branch properly but sometimes I don't realize that I'm working on two small features at the same time and it's in the same branch. I won't go back to try to recreate all that branching and stuff, I'll just push it live. As far as the actual deployment, again it really depends on what access I have. Sometimes it'll be something like deploy bot or some of the web hooks in GitHub that'll automatically push it. Sometimes I open up and SFTP some sites. Some are SSH'd and it really what access I have because again, as I learned all this stuff when I was younger, I used whatever tool was available and I could figure out first. So I'm sure that some of my workflow is probably not as optimized as it can be but because I know it so well, it's quicker than me switching to something else. And then as far as the actual deployment, at that point it's almost really doesn't matter, it's whatever way I can get it to the server as quick as possible. I just make sure I decouple my versioning from my hosting. I don't do version control where I host the site because if the host goes down, now my version control's gone and I can't get my stuff anymore. So I try to keep at least, one thing's great, Bitbucket gives you unlimited, free unlimited private repositories. So I have a Bitbucket account that is just literally a backup of everything I've done and it just when I'm done, I push one version of it there and I leave it alone. And in the event that I need to go back and get something or something disappears, I have one copy for myself and all of them have ways to deploy and once it really ends up being like what, how quickly can I do it and where does it need to go? Do I need to push it to three different places at once? Then it's okay, I'm going to do something different. Do I just need to basically upload a config file? Like I might just open up my FTP client because I don't want to go through nine steps to move one file. So yeah, I try to just basically is how quickly can I get this done to move on to whatever else I want to do. So I use the, I'll use mostly CLI stuff for that because the database contains so many serialized values that if you need to change anything in it and usually there's like a test domain that goes to a production domain. Now that Google and I'm a Chrome and now Firefox both don't let you load .dev without a certificate. Now all my domains have .test which means there's this different number of letters which means that every single serialized value has to be adjusted to make sure that the index number is reflective of the new value that it contains or breaks. So I'll use the WPCLi for pretty much all of that. There's also a, it's search and replace DB. It's a tool that the interconnect guys over in the UK built. It's incredibly powerful for database stuff. For doing search, replace, for updating, hold all the tables at once kind of thing. I end up using that if I need something more than CLI or if I don't have CLI access. Otherwise it's, again some hosts will give me PHP My Admin which again is probably the worst tool to use but it works. Some of them will give you in their own panel awaited to export the database. Where it runs into issues is where I'm making changes to live sites that already exist. And usually that it just involves coordinating with the client. Like what's gonna change in these two weeks? Is it gonna be new posts? Is it orders? Like on an e-commerce site, I don't touch the database unless I absolutely have to because I don't want to trigger something that messes up historical data. Whereas if it's a blog post, I can recreate a blog post. Like I don't want to recreate six months worth of transactional orders. So it's wherever you can push it and yeah I try to keep, again I always keep whenever I'm gonna change the database, I pull it out, I save a copy and then I edit it and I leave one copy untouched. So in the event that I've made a mistake which has happened, I just immediately push back the original. And then take a setback like all right, what did I mess up? What do I need to fix? And then again, there's a lot of plugins and tools that'll do it. But usually the tools don't, other than the CLI and stuff, they don't show you what it's doing, it just spits out a file when it's done. And that worries me because I don't know how it's creating that database file and I don't know what it's doing to it. So a lot of times on those ones I want to use like the rawest tool possible that will do the littlest to my site other than give me what I want. Yeah, yeah WPCLI, sorry. And again, most of your hosts should now make that available to you if they haven't already. If they don't, you may wanna look at why. And that may be a sign of other things about the host that maybe aren't up to speed. But yeah, the WPCLI for moving databases is my preferred way because it seems to, it's the least likely to mess something else up. I mean I learned WordPress by reading core files because there were no sites, there were no schools, there were no, there may be a tutorial or a forum here and there, but I learned it by reading core. I'd see what happened, I'd break it on purpose and try to fix it. I did that with QBasic when I was eight years old and I do it with PHP and JavaScript now. So in terms of things to look at, I start with what am I trying to accomplish because there's a lot of very well-written plug-ins that have, I don't know what they're doing because I'm not trying to solve that problem. So I don't know why they're doing what they're doing. Because you can make code look really pretty and it can be garbage. And vice versa, there's some code that I've seen that is some of the most brilliant stuff I've ever written and it looks like someone threw up numbers on a page. So, and there are four matters in most of the IDEs and editors where you can hit a button and it'll look pretty again. So that isn't necessarily what I look for is I try to drill down and I'll look at a good thing to do anytime you're writing a function that hooks into core. Go look at the function in core, go look at the action, see what it's actually doing, see what variables get passed because sometimes they might add a third variable, a third optional variable that gets passed through but the codex or whatever only shows the two because it had two of them for five years and now it has a third for two months. So, maybe then go through and that's like half the filters I've found, because of that, because you'll see where it gets filtered through before it gets outputted, which means you can see where to pump in and do what you need to do. But yeah, core, because there's some awesome, well-written code in core and there's some horrible code written in core and you can see both because there's some underlying stuff that's been there basically since the beginning that we can't get rid of because so much else is kind of running on top of it but it's code that was written 15 years ago and like code that was written 15 weeks ago is questionable and if it's still current. So 15, there's code in core older than my son. So, I learn more from things that are done wrong than things that are done right because if it's done right, I don't know why and if it breaks, I'm not gonna know why and I'm not necessarily gonna know how to fix it but show me something that's adequately written and then I can start to piece out the things that make sense to me and the things that are like, oh, maybe I do this differently or, you know, but from there again, I wouldn't look at big complex ones because usually they're interacting with so many other parts of themselves that it's self-referencing all the time. Look for those plugins that do one thing, like actually go pull airplane mode. It's some of the, I had to find everywhere in core that it checks for updates because that's an external call. There's a lot. Took me a year to find them all and actually some people that are here found two or three of them that I still couldn't find after a year. Like one of them pulled me aside at a work camp, he's like, check this out and he was all hyped up on Mountain Dew and it was just this horribly looking code and he's like, there's all your update logic and I went through and I took 10 minutes to make sure my tabs and spacing and everything was like, you know, periods at the end of my comments and all that. The code was just as good before I cleaned it up so, yeah, look for plugins that do one thing because then you can see why that code exists. Whereas if it's something like, say for example, Yoast SEO, I wouldn't even begin to look through that code unless I was debugging something because it does so much. Whereas a plugin that does one or two things, you can easily see cause and effect. And that's really how I learned. Like that's how I started in all of this stuff was I found plugins and things broke them, see what happened, built them again. Do you want to manage? I don't want to manage a server. It's really what it comes down to because I don't do that and nothing ever goes wrong on a server when you have time to work on it. So that's the thing where, like, I don't mind if somebody who knows what they're doing is using some of those AWS configs. I'm not going to because I don't really know what half of those things mean and that's a job that people have that means I don't do what I do now if I want to learn how that works. Because I don't like knowing how things kind of work. If I'm using it, I want to know enough about it that I can fix it. So certain stuff I just don't do because I'm like, I don't have the time to learn everything about this. And especially if it doesn't work, I'm not going to know why. And especially if it's AWS because it's almost half times the black box of where it actually goes. But there are hosts that do that and they've worked out those issues. Like I know Pagely does a lot of stuff on AWS. And like I work for Liquid Web, so it's obviously, I'm not going to say this host is good, bad, and different. But like we're using Kubernetes on the WooCommerce platform, which is a deployment container tool. Like again, all those things are really rad, but we have a team of people who do that for work. I'm one person who doesn't know how that works anyway. So yeah, I get pros for that kind of stuff. So I got to tell me the new WordPress, tell me do the PHP, do any of the different sites? Yeah, so yeah, initially it's one of those things where I want to know enough about something that if I'm paying someone and they tell me something, I know if they're lying to me, basically. So to get familiar, like the PHP and WordPress is such that a lot of the modern like schooling tools are actually not going to be useful because it's going to show you how to do things that you can't do in WordPress due to the PHP or inability to get past five too. So from there, again, I, reading code makes sense to me which I know is weird and not normal and I'm okay with that, but look through Tom McFarland writes a lot of good stuff and he writes tutorials in a way that makes sense to people who are getting started. Like he actually takes the time to explain what some of these things are, like auto loaders and singleton, like certain PHP stuff, he'll explain it in regular English and same with Pippin, Williamson, Pippin's plugins. He's the one that built EDD and a bunch of other things. He's got a whole lot of tutorials. Like I still have two or three of his bookmark for localization because I never remember how to do it. So both of those two sites have a lot of tutorial and kind of walk through on individual parts of development that they're related to WordPress but they're not always exclusively, which is nice. Some of it will bleed more into regular PHP that'll kind of give you more of a basis of what you're working on. So the media uploader by default only allows certain file types for security reasons. So usually it only allows pictures and maybe, I think PDFs are there by default though but I remember I had to modify it to allow bitmap files and SVGs at one point or some other file type that it didn't native or Excel files. It didn't by default let you upload Microsoft Excel files. It's a filter, it's a one line filter and code and it allows it. Later on find me and I'll look at your site because that's a one site thing that I can't, without looking at it, there's no way I can tell you what's wrong. So yeah, we can look at that later. So sorry, is the five minutes for everything? Oh wow, okay cool, we filled the time. So we got about five minutes. Is there anything, any other questions? Yes. Tom McFarlane, Tom McFarlane, his site. And I think both, like Tom's is like tommcfarlane.com or whatever. So, he's a WordPress developer. He's a, you'll find it if you do a basic Google search. He's the only Tom McFarlane and WordPress that I'm aware of. And the other one was Pippin? And Pippin, yeah Pippin Williamson, his site's Pippin's plugins. He's built, you're using code that he's written. We'll put it that way. So, we got one maybe two more? All right, well I had a question that I was gonna ask myself if it never came up, is the idea of ethics. Because we're building things that people use in ways that we may not like. Like I don't like the fact that white supremacists use WordPress to push their bullshit. But I know that I've helped write that code. And however, I won't work with clients or people in general who may or may not agree with. And it's one thing to disagree with someone, it's another thing to like support what they're doing. We're gonna get to a point pretty soon we have to actually figure that out. Because in tech in general we're building tools that people use and we're never thinking about why. As engineers we don't really care about what people do with the tools we build. I've run into that problem. It used to be cool because it's like oh you're using a plugin in a way I never imagined that's really rad. But now it turns into oh cool you're using tools that I wrote to convince people that things aren't true. So it's not a matter of control. And that's the thing that we look at as like an absolute like we can't prevent it so don't bother. It's like by that rule we won't have had any progress on anything ever. So the idea of just like being mindful if you're building something new like yeah WordPress has existed for so long there's no way that we can pull that back and all that. But anything you're working on. Look at it immediately think of how somebody I'll use a phrase here and I there's no kids in the room. There's a phrase called dick proofing. And it basically what it means is that if you run a site that has user generated content or user submitted content you have to prevent someone will send you a picture of a penis every single time. It's yeah I know shake your head because that's the proper response. However there are other people they're like all right. So you essentially have to build something into that tool to make sure that those things don't show up online. Any time people like oh yeah we want to have people submit pictures for a contest I'm like cool who's moderating it they're like oh we're not moderating it I'm like yeah you are. And then I'll show them a site that has unmoderated stuff and they'll be like oh. So we need to be more mindful about what we're building for other people and how it might be like think of the worst case scenario of everything you ever build because someone will find that for you if you don't. But I believe we're out of time. Oh we have one minute. Is there anything else that we want to fill in because I haven't gotten one ridiculous question yet. That the world doesn't owe me anything. Oh we got a couple seconds. There we go. I'm sorry what? At that point it was about petty spite so yes. Absolutely. And I made sure he said I made him mail me a dollar bill in an envelope. I already knew I was going to fire him at that point so. Thank you. If you have anything particular I'll be here. Feel free to ask. Glad to help especially you know we can grab something. We're going to eat lunch. We'll do something you know I'm here all weekend.