 Hello everyone, I've gotten quite used to hearing that lady let us know that the recording is happening. I almost wish there was a way that I could change that somehow, have something differently tweak. But welcome. Today is a slightly different session. There's a joke that's often made in sitcoms where they talk about the highlights episode. And they joke about the fact that the highlights episode is usually when the writers of the show have run out of ideas. So they do a highlights episode. And so when developers do AMA episodes or AMA sessions, often folks think it's because they've run out of ideas. I promise you that is not the case. But I thought it might be something that would be fun to do. If it is something that folks enjoy, then we can do more of it. If I only have sort of five attendees, then maybe it's not that popular. But we'll see how it goes. So today is a session where you are welcome to ask me questions. I actually have set up a website, a subdomain on my on my top level domain called AMA Jonathan Bosinger.com, where you are welcome to post your questions now in advance. The main reason that I've set this up is because I'm just placing the link in the chat if anybody needs to grab it. The main reason I've set this up is because often the questions in the chat are difficult to follow along with and get hold of later. And if I have any questions today that I can't answer, I want to be able to go back to them and see what they look like and reply to those folks. So it asks you for your name, your email and your question. This should actually say question, not content. So I apologize. And I've basically just set this up as a custom post type. So I can go into questions here and I can see any questions that may have been posted. You don't have to use this form if you don't want you to ask your questions. And just do this, the old fashioned way where you type it in the chat or you, or you ask the question verbally either way it doesn't, it doesn't faze me. But if you, if you would like to use the tool that I've created you're more than welcome to. It should work. Let's let's test it out now quickly. Let me just log out of here and just make sure that it does work. Let's go to the front end of the site and let's put my name in and my email. That's not that one. And you should see something when you hit submit you should see a message that says your question has been posted. If you're interested this is using the rest API in the background, which has been working on the last few weeks if like to see that code I can always show it to you later. But that's the easiest way to get these questions in today. As always, I have a few, a few announcements. But if you would like to let us know where you're joining us from and maybe something interesting about your country in the chat while I'm doing these announcements you're more than welcome to. For those of you who don't know me my name is Jonathan Bostinger. I am from Cape Town in South Africa. I sponsored contributor automatic to the training team my focus is specifically on technical related content so generally coding things, developing things. And today is an AMA and ask me anything so anything you want to ask about WordPress development web development related to web development and WordPress development. You are welcome to ask me today so hopefully you've all come with your questions. As always we are presenting in focus mode. But please do feel free to enable your video if you would like to, you're welcome to enable your, your mic as well if you would like to ask question verbally. I've added this please let me know if you can't see my share screen item because we've picked up that anybody connecting from a Linux operating system. Sometimes can't see the screen share so let me know if you can't see the slide this announcement slide or anything else in the session if you can't see it. Again if you want to post those questions you can post them to that website you're also welcome to post them in the chat, or ask them verbally if you prefer I don't mind either way. And as always I will be posting this to WordPress TV afterwards. And that's it that's all I have prepared really. So, if you would like to start asking questions you're welcome to go ahead now. I'm going to log back into the site to see if anybody has asked any questions. I'm probably not going to find the password that I need then there it is. Using my password manager like a good boy so that I don't share my passwords. In a live stream. And let's see if there are any posted questions so far guess we got one from this Jonathan character. I think we can, I think we can delete his question. So I'm going to just trash that let's see what, what marks questions. Any thoughts on using graph ql rather than rest. Mark I'm going to assume that is. No I'm not going to assume I'm not going to make any assumptions I apologize. Okay, so that's a very good question actually. And one that I that I do have an answer for and the answer is actually on the website of the company that I used to work for before I joined delicious brains. Before I joined automatic it's a company called delicious brains. I actually wrote, I don't know if it's still in my name now, but I actually worked on a blog article. I think it was delicious brains, which are the delicious brains or spin up WP I can't remember now. And that's going to be the quickest way to share with you my thoughts on on how these things work know it wasn't delicious brains it was spin up WP. I'm a little bit of a shout out now but it's, it's the easiest way to find this content. It's not in my name anymore because I have left the company. So I think Brad has taken over this content. Here we go. So, okay, so it's not graphql specific, it's specifically talking about setting up and deploying a Gatsby site. So I can recommend you taking a read if you want to learn how Gatsby works Gatsby users graphql to power its front end. And there are some sections in here where I talk about WP graphpl which is the plugin that provides graphql capabilities. So that plugin is going to share these links in the chat. If folks want to have a read. So headless WordPress one, and this bar, this zoom bar is going to get in my way. So this is the graphql plugin. For those of you who don't know what graphql is, it's another way to do requests to your WordPress site. Essentially, graphql and and rest are two different two different ways of doing the same thing. It specifically provides root and endpoints and passing back and forth of data using JSON, but specifically to specific endpoints and specific resources. Graphql I'm pretty sure also uses JSON if I'm not mistaken and you can pass JSON back and forth. But the one major difference with graphql is you the ql part the query language part so you can actually you query specific data you're looking for. And then you get that data back. So for example, a rest API endpoint would be in it just get a simple example of one up here. So let me just load it up for my site. WP. JSON posts, for example, so a typical graph, sorry, it's a big rest API endpoint is maps to a resource. In this case, the posts resource. And then you will have endpoints on that resource get some posts for put delete for delete in all those things with graphql. You don't specifically have let's let's see if the screenshot will show us a good example. This is more than nose and things, but you don't typically have. I don't know that much about it because I haven't worked with it, but you don't generally have specific endpoints or mapped out. And what you could do you can actually send a query to a graph ql endpoint. Maybe you do have specific in person. I can't remember exactly, but you can fine tune the data that you want to return. So you can for example here the example they've got I'm looking for the posts, and I'm looking for the ID in the title and this returns all the posts with the ID in the title. So this is very similar to when we do in our posts endpoint for for rest API, when we do the fields global parameter. I think that's how it works. And we say ID and title. So by defaults graphql is kind of built to work on those kind of things to be queryable to be customizable to your specific needs. So you could even do a query to a graph URL endpoint where you say I want all posts IDs and titles and I want all categories attached to those posts or category names or whatever, and it'll build your response. You can achieve the same things with both endpoints. So it's not like one can do something I think I don't think one can do anything better than the other graph graphql gives you more flexibility in how you build your your requests and the data that you get back then rest. So the question was let's go back to the original question. Now that I've gone through the quick introduction about what it is. The question was, I've gone and lost the question. So let me go. Thoughts again, so thoughts and not one is better than the other but thoughts. But I will give my thoughts. So I, I like, I like both. And I'm very much a fan of the right tool for the job. So in the example of the Gatsby environment, which is which is what uses GraphQL so the so Gatsby is a is a React framework for building JavaScript front ends, and you can use GraphQL to power your Gatsby front end. So in that in that environment gets Gatsby and GraphQL work great together and they're sort of built like that. Because the person who Jason Bald is the person and there's a bit of a joke on the web Jason Jason haha. Who maintains this plug in he worked for. So here it says he's the creator maintainer of GraphQL he was in previous deployed by the company that powers the Gatsby framework. And so he was very. What's the word keen to build something for WordPress so you could use WordPress is a data store Gatsby as his front end, and then something to chat in between. So it's a right tool for the job situation so if you're building something and you're using something like Gatsby or any kind of other front end framework that needs graphql then graphql is the right query language. If you need more I would say flexibility in your in your how you query your data and what data you return graphql might be better for you. However, depending on how much flexibility you need the rest API might be enough and the advantage of going the rest API route is it's built into WordPress. With the graphql plugin you have to install that plugin on top of whatever your WordPress install. And we need to remember that any additional plugins that we add to our WordPress install are going to increase the request time. Even purely from the point of view that if you have plugins installed on your sites that are not active they're still, I believe, a record of them being held somewhere and it needs to sort of run through that list every time WordPress loads and check it. Because basically it runs through the list of plugins in your plugins directory, and then checks which ones are active and which ones are not and determines how to show them so even inactive plugins on your site are going to add milliseconds of request time that you don't need. Or you shouldn't be you shouldn't be wasting so again it's a right tool for a job situation and I recommend as I do with any tool as a developer I recommend checking it out I recommend learning how it works so that you can make the decision between the two. But if you're if you're I have. I have built with the rest API, and I have I have never found the rest API rest API to be lacking in what it can do and how I can filter the response data the query data, all that kind of thing. So for my purposes it was always enough. But if I was building something that required graph you all sure I would I would load the graphql plugin on there and I would use it in a pretty great. One thing I do want to mention. And this is something that I just discovered today and this is not related to graphql. But this is related to the rest API, which is kind of related to graphql is that one of the one of the maintainers of the rest API. Packaging word component should I say is actually speaking at WordCamp Asia I chatted with him today because I had something I wanted to add to the docs. And he is I think it's today yes it's it's not today it's the 18th which is Saturday they're doing a Friday Saturday Sunday WordCamp. And it is at 1050 am at UTC plus seven. So I don't know what time that works out to but I think that's more friendly for US based time books I think that's late in my day. But he's actually doing a talk on getting the most out of the rest API. And he talks about the one thing that was really interesting to me was performance techniques to make your rest API in points faster. So, and he specifically mentions the fields global parameters I think he's going to be diving into what fields can do and how powerful it can be. And he also and this is the other reason I mentioned this, he also discusses when you want my to use graphql versus rest. And I would say so this this chap's name is cat and white or cat and white, how you pronounce it. He is way more knowledgeable about how the rest API works and I because he actually maintains it. And so he would be the perfect person to watch to to get another opinion on these things. So I highly recommend checking out this if you can there is a live stream on WordCamp Asia. But then it should be uploaded to WordPress TV later as well I do record as it's wants to know all of these things. Yes, I can certainly post the link let me post the WordCamp Asia link itself. And then I will post the link to the to this talk. And the live stream link if you go to the WordCamp Asia sites is under schedule live stream schedule. And I think it's just a case of signing up somewhere. It might even be on YouTube I know in previous years that the live streams have been on YouTube. So so so log through the sites. Let me just see let me just see if there's a thing about how the live stream is going to work. I know the tickets are all sold out. I think closer to the time they might they might indicate what the live stream situation is. But if there is there is a live stream. And as far as I know it's the same as the yes there's the getting the most of the rest API one. I don't know what the details are about accessing the live stream but I'm sure they will. Share that information. I'm not seeing anything here. But I'm sure they'll share that information if they don't. You can probably contact them and ask them what the live stream information is. And ask them how to access that so so yeah I recommend checking that out. So those are my thoughts right tool for the job there is no there is I don't believe there's one thing better than another. I believe that WordPress is not the only tool in the world there are other tools and pick the right tool for the job. Those are my thoughts on on your question. Excellent. I like that. So I'm going to what I'm going to do is I'm going to mark these ways trash these questions if I answer them and I'm happy with them and if I don't answer them and I'm not happy with them I'm going to leave them because then I can always come back to them later. So let me trash that one and let me see if anybody else nobody else seems to have asked questions so that's no problem. Does anybody else have any questions that they would like to ask or no. You're welcome to post it in the chat you're welcome to post it on the site. You're welcome to raise your hand and ask manually. Otherwise, I can talk for an hour. I can find something to talk about. Wouldn't it be funny if my if my questions in point is not working because everybody's hitting the site and causing it to drop. That would be, that would be not funny at all. I have a question so does anybody have a question they want to ask in the chat. They would like to ask it verbally you're welcome to do that as well you can you can reuse the raised hand or you can just unmute. I don't mind either way. Let me know. Okay, Mark says where are we on building a reactor utilizing the rest API. Okay, so in case you're wondering what Mark's talking about there. I had these high hopes of building this. This form. Adrian, I see your question. Okay, so next, I hope to building this form in react. I was either going to use use a block and build it as a block in the editor, but actually what I wanted to do is I wanted to build it as a standalone reactor. So I want to write pure react code. And then I saw actually in the, in the, in the event that I created, let me find it quickly. In the live stream at building a react up utilizing the word for us to be that was the plan. And I didn't sit down and think about how much work is actually involved. I thought I could sit and do it our on a half tops. And that sometimes happens to me when I just think of an idea and I decide I'm going to just run with it. See how it goes. So I ended up and I can share the code that am I sharing the code with you because there's nothing in there that's super secret. Thank you to everybody who's posting their questions I do see them and I will get to them. So in the, here is the code. And I started with building or at least registering a custom post type called question. And the reason I did that and this is this is the problem is I didn't sit down and plan this and think about the pros and cons of my decisions I just started with a live stream and just made decisions on the fly. So I decided I'm going to start with a custom post up and the reason I'm going to start with a custom post type is it builds this questions use interface for me. So if I register a custom post type then I can easily access all these questions that get posted using the built in use interface that WordPress has the downside to that was that if I want to allow folks to post the questions on the I need to be able to authenticate the post requests because as we've covered in the in the WordPress recipe I post a series that I've been doing. You can you can do a get request without authentication but the minute you're posting something to WordPress. So creating something you need to authenticate. And the only authentication method that I had covered recently was the application passwords. And I haven't covered or any of the other options yet so I haven't dived into how they work yet I've never used them in WordPress myself I've used or in Laravel applications but never in WordPress so I know, I know how it works technically but I haven't physically done it. And so I first needed to find a way to authenticate my user in such a way that the code. Sorry, the username and password wasn't sitting in the code. The way I ended up doing it is still not perfect because if you if you know how these things work you could still determine what the code is. But I ended up using a cookie and base 64 encoding the username and password and then passing that as the authentication header in the axios request axios is the JavaScript library that I'm using to create the post request. And that works pretty well, and it creates a level of security so the only way that you'd be able to get the username and password is if you inspected the code found the application key cookie loaded up the sites on your side found the cookie in your session. So it's all possible I'm aware of it. Base 64 decoded it split split out and then you could post your questions. And then I realized that the right way to fix that problem was to implement custom custom role and custom capabilities. And then it turned into a much bigger project than what I had time for. So it is still something that I would like to finish. And I'm thinking that what I'm probably going to do is I'm going to take the code as it is. And I'm going to, I'm going to work on building as a reactor next so that this doesn't look like this. And before I do that I'm going to solve the capabilities problem. So that only so that that user can only create questions that's all they can do they can't delete them they can't and they can't access any other part of the site. And then I'll be happy because then I can do validation on the data that's coming in. And if it's dodgy data I can filter it out and then I'll be happy with how secure the app is and how well it works. However, as some of you might know, my Tuesday live streams are usually preparation for my Thursday workshop. So going forward I'm going to be doing whatever I'm preparing for the workshop I'm going to be preparing the live stream. And so this is a project that I'm probably going to be doing outside of that. I am planning. So here's the other reason that I sort of pause where I am. I'm also planning some some workshops and some tutorials around user roles and capabilities. And also around further security. So it's all kind of I need some of those things to be in place before I can prepare future workshops on them. So mark we will get there. It is so I'm thinking that this this plugin that I started building for this session is actually going to make a nice project that we're going to look at over the course of this year. And we're going to use it as our base for all of the things that we learn. Because it covers a lot of different aspects. We can cover blocks of it we can cover fronted react that we can cover capabilities security all those things. So so this is probably going to be something I'm going to continue working on I might even decide to submit it as a plugin to the repository. So that other folks can use it on their sites if they want to set up amas. It could be a fun of the project to do so so that's where we're at so it is coming. I will I will eventually turn this and the goal is maybe to make it available as a block, but also as a front end react app that you can load separately somehow I'm still figuring that out. So be with me on that one but we will get there. Adrian says to add custom CSS to the new block sites. Do you recommend a plugin or doing the NQ route and functions of PHP. So I joined when you say block sites. I'm going to assume you mean using a block theme, or do you just mean building custom blocks. Yes, block fee. Okay. So I would, I would recommend using the regular in QE route that you're used to. And that's the great thing about block themes is they have a functions of PHP that works exactly the same as you're used to. Your your block theme then becomes what's known as a hybrid theme, which just means it contains new functionality and old functionality. There is actually a project, and this is another project that I've been wanting to work on since last year, a very kind designer. I've forgotten her name now I apologize. Emily I think her name is I apologize if that isn't your name Emily and if you're watching this. I reached out to some folks last year when I was working through the block theme stuff and I said is there anybody who has some time to design a block theme for me. So I'm not a designer I can do the coding but I can't do the design. So she's designed this awesome theme for me and now I want to turn it into an actual block theme so it's all I think in either Figma or one of these design tools. So this year was to work on it but I've been doing so many other things so. Why was I saying that. Oh yes. So there are going to be elements in that theme that are going to require me to add custom CSS. And I plan on preparing those workshops around that content. So, so that's how I would I would still use the custom old school ways that I know of doing it. And I would get to a point where custom CSS is easily done within the block theme environment which is not anytime soon. That's all going to be the way that I that I would do it. What I would probably do though is I would, I would build the block theme as as a block theme so it's just all block theme so HTML templates. There's nothing in the functions PHP nothing in the index of PHP, and then I would create a child theme as a classic child theme, and all my custom functionality would be in that. And the reason I would do that versus maybe put it in a plugin is because plugins are not really designed to be presentation layer plugins are designed for functionality plugins have become a bit of both over time and I know this. That's not why they were designed originally. So how I would do it is I would build the block theme with all the functionality that it can handle. And anything that I need to customize I would put in the child theme. Because then it's also easy if if something's gone wonky with the theme it's easy for me to turn the child theme often see whether something I've done in the child theme is causing the problem, or whether it's a problem in the block theme. So that's how I personally would approach it. But there's no reason why you couldn't put it in a functions of PHP and just uncommon code or those kind of things. So the next question there, you're welcome to ask follow ups as we go through, but I'm going to jump through to other folks questions. I'm just going to check if anybody's posted any questions here that we haven't answered okay everybody seems to use in the chat which is fine. So the next question was, do you use the WordPress scripts for bundling your JS in a plugin erases. Okay, so the only time I use WordPress scripts is if I'm building blocks. I am very old school, I have been I have been building for the web since early 2000s. I missed the period of time where folks we have where NodeJS came out NodeJS became popular JavaScript bundlers transpilers CSS transpilers sass less, all of those things. So I still prefer where I can to code my CSS as vanilla CSS I don't I don't tend to use frameworks when I'm doing CSS. Also because I don't tend to do a lot of design related work. So, if I am working on a project that requires lots of CSS I'm going to say to if I'm working with find somebody who's an expert at CSS. I am okay with CSS I can work my way through CSS I can make things look the way they should, but I'm not a designer. I'm not a front end expert, I'm more of a back end developer or a full stack developers maybe a better term for what I do. So, I only use WordPress scripts when I'm building blocks because the React JSX transpiling requires WordPress scripts. Before that I was using I think it was grant to do some transpiling and things like that. So that's I still have knowledge of, but I haven't used that in a long time. I've also used in Laravel I've worked in a Laravel environment for a while and I used Laravel mix which is built on based on Webpack, which is what WordPress scripts are based on so I've used that. And I understand how that works. So if I were to, if I were to work on a WordPress focus project now. I probably would look at using WordPress scripts to see if I could, you know, use some of this more modern JavaScript modern CSS and then use that to bundle my stuff my things. However, I'm also a big fan of being able to use what I call traditional vanilla JavaScript and CSS so that's why I did the series on writing building blocks using vanilla JavaScript. It's up to it's up to personal preference right tool for the job. So hopefully that answers your question there, Aaron. It also depends on the complexity of the JavaScript. So if the JavaScript is very simple I'm going to keep it very simple. If it starts becoming complicated and I'm doing lots and lots and lots of JavaScript and yes I'm probably going to look at using some kind of bundler and making my life easier. So by default when it comes to building blocks, I prefer using create block and the scripts bundler because I find the JSX format to be nice and easy. It's very much like HTML. And you can load CSS in the in the two is a script and it's a style and style files and you can use SAS in there or plain CSS. So I do use it for that that's my preferred. I don't find enough as much as I prefer vanilla JavaScript. I prefer react for building blocks. So if you have a look, if you go and find any of my block code out there in the wild, you'll see that the JSX is is the modern stuff but the other JavaScript around it is very vanilla. So it's like using the function keyword I'm not using arrow functions or anything like that I'm using old school functions because that's how my brain works. And then letting the transpilers do their thing. Okay. So that is how do you do a flash card in WordPress and how do you run a report from WordPress forms. So that's really a, a question that I can't answer because there are too many answers for that. I have never done a flash card. My brain, if I think flash card, it's the kind of thing I do with my kids. So there's like a card with an answer and I show them a question and then I open it up with answer that to me as a flash card. I don't even know what a flash card is on the web. And running reports that sounds like you're looking to solve a problem for yourself or one of your clients. That's that's way more than the scope of this project. I don't I've, I've, I've not done reports in a WordPress environment for a long time. It really depends on your needs and your requirements. It's really something that if you don't know how to do, you might want to hire a freelancer for or develop before it's not really something that I can answer in, in a very short space of time. What I will say, what I will say is that depending on the kind of output you need, there is a, there is a PHP. It's called PHP Excel PHP office. There's a PHP office package that allows you to create Excel spreadsheets. And I have used that before. It's a long time since I've used it, but I have used this before. So I recommend maybe checking that out. Otherwise, if you're just wanting to like have a report inside the dashboard, it just depends on how the form is storing the data. It's really, it's down to the requirements and it's not really something that I can answer easily in this kind of environment. So I apologize for that. Shelly says, do you have a resource for how to use all of the WP? Okay. So I don't currently have a resource. I'm hoping to create one very soon. But if you go to, and I was looking at this today, so give me a second here. If you go to WP API, so GitHub WP API. So this is the WordPress API repositories or organization, if you will, that contains all the information about the WordPress REST API. So for a little bit of background, the WordPress REST API was originally developed by Ryan McHugh, who is the, I think, CTO of Human Made, if I'm not mistaken. And then he proposed that it be merged into WordPress and then WordPress agreed and then it was merged in. But he originally built it for their requirements. And so one of the things that they've also built is an OAuth 2 plugin that allows your applications to connect your WordPress site without you giving away your password. And however, I will make a note that the plugin works and is in use in several production environments, but the user experience and documentation could be substantially improved. We welcome input and contributions to make this tool better. So your mileage may vary. What I do remember about the way OAuth works is you make a request to the websites with your username and password that's not stored anywhere. So you make a request, you log in username and password. It then returns a token to the user. And the token is then stored either in cookie or in a variable or whatever. And then the token is used to make any future requests. So you still need to have some kind of way for your user to log in. But the nice thing about using OAuth versus using application passwords is if you want to store your user sessions. In other words, you want your user to be able to click a little tick box that says keep me logged in in your application, your mobile app or your web app or whatever. You store the token for that user and not the user's username and password. So you just make sure that the token is stored safely. So some kind of encryption or something that you need to sort out. And there are articles out there for how OAuth works and how to set it up. I am planning on doing a workshop about I want to use this plugin, set it up on a site and then allow this, maybe this app or maybe another app or something to do the OAuth authentication and then store the token and work through how that works. But unfortunately, it's one of many things that I want to cover. So it's not something I can give you right now. But I do think that if you do some search for WordPress API OAuth 2, you might find some solutions. You could maybe even reach out to Catam on making WordPress Slack. I was having a chat with him today. He's quite a friendly chat. And saying to him does human, I think it was human made who wrote this. So let me just check this. I think Catam works with human made. Let me just double check here. Yes, he works with human made. So if you go to human maids website and a human made as a WordPress agency, they might have documentation on there about using OAuth. That's not the human made that I'm looking for. That's something else. This is called human made WordPress agency. There you go. I do know that they have quite extensive developer documentation that I have read before. I'm just going to see if I can find it quickly on the screen. I'll share this link in a sec. All the cookies, yes, all the cookies. They used to have their developer documentation available somewhere. Let me just do a quick search here. Human made WordPress developer. I think it was best practices. I think it might have taken it down. I'm not going to find it now, but have a look on their site. There might be some information there. Maybe it's on their GitHub. Let's have a look here. Repositories. They've got a bunch of repositories. This is basic OAuth. Not finding it here. Let's just try best. No. I'm not seeing it. I think it was human made. Oh, there we go. Company Handbook. That's what I'm looking for. The company Handbook is publicly available on the Internet. They actually have sections on development in here somewhere. Maybe it's on the tools. I'm not quite sure. But it's in here somewhere. As far as I remember. Engineering. Here we go. Engineering Playbook. You can go through here. I think there's some information about how to use things in here somewhere. Have a look through that. I'll show this link in the chat. Human made 10-up and XWP are three companies that I know that do this. Human made is one 10-up engineering Handbook. There we go. There's the 10-up engineering best practices. I recommend reading these docs if you want to be a strong developer. These three companies, I don't know if XWP is still around. XWP. Engineering based. Yes, there it is. This is all publicly available. I recommend reading all of this if you can. This is how these folks run their agencies. You learn all kinds of interesting little snippets here and there. I spent a lot of time in my early Wordpress development days picking up tools and tricks from these folks. I highly recommend checking out all of that. There should be something about old Shelly. If there isn't, I am planning a tutorial. I will let you know. We should be doing a workshop on it sometime soon. Hopefully in the first half of this year. Let's see how it goes. That's the GitHub. There's the links to the Handbook. That's all of that. I think I have answered all the questions in the chat. Let me see if there are any questions that have been posted to my site. No, they haven't. That's cool. Does anybody have any other questions they would like to ask me? Unfortunately, I can't answer questions about how to do specific things. How to build specific things other than to point you to resources. It's the kind of thing I'm going to need to start asking questions about requirements. It's really something that is not in the scope of this kind of session. I apologize for that. If anybody has any other questions they would like to ask me now, they are more than welcome to close down some of these things. If anybody is still thinking of questions or typing up questions, please go ahead and do that. What I'm going to mention now is that next week, we're going to take a little bit of a break from the WordPress API. At the moment, I'm busy focusing on user roles and capabilities and diving into that so I can build it in my plugin, but I can teach you folks about that as well. I've learned some interesting things about how that works. For next week, I think it's next week. Yes. For next week, we're going to be doing a beta testing WordPress session. So we've got the WordPress 6.2 release coming up. WordPress 6.2 release coming up in March. And the beta file is coming up in March. And the beta file comes out on the 28th of February. And then the first... Okay, I've got my datum. And then the first release candidate comes out on the 7th of March. Now, release candidate generally means no new features. There shouldn't be any bugs now. This is not what's coming out. There might be minor bugs here and there, but this is what's coming out to 6.2. And it's a great way to get to know what's coming... Sorry. A great way to get to know what's coming is to beta test it. So next week's session, we're going to learn how to beta test the WordPress release. And we're also going to be focusing specifically on developer things. We're going to test the new developer features. And we'll talk about testing your own plugins and your own themes and those kind of things. So that's the plan for next week. The week after that, we're going to be doing another security session. So we're going to be doing a follow-up session to the first one I did at the beginning of this year, where we're going to be diving into common vulnerabilities. And that'll take us to the end of the month. And then from March, we'll start looking at user roles and capabilities for a few weeks. And then after that, we may or may not come back to doing some more REST API stuff. So that's kind of my plan for the next few weeks. If you have any ideas for things that you would like to see for workshops, please use the AMA site. Please go ahead. That's the other reason I built it. Those of you have been to my workshops, you may remember that I've been thinking about how can I get folks to send me their requests. So if you have ideas for workshops, you would like to do like, for example, or on the REST API, or how to do custom CSS in a block theme, or these kind of questions you've asked me, post them in here. If you want to repost the questions you've asked in the Slack, in the Slack, sorry, in the Slack, in the chat, sorry. Then go ahead. If you think, if you're watching this afterwards and you think of other questions, please use this form. Please don't hack the password and create dodgy stuff. Hopefully by the time this workshop comes out on WordPress TV, I'll have locked down the capabilities, which I'm planning on doing tomorrow so that you can't create other posts and destroy the site. But if you do come across this video for the rest of time, I'm planning on leaving this site up and allowing the questions to be posted. And so please do use it if you would like to see those future sessions coming up. Lisa says, do you have a private or semi-private address where we can reach you that isn't necessarily posted on the web? No. The only way to reach me is through my email address, which is at the bottom of my About page. Okay, let me go a little bit deeper. So my public email address is at the bottom of my About page. It is here. It is jonathanbassinger at gmail.com. You're welcome to use that email address. You can reach out to me for slightly more direct responses to questions. You are welcome to use the Making WordPress Slack. So let me open that up quickly and show you what that looks like. Let me move this out the way here. Let me make sure that I'm in the Making WordPress Slack. And let me load up the Make WordPress Slack. So let me share that link with you. So basically it's a Slack instance that is owned and managed by the WordPress Foundation for the WordPress community. It allows you to interact with all the contributors that are part of the WordPress community that have signed up. You only need to have a chat.wordpress.org email address. So this is my chat.wordpress.wordpress, which forwards to my personal account. So you might as well use the personal one. And to have that, you need to have a WordPress profile. So this is my WordPress profile. Please don't laugh at the username. It's from the old days of the web. But you need to have created a profile on WordPress.org. So you do that by going to... I think it's just WordPress... profiles.wordpress.org. No, I love that. Oh, this because it's my profile. So if you go to profiles.wordpress.org, you can... it redirects you to there. So what you actually need to do is go to make.wordpress.org. That's probably a better place to do it. And then right at the top here, you can register. So you can register a WordPress profile if you don't already have one. And then that will create the chat email address which forwards to your email address. And then you can register for the Slack. So let me post in the Slack chat. The Slack link in the chat. So that's there. There's the chat. And then this is the registration. To create a WordPress.org registration. No, not that one. That one. And then once you've registered, then sign up for your Slack instance and then you can join me in the WordPress Slack. My phone is ringing, so I'm trying to turn that off. Shelly just... It's fine, Shelly. Shelly just sent me a message to say I can close my right side with my icons. I don't mind my icon showing. I don't have very many icons. So if I open up my Slack instance, let me get this out of the way here. Let me go over here. So this is my Slack instance. I don't mind showing what teams I'm part of. This is the WordPress of Africa Slack. This is my work Slack. This is the making WordPress Slack. This is post status. This is a company that is a WordPress community that requires you to join with a yearly payment. And then this is the ZA Tech Slack, an African tech community space. So it's all community stuff except for my work one, which I won't open by mistake. And in this Slack, there are many, many channels. When you first join the WordPress Slack, all of the channels aren't displayed. So number one tip, make sure you install the Slack app for your phone or your desktop or whatever. It's way easier to navigate Slack using the app that it is the web browser or the web version. And then click on the little channel icon and go to manage. Change the Slack, go to manage and go to browse. And then you can search for and you can see all the channels. I am always generally hanging out, always generally, generally hanging out in the training channel because that is the team that works on Learn WordPress. And that is where I spend most of my time working. So if you want to ask a question about Learn WordPress or an upcoming workshop or an upcoming tutorial or whatever, that's the perfect place to ask it. But you can also private message me in the Slack. If you spam me, I will report you and block you. But if you want to ask me questions, you could also do those there if you don't want to email them to me. I can't guarantee that I'll answer them immediately because I'm often working and I've become very good over the years at turning off my Slack notifications and not being bugged by notifications when I'm working. So I can't guarantee direct answers. And I can't always guarantee I'll be able to give you the answers that you're looking for because if there are answers that sort of go beyond the scope of what I might be working on, but I will try and direct you to the right place with the right people. But that's those are the two places where you can find me either via my email address or the WordPress Slack. Okay. That is that. Does anybody have any other questions? I'm going to check if there's any questions posted here. Okay, Shelly seems to have posted a question. So let's see what Shelly's question was there. Maybe it's just the question she's already asked in which case we will just, yes, WordPress and how to debug WordPress errors. I like it. I like it, Shelly. Yes, I am. I am also planning sessions around that. So to give you, okay, I'm going to, I'm going to go and do something offscreen quickly because it's a work site. And then I'm going to share something with you on the screen. So give me one second, please. And I'm going to go, I'm going to just minimize that to move that up the way. I'm going to go here. So this is what I'm basically working on for the rest of at least the first half of this year. Basically, this is an internal blog that I used to kind of plan my work. And one of my goals this year is to work, is to work with the fundamental knowledge that a WordPress developer should know. So I'm going to create a post in this site quickly so you all can see this because I don't mind sharing this. And I'm going to say introduction to WP development. And I'm going to just pop this content there. There we go. Okay. That's that. Let's just close out that list. And then, okay. So hopefully you can all see this. But this is what I believe to be. And I might even share this on my personal blog. So it's public. So if folks want to comment on there, they're welcome to. I might also share on the training team blog, which is at make.wordpress.org slash training. I haven't decided yet. Might do both. Why not? But this is what I see as the fundamental knowledge that a WordPress developer should know. So some of the stuff I might not create content on, some of it I probably, most of it I probably will. Some of it I've already created content on. So I've already created a tutorial on action hooks and filters. I haven't done a tutorial on the debug log, but I've spoken about it in workshops. We have done some things around themes already. We've done block themes. We've done specific things. We have done some things around plugins. We might recognize the plugin, the security developing plugins one. So this is my ultimate goal is by, by at least the end of this year to have made all of this content. So you'll see in the section, we have things around right at the bottom here. I haven't added it yet. There's one more that I'm adding, but there's one section that I'm adding at the bottom of this around debugging, finding, finding problems in your code. And so we're going to talk about some, some common ways that you can look for bugs and find bugs for the, for the fundamentals. And then later on, I'm also going to look at more advanced ways using things like X debug and various other things. So it is part of this list. I haven't added it yet. I still need to update the list based on the feedback that I received from some of my colleagues, but it is going to be part of that list. So we will, we will get there. Okay. Lisa says, can you share a link, can you share a link to WP developers must know? Are you, are you asking about something that I shared earlier or the link, this link? Are you talking about this content here? Yes. Okay. Sorry. I haven't posted this yet publicly. When I finalized it, then I will share it publicly. And I'll, I'll mention it in one of my future workshops, but I haven't because, because I haven't finalized it yet, which I still need to do. I can't share the link publicly yet. As soon as it is finalized, I will share it. So what I will say is keep an eye on my personal blog, which is Jonathan Bossinger.com. I will, I will publish it there. Also keep an eye on the make WordPress training blog, because what I'm probably going to do is I'm going to publish it there and ask for feedback from the community and ask folks to tell me if they think anything's missing. And then once it's finalized there, then I'm going to publish the final version on my blog so that it's somewhere public. So I can refer back to it. And then if you have any questions around any of that, you can, you can share that. Okay. Awesome. Well, we're coming up to almost the hour. We do have an hour and a half, but I'm getting, I'm getting a feeling like nobody has any other questions. I just want to check if there are any other questions in the, in the question section. One of the things, so one of the things that I will, that I will mention is what I am trying to do this year is be very specific about my content. So my content will have some goals, will have some planning around it. I'm going to be less random that I was last year. I want to plan that sort of developer journey and make sure we're covering. So I, when I learned to teach, it was actually in a different environment than tech. I was, I went through an instructor course to teach a martial art that I, that I've studied for a number of years. And so when I think about the fundamentals, I think about the white belt level. And so the first things I want to do is I want to make sure the white belt is covered. And then once you got all the white belt stuff down, then I'm going to move on to what I call the blue belt stuff and then we're going to do the purple belt stuff. And hopefully as we, as we go up in levels, what we cover is less and less, because at certain levels you need to cover a lot. And then as you get more advanced, it's less and less. And it's, you know, sort of building that pyramid of knowledge. But I want to be more, I want to be more thoughtful. I want to be more strategic about the content that I'm creating following WordPress. So that we're covering our foundational stuff first and then building on top of that. So that eventually I get to a point where there is no more content that needs to be created and I can retire. That's the plan anyway. I don't know how long it's going to take, but hopefully we'll get there. MLP, I think that's Mark. So my blog is literally my name, jonathanbossinger.com. I'll share it in the chat here. Mark Andrew guesses my martial art very correctly. Yes. I'm a Brazilian jiu-jitsu practitioner. I first started with, as a young person I started with, you know, as we all do karate, watching the karate kid, the original back in the day. And then I moved on to judo. And then I moved on to what I call Japanese jiu-jitsu, which is the more traditional Japanese style of jiu-jitsu. And then from there I moved on to Brazilian jiu-jitsu, AKA Gracie jiu-jitsu. And I've been doing that now for the last 16 years with a bit of a gap. So I was training up until 2020 with the pandemic. And then the pandemic stopped my training. And then I struggled to get back into it. And this is my year, 2023 is the year that I'm getting back into it again. So my goal is to get back into it full-time again for this year. So that's my plan. But yes, Mark well spotted the belt mentions there. Brazilian jiu-jitsu is about the only martial art that uses those five belts, the white, blue, purple, brown, black. The rest all have different belt colors in between. Awesome. Adrienne says she does Krav Maga. I have great respect for people who do Krav Maga. It's a very intense art. Unfortunately, there are no Krav Maga schools in my area. And I don't feel like driving 45 minutes to town to go to the nearest school. But a friend of mine does my best man for my wedding. He lives close to Krav Maga school and he does Krav Maga. And he's always telling me about us. Okay. And yes, a lot of a lot of my way of thinking around how people learn is about when I was teaching jiu-jitsu. There's nothing. This is unrelated to software development, but there is nothing more difficult to teach. But at least there's no student more difficult to teach than somebody who's just had a full day of work. And they're now sitting on a mat at six o'clock in the evening and they're tired and they're hungry and they want to go home. So it's quite an interesting experience. But yes, that's my little background of instruction. Anyway, folks, I thank you very much for your time. It was lovely to see some familiar faces. It was lovely to see some new faces. As I was saying earlier, if you do think of other questions, you can come across this workshop on WordPress TV and you want to ask questions. I will respond. It's got a space for your email address and I will respond via email if you add your email address. As long as it's something that I can answer, please fix my development problem that I'm building for a client. Please do feel free to post them there. Thank you all for joining me today. I hope you have an amazing Thursday and an amazing weekend. And I will see you all again next week for some testing of WordPress 6.2. Bye.