DE{CODE}: More Dev. Less Drama
As a developer, nothing kills your passion for the craft like spending hours messing around with stuff “you know should be easier.” Platforms like WP Engine’s come packed with tools and features you can leverage to simplify your life as a developer.
In this session, learn how and what you can offload so you can get back to what you’re passionate about.
Session Slides
Full Text Transcript
ROB STINSON: Hi, everyone. Welcome to this session of DE{CODE}. I hope you’ve been enjoying the event so far. I hope you’ve learned lots. I hope you continue to learn lots. In particular, I hope you learn something interesting things in this session right now. My name is Rob Stinson. I’m doing this session with my very good friend, Mr. Robert Li. We are both Australians. Yes, hi Robert.
ROBERT LI: How are you doing guys?
ROB STINSON: You get two Australians in a session, both called Robert. So how special is that? This is the More Dev, Less Drama session. And this session is all about how you can better leverage features and tools from your managed WordPress hosts. I would like to hope that it is WP Engine. So that you can sort of streamline and improve your workflows. All with the idea that you can spend less time doing the things that you don’t really want to be doing, and more time doing the things that you do enjoy doing, like development and site builds.
And if you’ve been sitting through a few different sessions here at DE{CODE} you’ve probably experienced some delectable sessions. Some beautifully refined content, lovely and focused experiences. Kind of like a fine dining experience. That’s what you’ve been getting in the other DE{CODE} sessions. Now, this session is a little bit different. It’s a little bit more like a sweeping buffet. We have lots and lots and lots of different things to get through. And just like a buffet, there’s going to be some things that you like, oh, I don’t really like that, but I guarantee there are going to be some things that you do like.
So hang around, listen to everything that we’re going to go over. We’re going to be skimming across the surface of a bunch of things, but I’m sure that there will be some gold nuggets scattered amongst it that will really, truly enable you to speed up your personal workflows, your Dev experience, and offload a bunch of the things that consume some of your time to various tools and features of WP Engine, or even various open source tools, so you can spend more time doing the things that you love.
And the things that– I describe these things that we don’t want to do. And we don’t necessarily love doing them. Sometimes we’re not even actually specifically paid to do them. It’s not even really a component of our job, of the work that we do, but it’s just these things that sort of arrive that potentially we didn’t even expect. And it takes up our time.
Some things like this local environment management, or dependency management, client management. The management of all your templates, disaster management, when things go wrong, that can really take up a lot of time. And even like your pipeline management. All of these things throughout the various tools and features that we want to unpack in this session. We want to be able to reduce the time that you have to spend on these.
So the first one that we are going to look at is about your local environment management and many people are familiar with Local which is the local development tool that we have here at WP Engine. It’s beloved widely. I think it’s the most used local environment for WordPress management tool in the market, which is fantastic, but what a lot of people don’t realize is how rich the feature set is. There’s a lot of things that this tool does for us that significantly streamlines our local development experience. I want to go through those.
From the very high level it’s a great out-of-the-box, free, and ready to go tool. Beautiful, friendly UI. Very developer friendly as well. Very easy to spin up the app itself, and then very easy to spit up brand new WordPress sites so you can start building and developing locally.
One of the features that I do love is blueprints and blueprints in Local is basically– it means you don’t have to start from scratch. And your blueprint can be whatever you want it to be. It can be a template website– template WordPress site that includes your preferred theme framework, or your preferred suite of starter plug-ins that you like. And you can even have multiple plug-ins. You might serve specific industries, you might have blueprints that are for certain industries or certain project types. You might have a blueprint that is particularly geared for blogging, style sites. Or one that is particularly geared for larger media.
You might even have a blueprint that leverages Atlas, which is WP Engine’s headless platform. So the blueprint is a fantastic feature that if you’ve got a set of things that you’re sort of standardizing around within your WordPress sites, you can create a blueprint for that so that next time you create one of those sites it’s really easy to spin up.
Another great feature within Local is Live Links. Now, if you’re working with– if you have an agency or freelancer and you’re working with clients and you’re building and developing locally, sometimes pushing to some sort of staging or testing environment it’s not necessarily difficult, but it’s just a few extra minutes. And you just really want to get that preview over to your client, to your customer really easily. Live Links is exactly that. What it does it basically allows your client to hit their own browser, but hit the site that is on your local machine.
This has been a feature in the app for quite some time, about 12 months ago we really reconfigured and re-engineered it to massively improve its stability and usability. So definitely if it’s something that you have used in the past, but haven’t used recently it’s definitely worth checking out. But if it’s new to you this is a really powerful feature for speeding up the time that it takes to get something that you’ve built into your client’s hands for their feedback.
Local Connect is a great one as well. Basically, it allows you to push and pull your WordPress installations from your hosting account. Right now you can connect to WP Engine or Flywheel. So you can push and pull sites down to your local, up to production, or up to staging, wherever you need to go really, really easily and you can be selective about the database that you push and pull as well. So you might push up code, but you don’t want to overwrite databases that are on the particular environment that you’re pushing to. So fantastic feature there.
Another one is that– WP CLI is one of those game changing tools that arrived in the WordPress ecosystem a few years ago. I love that it’s continually on development and improving, but it’s one of those little things that when you discover, particularly as a developer, it’s beautiful. And the great thing about Local is that you can right click on a site and open up site shell, basically and get Command Line access to your local instance and run WP CLI commands. And that’s just fantastic for saving time.
There’s stacks of other things just in the core app, as well. Pretty URLs, I don’t know, call me vain. It’s nice to have something heaps good site local in the browser rather than some variety of random characters. You can run Multi-site, of course. SSL certificates are generated we should standardize really around that at all tiers of the development cycle.
One click Login, which is really nice so you don’t have to log in specifically to the WordPress. You can just click the button and it logs you straight in out of the local app. You can swap install configurations, which is fantastic if you need to test different PHP versions for the plugin that you might be developing. It’s just super easy to do.
And Mailhog as well. I love this feature. Basically, it sits in the middle there and captures all of the emails that WordPress is sending out. So especially if you’re developing locally for an e-commerce site running WooCommerce and you’re trying to test how it’s sending out– either invoices or confirmation emails. Mailhog is just a great feature for capturing those emails as they are sent so you can make sure everything’s running as you need.
So that’s all the core features, but Local has a whole bunch of add-ons as well. And in the previous history, some of these were free and some of them were pro. But about 12 months ago we actually made everything free. So every single add on in the Local add on library now is available to anyone in the WordPress ecosystem for free. So definitely worth checking out. A few of those like, Link Checker, it’s just a great tool for checking for broken links on your local site. Broken links are bad, find out where they exist and fix them, super easy.
Image Optimizer, there’s a variety of tools in the industry for optimizing images, but there is one that is via an add on built specifically for Local. And that’s great for reducing the footprint of the sites that you’re building on your local machine. Cloud Backups, as well. Generally, as a standard rule backups are good to have, even just for production, of course, but even for your local sites. Cloud Backups– but also great, you might have worked on a site and of course you need to archive it and keep it for the future, but you want to get it off your local machine to restore some space. So you can back it up to Google Drive or Dropbox.
Instant Reload as well. If you’re coding particularly and you’re working on plug-in or a theme that has an impact on the front end experience it’s a little watcher that watches your files on your site and observes that if there is a change it refreshes the browser for you, rather than having you manually click over into the browser and click Refresh. So just little things like that are fantastic for saving time.
And there’s a bunch more add-ons as well. Like I said at the start, Local is well known and loved for what it does for Local WordPress development, but all of these extra little features, they’re fantastic and if you start to leverage those they’re really, really good for saving you time.
Go to localwp.com If you don’t have Local already go there, you can download it for free. You can sign up for the community there as well and get access to some additional resources. You can even develop your own add-ons for local as well. So there’s documentation for that. But localwp.com is where you can get it. I’m going to high five over to Robert Li now. He’s going to talk a little bit about Smart Plugin manager.
ROBERT LI: Thanks Rob. So obviously we’ve spoken about how you can manage and develop in quicker and easier way, locally. Now you’ve got to get it onto an environment, right? And so one of the things that you need to think about– and this is one of the core elements of WordPress is of course, dependency management. How do you manage those themes? How do you manage those plugins? In fact, something like 2/3 of all, it’s actually a security issue, some thing like 2/3 of all vulnerabilities are due to out of date plug-ins.
And so it is a really important part of managing WordPress, but it isn’t always the most glamorous. And oftentimes I’ll find myself spending hours just trying to update plug-ins. Or, if I break a site from updating a plug-in, trying to figure out where I broke it. And so one of the tools that WP Engine has now that allows you to do this in a really safe, easy scheduled way is Smart Plugin Manager.
So it comes actually with every dedicated environment on WP Engine. So if you have one of those, please do feel free to assign it to one of your installs and try it out right now. But obviously there’s also bulk licensing available so you can get this for like 5, 10, 25, even 500 sites. If you wanted to it’s pretty affordable for you to save hours of time. But basically what it does is it does what it says on the box. It keeps your plugins, as well as your themes now, up to date automatically. It does testing to make sure it’s done safely and it also allows you to control when this happens, so that it doesn’t just randomly happen whenever an update comes out, which I know is something that the core update function on WordPress does.
So getting into how you control that, obviously when you do update you want to be able to predict when those updates are going to come out so you can have a watch over it and make sure that nothing does go wrong. You can monitor that process. So you can actually schedule updates on a frequency of your choice, right? And you can also choose to schedule that during the weekdays or weekends, because obviously no one really wants to work on the weekends, right? So you kind of want to put that on the weekdays.
You can choose to exclude and select plug-ins. Some plug-ins may be more complex than others that you may want to have a little bit more of a kid glove with and some you can just let run, but also, you can choose to exclude specific sections of your site. So for example, by class or ID. And that allows you some really granular control around how the testing occurs and also how that update process occurs.
The next thing, of course, is once you’ve done that update it’s like, how do we ensure that it’s done safely so you’re not always breaking sites and you have customers ringing up going, hey, my site doesn’t work. What happened? What do you do? You don’t want to ever have that conversation. So obviously, a problem that’s never had is better than a problem that you need to fix. And so we actually have– as part of the Smart Plugin Manager a visual regression testing protocol.
So what happens is whenever an update is run through the Smart Plugin update will actually take a snapshot of the site. It’ll run a visual regression test and then if it detects that there is an issue it will actually do an auto– you can choose to do an auto rollback, or you can choose for it to send you a notification. So that’s up to you. Again, that kind of granular, fine grained control. But what it will do is it will send you a report to tell you what’s going on. It’ll eliminate the plug-ins that aren’t an issue, and tell you specifically which plug-in is an issue. And also, give you a visual feedback, a film role to show exactly where that issue is come from because sometimes it might just be something really minor that you don’t care about. So you can force through the update anyway.
This visual regression test is something that is improving constantly over time. It’s actually machine learning driven. And it’s derived from the data set of the over one million update operations that we’ve served since we’ve actually launched this product. Also, one of the things that Smart Plugin Manager does that kind of differentiates it from a lot of the other update tools out there is that there is no limit to what you can update with this, really. You can actually update custom plugins that you’ve built yourself as long as you get it to listen to your particular repo and it also works on GitHub, Bitbucket, or GitLabs, and also allows you to update themes.
And of course, because this exists on the WP Engine platform at platform level, and not within WP Admin, one of the things that I used to hate doing is having to click in and out of WP Admin to run these updates and do them individually. These now operate in bulk. So this is something that you manage through the user portal and you can update the settings on all of your sites at once. So you don’t need to ever go in and out and, obviously saving minutes and over time that saves you hours.
You can get this at wpengine.com/smart-plugin-manager or talk to whoever your contact is at WP Engine. Now I’m going to pass back to Rob, the other Rob, to talk about once you’ve updated everything, what happens if you want to make it look pretty?
ROB STINSON: All righty, well look we could actually stop right there. If you only use local and smart plugin manager you would save yourself many, many hours every month. But wait, there’s more. I want to talk about a particular tool that is very near and dear to my personal heart. It’s called Genesis Custom Blocks and this is basically a tool, a plugin that allows you to build better sites faster on WordPress, specifically in the context of the block editor.
So it is a WordPress plugin that provides you an admin interface and when I say admin I mean in the WordPress admin itself. And a really simple templating system, or templating engine we sometimes call it, for building your own custom Gutenberg blocks. And the idea here is that the block editor is fantastic, it’s continually improving, but sometimes you’re working on a site and you’ve built a bunch of things, but there’s a part of it you need to just do something really specific. It needs to look a certain way or needs to behave a certain way. It needs to integrate with another plug-in or a third party application and the off the shelf stuff just doesn’t cut it. You need to build something yourself.
So Genesis Custom Blocks makes this really easy for you to do those things with your own custom block and it’s important to put a call out here that if you’re familiar with the Genesis, you know the Genesis framework and there’s a number of other plug-ins, this plug-in Genesis Custom Blocks is not dependent on any of those. So you can use this in isolation and all the features and everything would work.
It is available for free on wordpress.org. There is a pro version as well with a few advanced features, which I do personally love, but the free version on WordPress is really powerful. If this is something that you want to step in and start using and building things out with, just go to the free one first and get stuck into it, because you’ll very quickly get an understanding of the potential of it. And of course, upgrade to pro if you need those additional features.
But basically, the way it works is that you sign into WordPress and you go add new block, new custom block. And you get a screen there. And it’s kind of like if you were building out a form in WordPress. You’re adding different fields, text field, number field, color field, image field, and configuring their values. Once you’ve done that you’ve now actually added and configured your custom block as far as WordPress is concerned.
You then step in and you’ve got to write a little bit of code and writing the code may scare some people, but if you’ve done any development at all, like even just the basics of HTML and CSS, you’ll be OK here. Because the way that the templating works with Genesis Custom Blocks it is really, really easy. And I’m going to demonstrate that for you very shortly. But once you’ve done that it’s basically done. Your custom block is ready to go. You can go into a new post, or page, click add block and there is your custom block ready to be added to the page, which is pretty cool.
So I’m going to show you one right now. I’m going to be under two minutes. I am going to build a custom block from scratch. So hold on to your seats.
So the custom block that I want to show you right now is one that I’ve actually made earlier. Let’s call it a team tile block. And we can add this to a page as many times as we want just like these three here. It lets us add an image, the person’s name, their job title, and a couple of social links.
Over in the WordPress Admin, the only plugin that we have installed on this site here is Genesis Custom Blocks. It gives us this option over here in the left. And when we click on that, we can see the list of all of our custom blocks. Right now we just have this one. If I click on that, you can see the three fields that I’ve added. Remember, think of it like adding fields to a form. We’ve got an image field, two text fields, and two URL fields. Of course, we’ve given our custom block a title, as well as configured a few things over here on the right for the block’s settings.
Within the editor we actually have a column’s block with three columns set up and we’ve added our custom block three times to it. As you can see, I can click through each one independently. I can interact and change the photo, change the name, title, and the URLs there.
In our code editor I’ve added, within our child theme, 2022 child a blocks folder. Within that, a team dash tile photo, which corresponds with our custom block and two files within that block dot PHP and block dot CSS. In our PHP file we have some pretty simple HTML. I’ve added a custom CSS class so we can interact with that.
But the main thing to call out is the use of this block field function. And within that block field function we pass attributes which correspond with our fields within our custom blocks. We’ve got photo there, name, name again, title, Twitter URL, and Dribble URL. A CSS file, of course, you know I’ve written the CSS like this, but it lets us write– you can write your CSS however you like to do it knowing that this file here will get pulled onto the page whenever the custom block is loaded. And as simple as that, we’ve got a custom block which looks and behaves exactly as we want.
All right. So we got through a heck of a lot there regarding Genesis Custom Blocks. I hope that showed you actually how easy it can be to build those custom experiences within WordPress. To know more, to download the plug-in and find more information, wpengine.com/genesis-custom-blocks is where you can go. Cool, back over to Robert Li. He’s going to talk about backups.
ROBERT LI: Thanks Rob. So obviously, we’ve already developed the site. We’re maintaining the plug-ins, and now we’re kind of making it look pretty. But of course, all of this work that you’ve done, you’re going to lose it, right? And so now we’re going to talk about things like template management, as well as disaster recovery. It’s kind of weird that I paired them together, but you’ll see why in a sec.
So the first thing I want to talk about is the backup system. Of course it’s super important to make sure that any work that you do on your WordPress site is backed up. That is the case with any sort of asset that you create, even if it’s a Word document. I can’t imagine the number of times that I’ve written something and then my computer shut off and then I go back, and it’s gone, right? You’ve lost hours of work. So you don’t want that to happen.
And the great thing is that WP Engine has that feature kind of built in. Its automated, and it occurs on a daily basis. Now of course, for additional granularity you can of course install additional backup plug-ins, and kind of store that in an external cloud storage of your choice, or you can do it by local as well. So there are plenty of options. But if you don’t need to do anything and you just want something that’s safe, that’s resilient, and that’s built into the platform, WP Engine has got it for you.
So these are definitely durable backups, these are replicated. There’s up to 60 of them. So if you want to go back a couple of months you can do so. And these are also encrypted at rest and in transit to ensure that the data that is backed up is secure. Now, I want to dig into the availability side of things because this really gets into the disaster recovery. People ask, OK, if I get a backup done is it really going to be there when I really need it, right? And of course, you don’t want to back up onto your own local storage. That’s kind of redundant if the server is inaccessible.
So what we do at WP Engine is that we actually copy the backup nine times over 3 availability zones. Again, these are encrypted as well at rest and in transit and it means that we write these for 11 nines availability. They’re basically bulletproof. So worst case scenario your particular region goes down we can pull that back up and we can spin that up somewhere else.
These backups are also granular and what I mean by granular is that you can choose the database or the file system. They’re transportable, so you can download them as a zip and put them anywhere else you want. My recommendation is, of course, to store that zip every now and then periodically in dump storage or cold storage, just to make sure that you have a secondary form of redundant backup.
And then they are also templatable, which brings me to the next point. Because one of the things that you can do with these backups, because they exist on the WP Engine platform, is that you can reuse them on different environments. What I mean by different environments, we’re talking about safety, we’re talking about developing in a way that’s not going to be destructive. You want to observe best practice by ensuring that you’re developing on different environments and what we have at WP Engine is a push-pull deployment workflow that allows you to do that.
So if you guys haven’t done this before, or you guys may have spun up sort of a staging environment, maybe it’s within a sub-directory of the existing WordPress install that you have, it can be a pain in the bum, right? And it can be a pain in the bum managing multiple environments for a single site. It’s just additional work hours, or man hours that you need to put in. So WP Engine has automated that process by providing every site the ability to create segregated product staging and development environments. That means that none of these environments interact with each other. If you do something on one environment it’s not going to be disruptive to another environment.
The great thing about these environments is that they are single click to set up and they’re also single click to push and pull between. So super duper easy to do. There’s no downloading or uploading of anything that you need to do. But then I often get the question of, OK, if I’m going to push and pull and it’s super simple is that going to be like super brute force as well. I will say we have recently released some granular controls that allow you to control some elements of the data that make it really safe to push and pull between these environments.
So not only are these environments segregated, but you can control what data is being pulled and pushed. So we now have the ability to select specific tables that you can push and pull, right? For example, let’s say you have an e-commerce site that’s dealing in transactions. You don’t want to overwrite those transactions. By the same token, when you want to pull that down you want to have some example transactions to work with so you can test functionality, right? And this allows you to do that. Also, when you do this push pull you also have an ability to back up on the spot as well, which kind of goes back to the original point.
So now that you’ve done all of this work and you’ve backed up all the work, made it safe, you want to get paid, right? So how do you do that? I’m going to pass back to Rob to talk about that.
ROB STINSON: Thank you, sir. Now, if you’re a freelancer, you’re an agency, you’re a developer, and you’re doing this work for your clients, for your customers. You’re doing all these things that you love, you’re deploying this site. It’s fantastic, like OK, I should probably get paid for this. It’s one of those things that’s kind of important. But the administration around client billing and client management, it can become a bit of a headache and unless you build and establish systems around that it can be a real time sink. You can really start to lose hours every week and every month that you could otherwise be billing, or you could otherwise be spending on producing and creating and developing.
So good client management and client billing solutions, or systems, is really valuable. And I want to call your attention to something called Growth Suite. You can find more about it on getflywheel.com/growth-suite. But it’s just a fantastic solution. A fantastic platform for client management, client billing, client subscriptions, even reselling as well, WordPress hosting. So it’s really great for systematizing and streamlining all of those layers and once again, like we said at the very top, freeing you up to do those things that you want to be doing.
On the subscriptions and billing side of things, getting paid on time is fantastic, of course. If the money is hitting your bank account, you can be reinvested and people can get paid at the right time. So that’s always good. You can set up recurring, like the subscriptions component, or one time payments. There’s multiple currency supports. So if you’re in a certain region, like here in Australia, and I’ve got US clients, I’ve got UK clients. You can set up billing according to the currencies that you have agreed upon with those clients.
You can add notes to these various transactions. As well, you can add discounts. Like you might have a standardized service that you set up within Growth Suite. For instance, monthly maintenance, monthly site maintenance for some reason. And you sell that out for a few hundred bucks a month to your clients. But your auntie is one of your clients, and you love her and of course there’s a family discount there. So you want to give her 50% off. You can set that discount up really easily for specific clients.
Client reporting is a service that many, many agencies and freelancers provide to their clients, especially when they’re on some level of retainer or subscription service. The reporting is that point of ongoing interaction allows you as a service provider to stay top of mind to them as a brand, but also demonstrates in a way that ongoing layer of value that you’re providing to them. So if they’re spending a couple hundred bucks, or whatever with you every month you providing this layer of report to them is demonstrating look, I’m here. I’m doing the work. I’m providing value. Your money isn’t just going out of your bank account and nothing’s happening.
So you can set these reports up really easily within Growth Suite to basically systemize that whole experience. And they can make them recurring and you can set them up to go out every week, every month, or quarterly, whatever that structure is that you have defined with your client. You can do that.
And the great thing is it’s your agency. It’s your brand. Whether it’s colors or logo, it’s going to be going out from you to your client. It’s not going to be wrapped up in WP Engine or Flywheel or Growth Suite branding. It’s going to be ABC Agency all over it. So from the client experience that report and that interaction point is with you, which is really great.
Carrying on with that idea as well, is you can actually have a client portal. So the place where your clients can create their own little sign in account. And they go in there. They see your brand. They don’t see the Growth Suite or the WP Engine or Flywheel or anything like. That they see your agency brand. They can log in and they can view the services that are associated with their account. They can make payments. They can see past payments that have occurred. They can update their credit card information, for instance if they’re on a subscription.
That’s just a really simplified and consolidated experience, but it does a couple of things. One, it reinforces your brand. Two, it streamlines that whole interaction point, right? You’re able to hand that off to the client to have them log in and fill out all those details. So it does a few things to really streamline things there, which is fantastic.
And of course, look, Growth Suite is built on top of our infrastructure and we’ve been WordPress hosting, Managed WordPress hosting for over a decade. And we know how to do it. We know how to do it well. We also know how to do reselling really, really well. So a lot of our Growth Suite existing customers resell as well and that layer of our service is baked in to Growth Suite.
It’s optional, you don’t have to do it. You may only ever want to run your SEO subscription service through Growth Suite. And that’s fine. You don’t have to resell, but for those agencies and freelancers that do do that, it is baked in and it works really, really efficiently. And I actually encourage any agency out there, any freelancer out there who’s consistently building WordPress sites and who wants to retain an ongoing style of relationship with those clients. Recently hosting is just– it’s just a fantastic option for increasing that revenue flow for your own business.
Bulk Site Management as well. So if you are reselling and you’ve got a number of sites within that account, Bulk Site Management as well. So it kind of like– some of the value proposition of what we saw earlier with this Smart Plugin manager, you can see all of the sites, you can get an, at a glance insights into the status of various things. And things are filter-able, and sortable. So you don’t have to log in to every individual site to get key information for the sites within your portfolio. Next one, I want to hand back over to Robert. He’s going to talk a little bit about SSH gateway.
ROBERT LI: Sweet. Thanks, Rob. So we’re getting into the homestretch. We’re getting into real nerd territory now, right? So this is the stuff that makes me super excited. Let’s say you’ve gotten to the point where you’ve scaled up. You’ve got hundreds of sites under your management. And you’re like, man my finger is cramping up because I have to click on so many things, right? Let’s do this programmatically. How do you manage your installs programmatically? How do you manage your deploys programmatically?
First question, how do you manage your installs programmatically? SSH Gateway. That’s what you want to use. This is actually a feature that’s built into WP Engine’s platform. It’s not something you need to buy or anything like that. I highly encourage you to use it, but effectively this is the most powerful way to interact with WordPress. We spoke about it earlier. The fact that local has this within its application allows you to do WP CLI, but you can also do that on the platform.
So once you’ve tested out those commands on local go on. Do a SSH Gateway. Replicate those commands, and that way you can interact with the database programmatically, you can interact with the WordPress site programmatically, you can spin up installs, et cetera, et cetera, et cetera. There’s so many things that you can do, right? But with that power also comes some responsibility. So not only can you, like I say, you’re executing all of these custom PHP functions and you’re executing like remote database commands and stuff, but you want to do that safely.
And the way that SSH gateway makes that safe is that it actually goes through a Bastion Host. That’s why we call it a gateway and what I mean by a Bastion Host is this is what governs the connection between you and the origin server itself. There’s no direct connection to the actual server, which means you are safe to do any sort of testing or anything that you want to do without the risk of blowing up that environment. But also, that connection is encrypted so no one can listen in. And the session is destructible, so that means that once you leave no one else can hijack that session. So not only is it powerful, but this is a safe way to manage installs.
Let’s say you’ve got this down pat and now you want to do this across all of your installs. Then you want to have a look at our GitHub Action. And super proud to announce that this has been recently updated and released. It is generally available. I’ll show you where you can get it later, but effectively this is the most powerful way you can deploy to WP Engine.
Of course, everyone– a lot of you developers probably are aware of Git. If you’re not aware of it, then have a look up what versioning WordPress looks like. It is kind of the industry standard. But this allows you to use Git at speed and with flexibility on WP Engine. It allows you to deploy to different environments on WP Engine from different branches. Right now it is just available on GitHub, but we are rolling this out to Bitbucket next, so keep an eye out for that.
But the coolest thing about this– and this is something that I actually personally do, so I’m a super advocate of this– is that this is an open source community driven project. And what that means is that you can take this and run with it what you like. The basics are it’s going to log into your WP Engine platform and it’s going to push your installs to the right environment. But after that, or during that there’s a lot that you can do. For example, there are flags built into the GitHub action that allow you to do cache control so you can tell it to clear cache once you’ve deployed. And PHP linting, so you can observe PHP coding standards, make sure you’re not doing anything dodgy.
Then also, you can deploy scripts, post deploy. For example, you might want to activate all of those plug-ins once you’ve deployed it. You might want to run a security audit, or you might want to spit out some sort of an output to your local terminal, or something like that.
What this allows you then to do, as I mentioned before, is manage those installs programmatically at bulk. Just like how WordPress core, whenever there’s an update that goes out, it goes out to all of the WordPress sites in the ecosystem. Imagine you as an agency have a framework that is common, that you guys have built that you’re super proud of, but it’s used across all of your sites, and right now what you need to do is you need to log into every site, or SSH into every site and do all of those updates manually. Now you don’t need to do that. Once you’ve set up an organization key, you can actually manage that framework and update that from a central repository and spit that out to every install that you manage, which is super duper handy and it saves tens of hours of work. It’s super powerful.
I highly encourage you to visit github.com/wpengine/ that string. It’s too long, not going to say it, but you can see it right there and check this out yourself. As I mentioned, this is open source community driven. Please feel free to fork it. I’ve done that myself, and play around with it. It is just a boilerplate and start managing your sites at scale with speed and flexibility.
So this actually gets us to the end of this DE{CODE} presentation. Hopefully through this you’ve gained some value. As Rob mentioned, this is a buffet. It’s like a Sizzler or a Las Vegas buffet. Some of the things are going to be real tasty and some of the things you’re not going to like very much, but I guarantee you you’ve gotten something out of it, right? And hopefully from this you’re able to manage your sites at speed and scale and do more of the stuff that you love and less of the things you don’t. I’m Rob Li, this has been Rob Stinson. Thanks for joining us.
ROB STINSON: Thanks, everyone. See you later.
And that is a wrap for DE{CODE} 2022. I hope you found it inspirational and are leaving with more WordPress expertise and new community connections. Look out for the recorded content on the site from Friday to catch up with anything you may have missed or watch a video again.
I want to say a final thank you to our sponsor partners, Amsive Digital, BOX UK, Candyspace, Drewl, Elementary Digital, Illustrate Digital, Kanopi Studios, Springbox, StudioMalt StrategiQ, WebDev Studios, and 10up. A massive thank you for donating to our DE{CODE} fundraiser. We really appreciate your generosity.
Now for everybody that has been interacting with us in our Attendee Hub and our sessions, we will pick the top three winners and let you know how you can claim your prize at the end of DE{CODE} We look forward to seeing you again at our future events, either in-person or virtually. We can’t wait to bring you more on the latest WordPress development trends and how you can implement them to build WordPress sites faster. That’s all from me. Thank you very much for joining us and take care.