 Hello hello. Good morning ladies and gentlemen. My name is Amy your emcee for this section Please welcome our first speaker this morning Milana Tsep From Novi Sad Serbia a city. She probably calls the most beautiful city in the world She stumbled upon WordPress in 2009 finding its simplicity unmatched While she may not claims Expertise her daily use and exploration of WP CLI have been a constant learning journey Today she will share insights and blending PHP and WP CLI knowledge to save time and bring joy Ladies and gentlemen, let's welcome Milana Tsep. Thank you Thank you so much. I didn't expect this the second day of World Camp first talk And thank you so much for saying my name as it is as it should be said So today I first I want to See who I'm dealing with. How many of you are PHP developers? Oh, that's a lie. I Know this guy. He's not PHP developer But thank you for support. We need them more and how many of you are using WP CLI Awesome, have you used it in combined? Oh, this is great. So we are gonna learn something. No, okay so Let me take you to a Magic world It's not magic. It's just a website It's yet another WordPress website. So you see Nothing special here. What I what is special here is I prepared some users and We have four users here, we will focus on something specifically a bit later in a moment and Listing users so WP user list is in PHP Equivalent to get users, right? So if you I'm gonna make this more If you don't want to type WP user list, I don't know why wouldn't you want but if you don't want to do it if you're used to on PHP What you can do is WP eval and then Execute arbitrary PHP code. So if we say get Users here we will have an error We will have nothing. Okay but that is because get users is returning an array of Objects and if I'll just you know returns a string or a value something like that so we can say WP eval and then perhaps print R and Users This is a bit tricky in terminal. Okay, so now we have an Array of user object and this is like Not it can be useful, but you don't want to type it. So I'm gonna open another session and What else you can do is you can use a shell and this is PHP shell so here I can just type get users and I get Again array of user object and this is good Right. Oh, hello Okay, so let's go back to this one and I don't need a Registering date. I don't need rows. So I'm gonna make this a Little bit more useful. I just need a ID User login, I believe that's how it is display name and user email Okay, so now we have a Battle list to see so what I want you to pay attention to is this word magic So we have it here for the first user. We have it in user email for the second the same third user is has username magic and The last user has no magic. It's me and it's just control user. So What if I want to filter users with the word magic somewhere? I can say Let's go to documentation and see what I can see now WP user list Help you can have all the help you want in terminal and the complete documentation is there. So This is important Display WordPress users based on all arguments supported by WP user query. So let's go to There's even a link and let's go here and see How I can search Well, there it is I can search keyword and it will find Matches If search columns is left to left empty, then it will just search the complete profile, so I can say search So whatever field you want to search that is column name in database. You can use this like dash dash the column name and then the value you want to Find and if I say this I get only one and This is because It goes literal. So if I want to Find all other instances, I can use wildcard here like before and after and Now I have all four of them. Now what's happening here? It's happening that I Have another field here user URL and Now you see I also have a magic so If I want to do this in PHP, let's go back to shell if I want to do this here, I would say get users and Then this accepts an area of arguments and I'm gonna say search and Search query is I'll add a wildcard card right away Magic, what did we do? Yes, I see. Thank you We didn't close the quote and that is What's wrong with typing PHP in terminal Yeah So here we have again all four of them now What if I Want to find only Users who have this word in email So in this case it can look like I want to find Users who are On management level for this website. So the URL is magic.lock and I want to find all the staff and I could search magic.lock but you saw that the fourth user has it in URL So it will again show up in search. So I want to search only this one column I want to search user email and If I do it in PHP as You saw here I Can say search columns and available Values are ID user login user email user URL a nice name and bad name and this plain name right and It's an array so search Column and this is again array and I want to use Email is good. Can we run it? Okay. So here. Oh, thank you So here I Have this one user out or at magic.lock and the other user Admin at magic.lock and this is what is return right so with PHP we can do this Now, let's try to do it with WPC-Li search columns oh No, it should be like this and user email oh No, it doesn't work and This is because WPC-Li is not ready for array here. Now, let me show you a Places where it's ready and how it looks like if you go to WP post update or create and help You will see a number of parameters. It's scary, but if you scroll down you can update every single column in database and Here we have post category and it accepts array of category names Lugs or ID. So if I wanted to add update post to category one two three I would add Post category one comma two comma three So that is an array and this is how an associated array looks like it's for meta input so it's in JSON format and that's because Key can be any string and meta value can be any string and this is how it looks like in writing now when you type it in command so I try this with You know with search columns. It doesn't work I tried any kind of formatting that I could find it doesn't work. It's just not ready yet. So What do we do? In this situation Well, this is when you can actually This is probably situation that I don't want to write a plug-in for this like just to export You know a few users. I don't want to put code in Functions PHP and go through all the pipeline, you know to push it somewhere I just want to run it once and I cannot do it with WPC like So we can combine them and make our life easier and fun and we are gonna do it right now so The the great thing about WPC li and what I want to Replicate here is This is an error. Okay, so if I wanted to export this This would export all the users, but let's say I don't file card here and this is just the two users I can say format CSV and Just do this and say users see SV and It's exported. So here we have users CSV Right and if I open it with let's say sublime You see I have oh Only this one user. That's weird Never mind But I have it exported and I can export whatever I want to filter and that's what I want I don't want to write a lot of PHP code and I don't have to I'm gonna show you now So I'm gonna Create a PHP file and I'm gonna call it users so open it and Let's just call it users and for now we can do echo Hello So what do we do now? We say WP eval file Users PHP Hello, do you see now what we can do? Okay, let's go back so I See a lot of people are thinking right in the morning like it's Saturday and we all know what we are gonna do Okay So let's comment this out and let's say this is Var we print it out. Okay. Now we have things to work with now. I have in output What exactly what I want I have those two users So what we have to do now is just you know pure PHP fun Just export things to CSV and we are going to do that So it would be export CSV With PHP something like that and here is oh you see it's visited Yeah, and the great thing is this first example is working just fine So we copy it Go back here and paste so What we need for this is Actually three functions. We need f put CSV which will put data into CSV file but before that we need to open the file and after that we need to close the file and Here what it accepts its list and that is area of arrays and we don't need that we Have our own data However, our own data is array of objects, so we need to work with that as well. Just let me clean this up Users as user and I really don't like this FB. It means nothing in my head It's gonna be file now What we want is this user to be Array, but first if we take a look what is returned here It's an object and then inside of it another object and then You know some values and then arrays and we don't want that So when you do get users you get return the whole object and you don't need that and what we were returning here is You see this ID user logging display name user email. That's what we want So first I want to make sure I'm returning Those things and you can do that with This one fields and you can choose which ones you want to return and even if you don't Need that at the moment Please do use it. It's performance wise, you know, you don't need the whole object. Just return what you need So here, let's clean this up a bit. I'm a sucker for coding standards as you can see Okay, so here after this I want to Return fields and the fields is also an array. I want ID. I want user Login What was their display name and user email, so now I have the Let me just comment this out And this all of it So let me just see what I'm getting with this To make sure that we are getting there we go. It's an object and do you see this I Don't know why we get here with objects. We get double ID and But that's not our problem right now that's something different so Let's comment this and you can easily Convert object to an array by just Casting Type and now it's an array Still you will get the double ID and if you want You know, we can convert it and we will convert it to a proper array So I also don't want this to be called a file CSV. I want to be called users CSV and What is W? If we go here to documentation F open You have a lot of parameters here that you can use so W is for just writing and it will Rewrite everything that is already in there So it will point to the beginning of the file if you want to keep what you already have there and Point to the end of the file you will use Upend which is a but for now I I don't mind having Write and you can also read and write and do all other things. We don't need that right away I'm sorry. I just cannot look at this without spaces It's early morning. I cannot pretend I'm normal Okay, so this should work right I'm gonna comment this out and Let's see I just want to delete this user CSV Okay, and let's run it now. Oh Okay, it's There and I think we have it open here user CSV. Oh We did it But you know what I don't like I don't like that. I have no feedback at all like did it happen Do I have to open file and we can make that so now it's a make-up time and There is This was unpaid a commercial for Okay, so a beautiful thing that WPC li has is internal API and What we want to Control now is the output so we can use WPC li log to display a nice message like WPC li is doing and I'm just gonna copy paste. This is all my career just copy-pasting from documentation. It's That's why I'm there so here I want to say Something like Reading user and Here we are going to say user and it's array at this point. So let's say display and Let's run it again. Oh There's been critical web Okay, what have I done now? Hold on pot error cannot use object type We passed some kind of object somewhere. Okay. Let's just Convert this into oh It's only here. Okay, if we say user equals Array User now it should be user for everyone. That's what you get when you improvised during talk. Okay reading user, right and Oh, okay. Thank you five minutes hmm so What if I want to add some more things like I want to Show a table like WPC li is showing it here Right, I can Sorry, I Can go back to internal APIs and use this one like format items and you can use it as Table and Jason and CSV and whatnot. I'm gonna copy it Put it here. So the format is table and Items is Let's see an array of items to output We we have an array inside this for each little bit. We don't have it in in here So outside of it. It's still an object. So I'm gonna say Items oh, wow, okay is an array here Items and let's add that user and Now items is ready and fields fields is Actually the table headings. So it's an array of Just strings to be table headings and I already have that here. So I'm just gonna take this out Call this fields and up here Fields equals This and now it should be ready. So if we run it again This is awesome. So you can do we don't have enough time, but you can do the same thing with Importing, you know, create the same script. So you can run it because you only know that it's on server You can run it whenever you want it. It's not a plug in nobody can mess with it You don't have to spend a lot of time Writing and going through the whole pipeline and everything. It's there. You created it on server. You run it You exported it you imported it and you are so happy, right? Okay, and I hope you see The potential in mixing those things so everything that you cannot do with WPCI you can do it PHP and just, you know, mix it up and And my name is Milana Tzap. I am WordPress engineer and the loudest member of WordPress documentation deal I'm also classical musician. So if you want to talk about anything of that, you know, we can talk about it if your company and you have Your earning From WordPress and you have a budget for open source. Please do support inclusion in tech. This is initiative to help speakers travel, you know and pay their costs for Going to work comes and speak So if they are underrepresented time is up. Okay, if you know, you can help Few more voices to show up and talk and I hope you had fun. I had had Thank you so much Thank you so much Thank you for sharing this magic journey with us. I think now we are open for Q&A What was that What was that thing that you wanted to show us you said you we don't have time but I wanted I wanted to homework a Homework. Yeah, let's do homework. So you create another script like this But this is not for exporting CSV but for importing items from the CSV file. So you create users You can use hint Wp create user or Wp insert user, whichever you want, but you can create the same script for importing. Thank you Did you learn something new today? Thank you. That's what I wanted If you don't ask me something else start asking questions What I Have a question for you. Okay How much time of learning Wp CLI does it take to start using it? zero you can Start using just one command and then next week add another two commands and then you will just Include more and more commands and you will start Combining it with other CLI tools. Hopefully it's so much fun. Please try it and then you will start doing things with PHP and everything So you can start using it right away. You don't need to learn the whole tool You don't need to learn the whole environment You can just start using one command or two commands and just keep adding them Thank you. That's a great question. I actually gave her that question. Yeah Okay, I guess yep Are there any other languages you can combine with Wp CLI in that same way besides PHP Well, I I don't know if you consider it a language But you any CLI tool can be combined with this and that's the beauty of CLI because they all work together I Haven't tried with anything else. I I really doubt because Wp CLI is Based on PHP. So yeah, I I don't think so, but if you can try for homework and just tell me did you make it? Yeah, maybe we can combine AI with it. Oh, oh That would be scary Let's let's try. Thank you. Thank you. We are rolling I Guess another approach to do something similar would be to create custom CLI command But I guess it takes a bit more time to write that or other differences between the two or is it just kind of Time saving with your approach Well, it depends what you need it for like if if you create another command I would create it if I knew I would use it, you know from now on But if this is just what I use for one site, you know, I I think it's you know What is the value of it and how much time I spend with it? So I would personally just develop custom Wp CLI command for everything, but it's not useful, you know for my time. So you just wage what what is used for Thank you Thank you for the talk I learned quite a bit. Thank you Just more of a fun question. Do you have any examples of a time? You were used it in a weird or an interesting or creative way. Oh I cannot show you that it's client work. I Use eval command more than I like to admit I Used it for for a lot of things, but mostly when there is What was very useful like I'm Connecting, you know doing third API third-party API integration and I need data to be populated only once So I don't want to you know write a lot of code put it in a plugin or whatever It doesn't need to be there. So this is the perfect Example of that, you know, you develop it in local just copy paste that script on play on Production, you know, but just copy paste that script there run it once. Nobody knows you were there There are logs, but you know, you can delete it Kind of Kind of piggyback on that question like what is your few favorite commands like what is the one that you it's so good That you're scared of like what it can do what it can do. Oh There are many things that that you can do a lot of things I'd say as a developer my favorite command is scaffold and I would love to To give some of my time to to invest there to create a Amazing things it's already doing amazing things, but we can make it better But the things that you do with it's another talk. It's alias talk, you know, you can In one line you can export database for external Website and import it into internal It's a great fun to do it But if you do it, you know on production it can put it on maintenance mode and I learned that in clients projects Don't do that. But those kind of things can be dangerous depending on Where you're working I Say everything that you suspect could be dangerous and anything could be dangerous because if you have root access You are the most powerful person on servers. So, you know Just be be aware of that So if you are not really sure what it can do just do it on staging. Thank you Thank you Milena. I'm maybe an astrophysic question, but can we spam WPC li by using it in PHP 5? Yes, yeah Can you please explain how is it possible? To use WPC li in PHP files Yeah, yeah, so let me go back I'm not gonna write code now, but Here in internal API's What you can do if we had more time we could probably Do that, but there is a command like here Execution so you can use this run command and we could have put in this file run command and any WPC li command with all parameters So you would run WPC li to run PHP file which will run WPC li command. It's amazing. You can do that. Yeah Just for fun, you know, why not? Okay? Okay, thank you Milena. Thank you. I'm pretty sure anyone have any more questions You can definitely find her in a conference later today And thank you again on behalf of our Cam Asia. We would like to give you a thank you gift. Oh, thank you. This is why Thank you, thank you Thank you Take the shoes Thanks Thank you all now is a break time the next the next presentation will start soon I might just be up on the stage because then there's less I can just pace Otherwise like I'll just pace in the corner and I'll look really weird One two one two test test I have peas and carrots peas and carrots Oh This moves Yes, deep fried terrible. It's apparently I'm known as the terrible Good morning ladies and gentlemen. I'm Amy The NC for this section. Please welcome our next speaker Robert Lee from Brisbane, Australia He's a principal solution engineer at WP engine in his talk, he will give us a quick overview of Generative AI and its impact on WordPress He will also show us how to build our own end-to-end model and Chat box use our own data. Let's welcome Robert Lee Thank you for the very nice introduction Amy. Do you want to give a round of applause to Amy? She's a working a thankless job So Um, hi, my name is Robert. Um, I'm supposed to go to an introduction slide of myself, right? So we're talking about generative AI today As Amy said, I am a principal solutions engineer at WP engine and I like fried terribles That's apparently what everyone knows about me now to begin with. I just want to make some disclaimers So firstly, I am not an AI researcher. I'm only really interested in the practical application of AI in a WordPress setting There are of course plenty of other ways that our artificial intelligence is applied in the real world today We're really only going to be talking about generative AI and large language models We're going to be going through this like a freight train So there will be a lot of code that kind of goes over your head. That is okay. If your brain hurts So does mine There will be uh, this design be accessible So there will be a colab notebook after this that you guys can take a screenshot of and you can actually access all the resources yourself So you can build the same thing that we've built here Last thing we're going to be relying on open source technologies primarily And I know there are definitely easier ways to do what we're about to do today And uh, we're going to use a little bit of it, but not a whole lot. Um, one prime example would be something like open AI so To start I want to begin with a story About how I got introduced to generative AI It was about mid 2023. I remember it was around about two o'clock in the morning I work as part of an international team and of course being from australia No one gives uh Any sort of attention to sort of my schedule. Uh, he knows And so, uh, we typically do like team meetings around about like one or two o'clock in the morning Because it's one or two o'clock in the morning, uh, I get special dispensation No one cares if I'm awake asleep paying attention or drunk doesn't matter So one of these kind of meetings two o'clock in the morning. I was barely awake I was talking to a colleague of mine and he'd recently spoken to me about a plugin that he built using generative AI And I was like, oh, that's really cool. So he showed me how to do it um before I throw any further Who here has heard of something like, uh co-pilot Or lots of hands. All right Who here doesn't use it? Liars For those of you who don't know what co-pilot is it's basically a generative AI code assistant Okay, so you can ask it questions within your IDE and say hey build me this snippet of code Or what's wrong with this snippet of code and it'll give you a response Um, it also allows you to create code that's kind of functional or functional a lot of the time So what I did was around about two o'clock in the morning. I plugged in some uh prompts It was for a plug-in that I've been working on for a couple of years. I'm gonna give it a shot Zipped it all up checked it onto my WordPress site. Voila. It worked and I was like, oh, yes and then I was like, oh Oh, no So agenda today, we're going to start with a brief 30 000 foot snapshot of what generative AI is today Then we're going to talk about those challenges because of course it's come out really quickly into public consciousness We're going to talk about how to use it in an open source sense Then once we've kind of figured out how we're going to use it. So we'll go through that whole demo We're going to talk about protecting your data And then lastly, we're going to talk about the future of AI in WordPress how it might be implemented in WordPress or what I'm seeing Then we're going to go into some key takeaways But probably the last section and I think the most important is I'm going to leave you guys with a call to action About what WordPress can do for the future of AI So let's start In terms of the current state of AI I'm sure a lot of you have watched the state of WordPress in the last couple of years Mullenweg has talked about learning AI deeply and he said it a couple of times, right? And then November of 2022 chat gbt came out And while AI has been around for a lot longer than chat gbt Chat gbt was the first application where it came into the public consciousness and Hit the mainstream since then Research and practical applications have been developed in this space at a rate that I haven't really seen in any other technical Sector, um, you can see here with this long list of milestones It's kind of years worth of research and development in the space of like 18 months in my opinion Generative AI has become the most transformative technology since the invention of the iphone It has and it will forever change the way that we consume digital media in the future But time to get a little bit technical What is all of this? Okay, so generative AI is built upon what we call large language models or llms You've probably seen that around that acronym or I don't know what it's called In the most simplistic sense large language models are basically machine learning taken to the nth degree If you can see here You have what's called a neural network and we call it a neural network because it mirrors the structure of the human brain There is an input layer up the top. Okay, and that's where you feed it information It's a bit like your eyes your nose. Here he is And then that information is processed within a series of nodes within hidden layers Okay, and that would be the neurons within your brain That data Emulates the human or that structure emulates the human brain And basically with large language models vast amounts of data are fed into that and basically the output layer at the bottom Generates a human Readable output and these are checked for correctness. So for example, you know Your teacher might ask you what is three plus three you say 24 and she says you're an idiot And that is a way of correcting that model. So over time These models are refined in their predictions. They're going to gain billions of parameters That's why we see you know when they say hey Gemini came out It had like 70 billion parameters or something like that And the point of having all of these parameters is that they're an innumerable number of patterns that we as humans can't comprehend And this allows large language models to produce outputs that we would recognize as human like Because we as humans do the rest by imparting meaning into these outputs and that's why they appear so magical so Of course with all of this development there have been You know a lot of challenges, right? So first These foundational models are so large now that they require a lot of computing horsepower to train Okay, and that means that Only the organizations with the most amount of cash are able to train these foundational models And so there's a lack of diversity in these models There's also an emergent licensing agreement Sort of system that's coming out and it means that you know rightly You know these the media publishers that we train these models on get paid for that work But it does make it even more expensive to train them Secondly just because there is a large amount of data Doesn't mean that that data isn't either noisy or false or in some niche cases Even there is a lack of data Of course, all of this data is also taken at a point in time And so much of it is old and then therefore this can create outputs which are false and we call these hallucinations And because generative ai doesn't really know anything outside of the universe of what they've been told these hallucinations can be very convincing Thirdly because these models are so large Researchers have difficulty predicting their behavior and it also means that it's very difficult to model risk So oftentimes they won't know how to create safeguards until something has already happened But lastly and perhaps one of the most long-reaching effects Is the fact that these large language models can create what I call a creatively reductive environment And what I mean by that is that these large language models They allow you to create really high quality media and content very quickly with very little training And because this is generated from the input of billions of points of data It's also very very difficult to attribute where the influence comes from And this incentivizes the proliferation of copycat media including software and code and disincentivizes original innovation What this can create is an internet that is full of content But it's always similar and sometimes false Economists have a term Whereby a common good has been used to the point where it no longer has any value And it's called the tragedy of commons. I like to adopt that term and say this and say it would be called The tragedy of the digital commons And this isn't some far off reality, right? It's already begun so for example Right now new york times is suing open ai for training gpt on copyrighted material And also stable diffusion mid-journey, which are large language models that are designed to generate images is being sued for copying styles of artists In regards to emergent licensing for example shutterstock associated press axel springer. They've already begun agreeing to or creating agreements with ai companies It's also happening in the space of journalism For example, I mean this is always going to happen buzzfeed is not creating its listicles with ai Sports illustrated that person there draw tees Is not a real person he is skynet That third one there I find the most problematic cnet money. Okay, they've started creating financial advice by using ai In in the creative space I want to ask a question who here thinks the first one was generated with generative ai Okay, second one And the one on the left Good job, everyone. You're all correct, right? All three of these won competitions in 2023. Okay So the cat is already out of the bag. So what do we do about it? Right? Well, we can make this work with open source. So let's start with what we already have firstly We have a place on the internet called hugging face It's basically the github of large language models There's about 350 000 models on there already and these are getting larger and more sophisticated over time right The great thing as well is the king of the hill kind of models like for example Mistral gpt clout clawed three that was just released These are actually all built with open source tooling and so those tools are also available to us if we want to build those models Uh, secondly You can take these open source models oftentimes these large foundational models will create create kind of generalized outputs That aren't always good for every use case. So if you want to create something that's more Specific to your use case you can take these open source models You can actually fine-tune them or embed data within them to create more more Targeted outputs and not only that you control that model and you control your own data But how do we do this? Okay, now we're going to get nerdy. So let's start from the beginning This is easy generating code. Okay, you've all heard of co-pilot If you guys don't want to use something that is say closed source that's controlled by you know a company like microsoft Then you could use some hugging face tools. So for example, there is a thing called hugging face chat It allows you to basically plug any sort of large language model into the back end of it And then you can start asking questions of it. So really really easy to get away with doing some inference So for example, you can see here. I'm asking it to create a plugin that says hello world a page that builds a page for that There are also a lot of out-of-the-box tools that you can use that do a similar thing to co-pilot That don't require you to use the same models that they provide But I want to give a special shout-out tool that I use is called cody by source graph and the reason why I want to give It a shout-out is that again, it allows you in the back end to plug in open source models To help you with code generation. So for example, it gives you access to things like mistral as well as starcoder one and two Once you figured out That you're going to be or how you're going to be generating code You there was a couple of ways to customize the ai that's going to help you do that Firstly on the left you have fine tuning and this basically involves taking a foundational model And training it with more data For example, if you take a model and you want it to behave a little bit more like christopher walken You may ingest a lot of christopher walken quotes and tell it to more cowbell, right Now what will happen is once you've ingested all of these quotes and you ask it a question It may give you the mannerisms of christopher walken when it responds to you and add a lot of more cowbell to the end of everything But you won't be able to control the specifics of the output itself For a more specific output, you'll want to do what's called embedding And this is the second way that you want to or kind of shape the output of your large language model and the way that that works is you're going to take Existing data that you have we're going to put it in an external database called a vector database And that way the large language model can use the context That's provided by the data in that external database to give you a more targeted output Right an example might be if you want to create say a financial forecast for your company, right You might ingest a lot of historical financial data into a vector database and then say Tell me what 2025 is going to look like for me and it'll spit out something that looks very similar to like what you ingested In order to do this we're going to do a bit of a demo today. Like I said, it's going to go like a freight train. So Please don't Get scared. I'm scared enough um I'm going to start by exporting data from our wordpress site Into a csv file from the mysql database We're going to manipulate that data so it can be accepted into a large language model Then we're going to try to fine tune it with a package called order a train which is created by hugging face again um And then we're going to be taking the same data and embedding it into a vector database Created by chroma db Then we're going to chain all of that together and put it back on our wordpress site as a chatbot Okay, to do this you need some python. Of course you need your aforementioned hugging face Uh, you need some sort of hyperscaler in my case. I'm using aws. You can use anything else that you want To make it a little bit easier. I'm also going to be using an open ai endpoint But there is actually within the colab notebook that I'm giving you guys an open source way to do this as well Right, so let's start with my website called robbs.kitchen Now I love baking but i'm also extremely lazy So this entire website Was built with generative ai There is a backlog of about 100 recipes in there or with the images as well And that's the kind of seed data that i'm going to be using to train my ai Once I've exported my data, it'll look something like this You do need to format it in a way where you have input parameters and you have one target Output parameter, which you can see in the red where it says text. Okay. I'm supposed to use a pointer. So there text. It's red um Now i'm not going to show you how to kind of export your data The probably the easiest way to do it is something like php my admin If you don't have a lot of data right not a lot of posts things like that You can use something like excel to manipulate it or if you're you know fancy you can use other tools um Okay If you find that the data that you have here isn't sufficient and you want to create sort of a larger data set to train off Then open source directories like for example kaggle are a really good resource To go off right Before we fine tune you'll need the hugging face right api key. I'm assuming this video works awesome. It does So when you go to hugging face, you just need to go into your settings You see access tokens and you just need to copy that key make sure it is the right key Because if you do the read key you won't be able to do half of this demo Today, we're going to be starting with a model called tiny lama It is a foundational model which is built on the three billion parameter lama model also metas lama model And we're going to be using hugging faces auto train advanced now Keep in mind when you train off a foundational model the size of the model Dictates how long that training exercise will take for example. This only has 1.1 billion parameters Right, so it's not very big, but it took me about 20 to 25 minutes to fine tune Okay, so if you think about like a 70 billion parameter model, right? Well, you'll be pretty old by the time it's done. So All right Next thing you need to go through is the colab notebook again as I mentioned I'm going to give you guys a link to this afterwards so you can follow along But we're going to go to a section called fine tune your foundational lm Then you'll need to connect to some compute which are done here And you need to upload some data and we're you need to rename it as train dot csv Then you need to remember to press play on the first Cell there and it'll install of your dependencies because of course this is a fresh instance, right? You can see it's doing it there And then you'll need to make sure you remember to put in a model name to push it to hugging face, right there It's gone really quick Basically what will happen is once you press play and it starts training here, which is what it's doing It'll create a model out of the end of that like a pickle file and will upload it to hugging face for you to do later Or use later, right? As you can see now, this is hosted on hugging face. This is a real model So you guys can play with it later if you want to have a model to ask at baking recipes, right? An easy way to deploy it into production workloads is use something like hugging face endpoints like this one And this creates an api server which allows you to host that model It also provides you some examples of how you can run it just as you can see here I've provided some Example prompts that you can use and it also allow you to fill out the api key so you can use the code snippets And there you go. You can ask it some questions now Keep in mind. This is a very small model So when it does respond the performance isn't that great It kind of responds like a five-year-old will just say the same thing over and over again So the larger models will give you better performance But as I mentioned fine tuning only gets you kind of halfway there, right? This is fine for general responses But if you want more controlled narrow outputs, you'll need to get into embedding And today we're going to be like I say using chroma db now chroma db. I like using because it's small It's very easy to deploy lightweight, etc. But isn't particularly powerful Some other options that you might want to consider are and these are open source are milvis Which is kind of the og of vector databases and we v8 right Which is one of the more popular or powerful open source database solutions out there The reason why these ones are popular is because they do come with some other features that you know Obviously when a company controls a whole stack they can provide you Also today, we're going to be using aws And we're going to use aws to deploy chroma db In the notebook, you're going to find a full json template for an aws cloud formation That is literally a matter of just copying and pasting this whole thing into a json file And uploading it to cloud formation to spin up that stack as you can see in the script here All it's doing is it's pulling the latest chroma db docker image And then it's running a script from my gist that basically allows you to Re-initialize it and change the api key if you want to just you know in case you've accidentally leaked it to someone Then once you've copied all of that into a json file, which i'm doing right here Yep, this was me doing the past and i was really slow And then you just need to get to go to cloud formation go create stack you need to upload that file Now one thing Is that after you've uploaded that file you need to give it a name you need to give it a chroma api token This is the way that you would securitize That that api or the endpoint to this chroma db database And then you need to make sure that you have at least the t3 small instance or similar to be able to run this When you stand this up, there are a couple of things i will say it is a little bit deceptive when aws spins this up It'll say hey this stack has finished building But actually takes a few minutes to initialize after that because it will pull docker image It'll initialize everything and then needs to start up chroma db But once you've done Okay, you just need to make sure here we go Create complete And then we'll just connect to it One thing i want to go one thing on what you guys to make a note of is the ip address the public ipv4 address Because we will need to use that later. You can see that up the top in the middle up there And we'll just connect to it I can skip this bit. That's fine All right to test it We want to go back to the colab notebook and we want to go to the section called embed data for rag Make sure you install the python dependencies again and enter the api keys Right again, like I said, I'm going to be using open ai here So we can access a couple of easier models to get this going But we'll want to make sure we also then upload the data into that vector database to make sure that we can make that rag bot work This time we're using the same data when we upload it Okay But you want to make sure that you typically have the most up-to-date or relevant data For example in the future you might want to say put more posts in there, etc. All right There we go. We just need to copy the path put it into the data file And then that'll fill that up filled out for you and then it's now referencing that data You also want to make sure as I say the chroma host ip address is the ipv4 public address So I was talking about before Port 8000 is the default and then you can see that that's the chroma api token key Now chroma db handles sort of tables like As collections, so you just want to give the collection a name I'm just going over here Okay, and then as you'll see we're just uploading it there Just beneath to press play on that It takes a lot longer than I expected. By the way, I didn't pray to the Demo gods today and that's why they're being unkind to me. I do apologize Okay Now it does typically take a while for this to upload What's happening is there is an embedding model in the background That's chunking up all of that data into tokens and it's uploading it into the vector database Those those vectors, but as you can see now that it's done You see there's a new recipe collection that's come up called recipes final Then you want to test that by seeing how many items are in that So for example, my data set had 66 61 and you can see that there And then you also want to set it as a retriever And then also test that it's working, right? So in this case, I'm asking at a prompt what cake uses the most eggs and all it's doing at this point Is pulling the most relevant data. It's not creating anything new, right? This is what's called semantic search. Okay, and it's pulled back this particular making king What is it the the king mighty grot cake, right? After we've done all of that We want to chain this all together with a tool called lang chain That basically allows you to kind of connect all of these disparate pieces that allow generative ai to work And this is where you can actually implement or you can connect a foundational or a fine-tuned large language model To the vector data the base that we've just created. Okay Right, so we get that to work and then what we can do is we can ask it a question For example, how much flour would be needed to make 24 cupcakes now? Keep in mind This question or sort of 24 cupcakes in general is not something that was part of the original data set So this is where we start getting generative. This is creating an output where it tells you a very specific response Right with the data that's already provided. So you can see here to make 24 cupcakes You would need three cups of all-purpose flour Now, of course, you can't deploy something just from a notebook So we want to take this code and deploy it as an api server Recently lang chain basically the microsoft office of generative ai workflows Released a package called lang serve and this is based off a python project called fast api and it makes the Deployment of embedded large language models as api api endpoints much easier Again, you want to fill out the parameters as you can see there And you just need to copy all of this code into a Main.py python file in your code editor come up in a sec. So we'll copy that Into my vs code and we'll create a main.py file Okay By the way, my presentation also has ai running in the background. So I'm just praying with it. Please move along faster It has its own personality. Sometimes it doesn't like me very much, right? So what we're doing here or what it's doing here is creating a python environment to be able to run This this python file. We want to obviously again Install the dependencies for it. You can see it's up there in the first cell So you run that within the python environment again, there's a fresh environment. So nothing's on it just yet And then once you've installed all of those dependencies and this will take a little while because these are pretty big okay There voila and then you can invoke the main.py file now it should have everything it needs to run awesome What you will see is it will come up with a thing called lang serve there you go and then that allows you to basically go to a local server and type in your 000 out pay address in the port to access it If you go to the playground uri Which you can see I've done there You have a ready-made rag bot that you can start using as you can see There are a few iterative steps that it's going through to answer this question Includes getting information from the vector database and then it responds with some information to create the response to that question as you can see Cool, you can also continue to add queries to it as well And this will add to that context as well. So it'll refer to the previous Responses in order to generate the next output There you go awesome Now of course running lang serve locally doesn't serve production purposes No one's going to like tunnel into your computer and be like yo, let's use this as an api server So you want to be able to dockerize this and there are some intermediate steps that you need to take to be able to host that Image into say a cloud like a container registry and then again deployed into the cloud Now I've actually included all of these steps in the colab notebook So you can actually take these steps and that also takes into account if you're using say for example An m1 2 or 3 mac which has different architecture. It will work with that So please check that out in the notebook and you can get your own sort of api endpoint working but At the end of this once you've deployed your api server and connect it back to your wordpress site You can do what I've done here and which is create a custom block where you can ask it a question It'll go through the same steps and it will get you in this case a recipe for a chiffon cake Now on that same site like I said that you can ask it. Oh my time is up. So I'm going to go really quickly now But you can also see the playground the colab notebook and everything in there as well to get this working Throughout this whole demo there have been a lot of technologies that have been connected and together in order to make this work And so I want to call out a few resources that I used that may help you for example The website at containers on aws. This is actually maintained by the aws guys themselves So this gives you a lot of cloud formation templates to get started The second thing that you might want to refer to is the Chain integrations page and this has all of the integrations that lang chain puts together and has very robust Community created documentation if you are trying to create your own rag chatbot. This is perhaps the first place that I recommend you start Okay Finally, obviously there's a lot of code and a lot of work that goes into creating something like this So if you just want to get your hands dirty and just get going right away Something that I can recommend or a couple of plugins that I can recommend Miao apps create something called AI engine and this allows you to create sort of bulk Sort of content allows you to like Gives you a co-pilot to kind of help you create material or or create posts things like that The only thing with this is that it doesn't connect to open source models in the back end The same can be said for a new plugin that came out called AI power It does a very similar thing slightly more granular control But again, it doesn't allow you to connect to open source models This is the slide that you want to take a picture of okay So this here is the qr code to access the website rob stock kitchen Keep in mind if you all access it once the server will probably go down. So please try again later The password is fried terribles. The username is wordcam asia 2024 Okay All done Lots of phones going up sweet done All right, so once you've created the data and that's something to predict You can use kind of these methods to be able to stop say for example those large AI companies from scraping your website The first one is you can use some trip traffic analysis tool You probably already use that and you can use something like google analytics to see if anything weird's coming in Then you want to for example, disallow directives in robots text For example, this is the the file within your file system that tells bots what's to do what to do But obviously bots don't always respect that and so something you can do that's a little bit more invasive Is create ip and user agent this uh block lists in your web server Then if obviously you're human you don't know all the bots that exist out there If you can't you know Counteract all of them then you can rely on a bot management service Such as one that's provided by cloud flare and the last thing perhaps the most invasive thing Is using something like captures or javascript challenges one cool thing though That you can do is when you're protecting your images You need to do a little bit differently, but you can use something like glaze Which is an open source library that's been created by University of Chicago And the way that it works is that it slightly poisons the images that you have in your website You don't know like you can't tell any difference, but if you run training models across them as you can see 50 100 300 training runs when you request a dog you now get a cat when you request cubism you get anime etc All right last section we're going through really quickly So what will the future of ai bring for wordpress? So in plugins i see that there's already seo conscious material being created by plugins Secondly, there's going to be ai generated video coming out very soon If you guys have been keeping eye on things saura is a big thing right now And of course stable diffusion is coming out with their own model very soon as well Lastly for content creation There's going to be ai agents as null. Thank you for coming So said in his keynote these are going to allow people to create content with agents just using directives You don't need to give it any like Material yourself. It will do the research editing publishing for you For developers, they're not left out either Right you will soon be able to use vector databases like you use mysql databases They're already companies work on technologies to make them compatible for example redis Right and what that means is that you can stream usage data from your website Into these vector databases to create hyper personalized up-to-date one-to-one user experiences Secondly agents are also coming out for developers. In fact probably even faster for example auto gen GPT engineer These are things that people are already using today and they will allow you to create wordpress sites including plugins and themes custom functions Etc with no code only directives For large language models themselves. They're obviously becoming multimodal gem And i was the first one to come out obviously gpt 5 etc when they're coming out will do the same thing And this means that they will they will be a single model that accepts and outputs responses that will both visual audio and video Secondly These models will start to get more efficient and they already are for example They're starting to use sort of more efficient training mechanisms So they'll become smaller and more powerful not only does that mean that's going to live on your devices But also means that because they're more scalable they will be able to scale much larger and do crazier things With less power. Okay, and lastly these will all be chained together with tools like lang chain, but in ways that are No code or low code a lot of new tools coming after that So some key takeaways that we came away from this presentation one We saw the overview of generative ai We learned about what an lm was We saw the challenges that that presented and we also learned how to kind of build that together and create your own end-to-end rag chat bot what you can do today you can code with an open source generative ai agent You can fine-tune your own model right you can embed data And then you can get that back to your stack to make it work and finally if you don't want to do any of that You can use a plugin But there is one more important message that I want to leave with you guys today This is the call to action and I think this is about how wordpress can affect the future of ai itself Now we know that this is the beginning of the ai journey Eventually everything is going to be embedded with ai from websites e-commerce stores serums. You name it your phone right But one of the things we found out in this demo is that data is everything Right and what has some of the most data in the on the internet? But wordpress right wordpress is still over 40 of the web right and so I say that wordpress will shape The future of generative ai and in doing so I give you guys a challenge My challenge to you is to tune and embed your own open source large language model to create unique differentiated digital experiences Right so that we can all add some color back into the digital commons As wordpress wants democratized website creation Open source language large language models will democratize code and content creation Thank you Thank you so much Robert. It's a very cool slide Now we are open for questions and answer q and i can i'm at the tunnel really mad Thank you. Uh, so thanks robert very insightful on the um Topic of efficiency efficiency of training models. Um, you and I we both obviously just use uh When we train models we retrain the whole model Yes, have you tried uh more Like q laura or something like that. Yeah or more deacons or models that are actually able to do um training on incremental steps, so we don't have to train all the models again on that case, um If i'm going to be honest, no Right auto trained by default the reason why I didn't play around with the hyper parameters Is it already actually uses peftan q laura? So it can actually create like really quantized and efficient models But no, I haven't done incremental training yet. No, okay. Thanks Hi, thank you for it. Um, I'm the now ms student in machine learning and Especially for speech signal processing Also the reason about the logic about lm um, i'm curious about the data denoising because uh, first if we want to train the lm Especially it's a transformer transformer based model. It needs a lot of data. So it's it's it for a Challenge for an individual to train their own lm or it's more capable for a big company because they have more data They have multiple maybe hundreds of waves world-class waste item. Yeah Really good question and the answer may surprise you. Uh, so Obviously, I work for a reason really large company, right? And we also, you know deal with a lot of data This particular example obviously is built off like one word per site Which has a pretty limited data set, right? And let's say you want to augment it using something like caggle caggle's already denoised, right? That's that's a very, you know clean sort of source of data that you can refer to But let's say you're trying to get data from let's say you're you work in a large company and they're thousands of users that are like importing data into like sales force and Whatever other analytics tool or thing that and and none of it is clean that conversely like sort of Contrary to what you might believe large language or large companies probably have the biggest problem with data denoising Okay, and it's a problem if I'm going to be honest that we haven't quite solved yet Okay, and so my suggestion to people if they're kind of want to sort of experiment with large language models Don't start with a really large data source first start with a clean small data source You want to obviously validate your models first, right? And then you need and you need to create from scratch a data pipeline Which builds into it denoising as part of the process before it gets into a data lake Because once it gets into a data lake and it starts building up, right? And you haven't put any denoising into it and a lot of companies have done that They've just thought let's collect all the data and then worry about it later Bad idea, right? Because if you can't access or use that data, then it's pretty useless Okay Hey, Robert. Hi, Michelle. So I logged into chat gpt and said what is a question to ask a speaker about generative ai? This is dangerous And this is what I came up with what potential ethical considerations or safeguards Should be implemented when deploying generative ai models in real world applications This is a Thawning question. I'm so glad I didn't have to think of it myself It well, here's the thing. So I don't know if you guys have been keeping an eye on the news Obviously google gemini recently had a bit of a boo boo, right where it was creating Images which are a bit problematic from a historical perspective. I'll put it that way, right? um Now the reason why that is the case is that they did a similar thing here in that when they when you give it an input It actually shapes that prompt by adding additional context and one of those contexts was to try and create ethnically diverse and gender-neutral outputs, right? Unfortunately, if you ask it to give you a nazi it will give you a gender neutral and you know ethnically diverse nazi, right and that doesn't obviously Jive with historical accuracy and so it's really really important to and this is the case for anyone who is implementing Generative ai technology into their own sort of corporate environments is to test red team Make sure you provide proper context make sure you use a test You will never oftentimes you won't know what a user is going to put into a prompt And so really the only thing you can do is try and brute force it and and get as much data as you can about What people might use it for because once data is in a large language model? It becomes a bit of a black box, right? It's basically like if you put something into a soup you put carried into a soup It's very hard to get it back out Okay Hey, robert. Hi important talk very really great talk if If any ai belongs in core, what is it? oh Like what initiatives do you feel? Okay, this should be closer to core as opposed to you know the fun experimental stuff on the outside What is the foundational stuff? We should have in a project that we can potentially then build and extend on or have as point features. I think If we go back to the point of making WordPress as accessible as possible, right? Getting more people to use it because that's part of the point of getting to 50 right? You have to get more people to use it Sometimes The way that the WordPress ecosystem has developed now, especially with the fact that everyone kind of does their own thing a little bit Is it can be a little bit disparate? And it takes a lot of research a lot of testing in order to figure out what you want to do Right, and I understand like for example. No, you said hey, there needs to be a curated You know place to put all of this right maybe a way that we can assist that You know is by getting the data about what is most commonly used by new WordPress users putting that into Say or providing context to a large language model and then giving an interface to new use and say hey What do you want to build? Right just like you were saying and it might output Hey commonly when you want to build a new say blog for yourself This is what other people use right and that might just be the start What I see in the future right and that might be just the the first thing you bring into call What I see in the future is that obviously agents are being created now and part of agents is creating tools, right? Tools and plugins have a really really similar Kind of function in that all they are is basically scripts packages things like that that allow you to Do certain things so I can see so for example the ecosystem of WordPress developers out there or in this case maybe You know generative AI engineers right creating these tools putting them into that marketplace, right? And allowing and creating the agents to be able to use them and all the person needs to do and go I want to do this. Oh, well, there's an agent in a tool for that Let's create a workflow for that right there is already pipelines out there allow these agents and tools to work together So that's something that you could implement into say called later Thank you so much Robert. I think that's a question for today I believe if anyone else have any more questions, you can always go to Robert Later today at the conference. He will be happy to discuss with you. Okay On behalf of work in Asia, we would like to give you this. Thank you gift. Thank you again Robert for this amazing presentation Thank you so much Oh, okay Our next presentation will start on 12 Sorry 11 11 sorry, sorry What do you want me to say? Oh, I think I can hear me. I hear me out there Yeah, perfect. Okay Morning ladies and gentlemen. My name is Amy or mc for this section Our next speaker is Michelle fresh it from Rochester, New York, USA She's a director of community engagement at stellar WP and the executive director at post status In her talk, she will emphasize how the diversity within the wordpress community Enriches us all She will highlight the importance of ensuring Inclusivity and welcoming everyone to participate fully. Let's welcome Michelle fresh it Good morning. It's so good to be here and thank you for joining me today As Amy said, I'm going to be speaking to you about under representation and allyship today And I want to give you first an opportunity to participate in allyship Many of you may have seen I do a selfie challenge At word camps where I ask you to take a picture with me And tweet it or post it on social media with the hashtag Michelle and me And what I do is I donate money and other people donate money and other businesses donate money And I use that money to help under represented speakers and organizers attend word camps So here's how you can participate take out your phone Take out your phone Turn around and take a selfie with me in the background And then tweet it or post it on linkedin or any place with hashtag Michelle and me And you will be helping Thank you See we start today and you already have an opportunity to help which I think is wonderful So thank you. Thank you for participating So what is under representation? We are all part of the human race And we are all very individual So somewhere between everybody is a human and I am just me Lies under representation So here I am on your stage today as an older disabled purple-haired woman Now not all of those qualify me as underrepresented Perhaps I am underrepresented that I have purple hair But that doesn't hold me back from doing the things that I want to do and society although they may think it looks strange Doesn't say she cannot participate because she has purple hair But there are other parts about who I am and who each one of us may be That causes people to say She doesn't be long hair first she Right there still is yesterday was international women's day And there's still so much we need to do to help women progress in technology and in other Fields that they may choose to participate in I am a disabled woman. There are so many places that I cannot physically access This word camp has been wonderful. There's ramps for people like me There and the hotel is perfect and everything I have not encountered any issues But there are other places in this world where I have a lot of difficulties word camp us two years ago Was an an incredibly difficult time in my life The doors to the hotel did not open by themselves The the door to my bedroom at the hotel. I could not get in and out by myself There wasn't a handicapped shower. I didn't have a way to get in and out of the bathtub I encountered so I got locked in the back stuck in the bathroom of the hotel lobby Because I couldn't reach the door To open it to go out and I had to ask I had to call somebody on my phone to say Can you let me get out of the bathroom, please? Right? So there's lots of things that people like me Using mobility devices have difficulty with That is one Way that you can say that I am an underrepresented person I am older than most people in technology This is where you all say you don't look old Michelle Thank you. Thank you. I I just love you all But I am 55 years old and working in technology, which is Fairly old for a woman in technology And so that sets me apart as an underrepresented class So I'm a woman. I'm disabled and I'm older. So all three of those things apply to me I'm part of the human race I am sitting on this stage with crocs on and I am the only person in this room For whom that is true, but that doesn't make me underrepresented. It just makes me unique today So you have to look at all of what what makes a person and what that person Is all about them to determine if it's underrepresented. So that's what under representation means What is allyship So my computer doesn't even recognize allyship as a real word, but I promise you that it is Allyship can also be called advocacy. There are things that we can do within our sphere of influence To help affect change and acceptance for people who have underrepresented classes And that's what I want to talk about today Is how we can do that and do that better to help others be able to fully participate In wordpress specifically In technology for sure But also in life in general and every single one of us regardless of our own underrepresented status Can help other people with their underrepresented status as well So the first thing we talk about is inclusion for underrepresented groups I want to talk a little bit about underrepresented in tech have is anybody here heard of underrepresented in tech already So underrepresented in tech is a website that allie nimmins and I started Three and a half years ago She and I she's a young black queer woman So she has underrepresented statuses as well, especially in the united states And I as I already said who I am Decided that she is in her 20s. I was in my 50s We had all of these little boxes that we could check off that were underrepresented And people would come to us as people in the community Who have loud voices And say do you know somebody who's black that could speak at my conference? Do you know a woman who I could ask to speak at my My meetup or do you know somebody who's disabled or blind or Fill in the blank that could maybe maybe be part of my podcast So that things weren't always looking like it's just white men in technology And so we started to talk about gosh, how can we help? Fill this gap where people are looking for people. They're trying to be more diverse and inclusive But they don't know how to do that. And so we started a spreadsheet And we started a spreadsheet of all the people we knew that had some sort of underrepresented status That we thought well, I've heard that person speak before they would probably be okay if I gave their name And after about a week of populated the spreadsheet with people that we knew We realized that the people that we knew weren't a big enough pool of people And also may not want to be included And that's where underrepresented in tech.com became something that all of you could access So anyone who is an underrepresented person Can opt into that database and then anybody who's looking to be more diverse and inclusive Can search the database and invite you to work for them to speak for them to be on a podcast to whatever it is that you need And so we now have a database of I think about 200 people who've opted into that Who have got jobs who have been asked on podcasts who have logged for people Who have done short-term jobs and all of those things because they were in the database and somebody else could find them We don't charge anything for that Anybody can be in the database anybody can search the database And now we have so many more people than we ever could have known personally Who could help Fill those spaces and take advantage of opportunities that are afforded to them So that's how it started with us just saying why don't we build a spreadsheet to building this whole big Project that now also includes a podcast where we talk about what it means to be underrepresented where we talk about Struggles that people in different Minority groups within certain parts of the world struggle with where What it means to be fat shamed or ageism or any of the different things that people might encounter as a difficulty or Honestly, sometimes just hatred and you can feel that To be able to be included in the things that they want to be included in so we talk about that on a regular basis Had a little bit of a hiatus Ali stepped away from the project at the end of last year I have a brand new co-host That i'm not going to tell you who it is yet because it's a big secret coming out at the end of the month But we're picking up the podcast again, and we're going to be reinvigorating the project with my new partner Um, I think you will like her and she's not from the u.s So we'll have more of an international flair and be able to talk about under representation More than just the united states. So i'm very excited about that We are not charging anybody for anything We sometimes people want to donate to us so that we can pay our servers and those kinds of things But we don't even ask for donations. It simply is it exists It's not a 501c3. We're not asking for donations But we want it to be available to people at some day when I retire from Being who I am and just decide to watch birds and cats all day long I hope that somebody else will pick this project up. I will gladly hand it to them so that it can continue That is one way to practice allyship. Do I think every single person in this room should start a podcast about it? No, that's not that doesn't make sense, right? That's one way that I practice allyship is to learn about people and share those opportunities But every single one of us has an opportunity within events products that we create whether that's a digital product or not projects that we run the teams that we have And creating inclusive and dedicated spaces. So let's talk about that a little bit Events is one of the first places that we have noticed over the years Even before we started underrepresented in tech That there was exclusion for people. I am going to be honest and tell you I don't even remember what what What event it was, but there was an event about five years ago. Maybe six years ago where they had 10 speakers And they were all men And enough women said This is ridiculous And they started to talk about what was happening there And they then the the organizer said oh my gosh, we didn't even realize because it's it's is possible To be exclusionary and not even realize you're doing it because you are so used to working within the groups that you work in And enough people started talking about it that some of the men dropped off the team the speakers team And they started inviting women and none of the women were like no, I'm not going to be your token woman Now that you've had all of this problem gone. So we have to look at how we can create opportunities for people to be on stages To be on organizing teams to be on podcasts and all of those things So but you have to do your research to find out who can we reach out to how can we do those things? we Talk about the fact that when you have an event like a word camp We simply put out a call for speakers and cross our fingers and hope that the right people will apply And that we get some nice gender diversity and ethnic diversity and ableism diversity and all of those things But is that enough and so one of the things we talk about is you can build something like a word camp or any other event And put out a call to speakers and have as many people apply as possible But you can always also ask people to apply Now when you ask somebody to apply are you guaranteeing them a spot on the stage? Not necessarily But you're saying to them we want to hear your voice and we really hope you'll present a topic That will fit with what we are presenting what our overall theme is And we would love to have you if that all works out So now you have an opportunity for more people to apply to speak And that's where you start to build that that inclusion and see more diversity on stages like word camps And I think we've done a really good job Especially here this word camp has always been so diverse so many women so many opportunities And it's been very exciting last year and this year to see that happen But what does your call for speakers look like if you have let's say you're putting let's like Put word camp to the side for a moment if you're just building an event for yourself and you're using I'm not going to say AI generated images That's roberts department if you were here for the talk before but if you're using images like from stock photos What am I seeing in that stock photo am I seeing myself? And it's important that in the imagery and the language that you use on your call for speakers That anybody who's thinking about speaking Sees themself and sees the possibility of themself in that space I once was asked what some of the work we've done over the years is look at other companies who hire us To say is my application process to work at my company? Diverse Why are we not seeing more women apply and so we've been able to look at that And one of the things I've talked about is there is there was one application that I saw Where as you looked down along the application It said things like it gave the job description and then it said if you think you might be a good fit Please apply below well to somebody who is not Totally confident in the space and for many underrepresented folks that may be true if think might Stop them from applying right there. So the language that we use matters Products I love to talk about products. So Products should be available for all user groups not just the people who are creating them Back in the 50s and 60s in the united states especially this is where I'm from So please bear with me if that's my experience But in the 50s and 60s they sold vacuum cleaners with advertising of women in high heels and pearls smiling will they clean their house and Men bought those vacuum cleaners to make their wives happy Now of the women in this room Is a vacuum cleaner what you want for a gift at christmas or your birthday or valentine's day Not usually maybe a rumba so I don't have to actually vacuum But other than that no right so in the 70s when more women were joining the workforce And going and going to school for marketing and joining marketing and advertising teams They said this is not why we buy a vacuum cleaner Because we can wear pearls and high heels and a pretty little dress to vacuum our house I want a vacuum cleaner that'll clean up after my children and pick up the dirt that my dog drags in And so the advertising around vacuum cleaners changed so that it was dress addressing The pain point that we're solving Cleaning your floor as opposed to how happy and pretty you look when you're using A household doing a household chore So when we think about including People who will use our product in the design of our product We have better opportunity to sell that product too So if you are designing and you're including people in the decision making process in the design process In the advertising process who don't just look like you you have a much better opportunity for success As I say unlike can everybody look at themselves and see themselves using your product But if they look at there and they see not so much Also, how many men do you think did the vacuum cleaning when they saw that it? You should be a pretty woman who is doing the vacuum cleaning right so the whole idea is that everybody should be included But we also have better projects So I have a couple of podcasts you may have heard of some of them and I am very careful Um and not even on purpose, but I have always been inclusive in the podcast So I have wp coffee talk is something that I've done for several years now And I have spoken to people all over the world on Six continents, so if you know anybody in Antarctica, please send them my way But six continents in over 27 countries have been on my podcast and so people who want to speak on my podcast Have seen other people that look and sound like them and that's it has to be in English because that's all I speak I'm sorry, but you speak English. You can be on my podcast The blogs podcasts workshops webinars all of those things Are being more inclusive means that you are appealing to a wider audience as well And you are talking to people who bring diverse and wonderful experiences to those conversations We also develop better teams. How are you recruiting your teams? I talked about that application process What does it look like? What language are you using? Are you encouraging people to scroll down and fill out that form? Or are you are you discouraging people from doing that? You would always I would rather have 500 applicants for a job than five applicants for a job because I can choose from more diverse pool I can look at more people for their qualifications when I'm looking that way It should be easy for people to find your application It should be easy for them to fill it out. You can always ask for more information But looking at those kinds of things what time of time of day are you doing interviews? Um, how are they accessing emails? How are you doing all of that process makes a difference to bore inclusion? And then we should and can develop inclusive and dedicated spaces Safe spaces for underrepresented folks And this is something that I think wordpress has done well and continues to do well But can continue further to do well. So for example For several years now black press has has existed There's a slack channel that they a slack community that they have blackpresswp.com is their website. There's a wonderful inclusive robust conversations happening all of the time And it's also open to allies So I am privileged to be part of the slack community for black press But as a white person I also Just provide resources and not opinion because it is not my job in that group to try to control anything or to Have opinions about things because it's not my Underrepresented group. I don't fit there that way But I bring to that group resources. I post job opportunities I post calls for speakers and things like that that I'm aware of so that other people in that group I'm showing my true ally ship for last year Uh word camp phoenix I gave a similar talk to this and I talked about black press And as a result of that three different people at three different times Approached me in the afternoon and said is there a space like black press for the lgbtq plus community? I Spent a few hours that afternoon doing some research and discovered there wasn't there wasn't a safe space like that So at the after party sitting at a table with people from the community And uh some people from a hosting company. I said let's let's do it. Let's make it. I will be a resource I will help you get it started and then I will back up and let the community run itself So we created lgbtq press.com and there's a slack community for the the rainbow community as I've heard it sometimes called the lgbtq Plus community All of all of the people who fit in that demographic and want to be included Have a safe space that they can work with one another to promote each other and have Share similar experiences and ask how you would handle something and all of those things But have a resource group for one another as a safe space. There's a ladies of wordpress Slack community that you can be part of if you're a woman There are underrepresented gender release teams that we've had at wordpress. So we've had two of those And those have been wonderful to participate in so anybody can participate in those as well The important thing is to ask yourself Do we have safe spaces for the different communities that might need those Might want those to be a resource for one another and to find that support That only somebody in that community would understand the need for And how could we create those safe spaces if you see a need and you don't see a solution You can be part of the solution and helping create that as an ally and that's what allyship is about How can we do that in tech? It's interesting, right? So like my college when I went to college back in the 80s We had It was called what was it called then it was the I can't remember it was like an african-american resource group for the college students And I remember thinking well We don't have white groups for people and then I was like, oh right that was something they did in world war two We shouldn't do that again So you have to be careful about what kinds of groups you do create too Because it should always be to help and uplift people Who might not already have access to those things within themselves And we can do that in tech because we do work remotely We can create safe spaces like slack. We can create websites and have these wonderful things We can have zoom calls I've been privileged to sit in on some of the zoom meetups for the black press community And just be a resource and when they say we don't know how to do this We don't have access to this. I say well in my role here. I can give you access to that I can provide hosting. I can do other things And be able to be a resource to that group and it's a privilege for me to be able to do that But we can do that also within campuses and core and corporations. My daughter is a black woman She is a 32 year old woman who is in banking and on the weekends She's a really awesome dj and she is the president of the north american african american resource group for her bank And I watch her and I think I want to be like her. I want to be like my daughter I want to do the things that she does to make the world a better place So if you can find somebody who's doing those things if you don't know how to start and you don't know how to do it Find somebody who's doing it already and watch what they do and ask questions and emulate and be a safe space for others too Not all things are equal This is very specifically u.s. Base because that's the information I have but it gives you an idea Equal payday is the point in the year in which a woman makes as much as a man did the previous year So all women Will make approximately the same amount of money for the same job As a man did in one year In a year plus march 31st For asian women in pacific islander women. It's february 11th. I don't know why y'all get it better than us, but it's okay It's okay For black women it's not until august 13th Native american women in the u.s. October 1st and latina women. It takes almost two full years For a latino woman in the united states to earn the same amount of money for the same job As a man did in the prior year and that's not fair. We need to do more to even that playing field We talk about the proverbial table people say make more room at the table Guess what the table is not real The table can be as big as we need to nobody has to leave the table for other people to be able to join the table Nobody's kicking you out because we want more more representation at the table We just want to be there with you and so everybody can make that table a little bit bigger. You can always make more room No such thing as crowding when I was a kid we have Thanksgiving in the united states You've probably seen pictures of it and Thanksgiving was when all the family would come together make a big turkey There was never enough room at the at the big table and the kids had to sit in the kitchen Or at the coffee table and all these other places and get relegated to other places in the house But this table is big enough to include everybody because you can make the table as big as you need to And we can have more than one table. There's plenty of space We don't have to feel threatened ever because we're making room for underrepresented folks to join us But allyship requires intention Is your intention performative or tokenizing or do you really have a heart to help people? If it's performative and tokenizing Look inside yourself And do some work so that it's no longer performative and tokenizing But truly intentional to help other people Understanding your privilege is so important. I'm a white woman in the united states I have more privilege than my daughter who is a black woman And I recognize that and I do what I can for people like her to be able to have the same privilege that I do Do the work to create those supportive and open and inclusive environments Understand what the barriers for participation for others are so we can lower them And then ask yourself How can I create opportunities for other people? Because those of us with more privilege really do bear the responsibility To share that privilege with people who don't have as much as we do And I have some resources for you and I'm on time, which is amazing, right? Okay Underrepresented in tech.com There is nothing that you need to do other than use it Join it. We are not asking for anything. It's just a resource to serve for you WP career pages is a place where you can go look for jobs I created that as a resource for people to help wpspeakers.com if you want to be a speaker In wordpress you can join that database for free as well And when people are looking for resources for word camps and meetups I I'll tell you a secret I created wpspeakers.com Because I was looking for people to speak in my meetup and word camps that I was part of And I thought if I'm having the difficulty of sourcing people Others are too. Let's create a resource for that. So use it Become a member of it if you want to be a speaker and if you are somebody who's Finding speakers for your event. That's a great resource as well Lackpresswp.com is a wonderful resource on the lgbtqpress.com I am available on twitter slash x at michelle aims and my email address is michelle at stellarwp.com I welcome any questions you have if I can help you be a better ally I would love to do that And that's Thank you so much michelle for taking your time to share this important topic with us Now we are open for q&a I always say if there's no questions. I did a really good job explaining it to you Yeah, I just had one question about considering recent events in the u.s With many companies wanting to be inclusive especially in advertising and advertising What's your opinion on on on that and how could companies what could companies do to sort of mitigate the The backlash that especially with like the recent but like controversy Or do you think corporations should not even be involved in Trying to be inclusive in in that way trying to Actually actively be inclusive So I'm always going to advocate for inclusivity And I think that every company should try to be more inclusive, of course I think that when a company gets backlash they have to do some internal They have to really think about Where they want to go and what they want to say publicly So with the bud light backlash if you're not familiar with it Last year bud light put a trans woman on the can for for a bud light beer And there were people who were buying their beer just to run it over with their trucks To make a statement about the fact that a trans woman shouldn't be on my beer can, right? That's just dumb, right? But it did affect their bottom line Because even though those people were buying beer to destroy it other people were influenced by that good old boy southern racist transphobic Community and it did affect their bottom line for a while. I haven't checked yet to see if it's come back up I I probably think it has because people are really Loyal to their brands at some point in time. And so when that image was known when dylan's image was no longer on the can I'm guessing that those made their way back into their refrigerators But that but bud light didn't come out and say we made a mistake And I think that's what was most important is to stand by what you do And pivot so that you say well, those are not the people we should be selling beer to Maybe these are the people we should be selling our product to and see what ways they can do that and trust that I mean, they weren't going to go bankrupt because of one campaign, right? So it was one of those things where they just had to evaluate and move forward Um, and I think it's going to look different for every company exactly how they do that But I would hate to see companies back down On making important statements in our world Because of the the force of negativity that would come as a as a result of that One of the companies I've talked about On the podcast with ali that i'm a crier so just so y'all know But etsy has done an amazing job over the last few years of inclusive advertising around the holidays So much so that I see the like One of them is a little girl who is an asian girl whose name is unpronounceable by her teacher, right? Her teacher doesn't even make the Effort to pronounce her name But her mother gives her a necklace with her name on it and like I get goosebumps Like I see that and I get goosebumps. There's a another with a couple who are um a gay couple and He and they're going to the one person's parents house for Christmas and he's so nervous about meeting his His partner's parents for the first time and how will they accept him? Ah, I'm gonna cry, but they they give him a gift. He opens it up and it's a hand Created image of the two of them to hang on their Christmas tree I just blabber like an idiot when I see that because I love the inclusion Are people not buying from etsy because of those commercials? Maybe but etsy doesn't care because enough people are seeing Their intent in their heart to be able to do that and so if your brand takes a hit for a little while Cheerios had the same thing. There was an interracial couple and so many people decided they were gonna Boycott cheerios because a white man shouldn't be married to a black woman. Oh for crying out loud That's not true, right? And so they took a little bit of a hit in a certain socioeconomic Classes and then they continued what they're doing and they're just as good as they ever were So I don't know if that really answers your question, but I think it's really something that is a case-by-case situation I wanted to return back to um an experience you shared about joining the african-american group and you were like providing resources So I was curious about as an a potential ally who is Doesn't feel like you are a part of a group. Where do you draw the line between? Kind of standing back and then like providing resources objectively but not providing opinion versus actively trying to create spaces to discuss These sensitive issues like where do you draw the line? You make mistakes? I've made mistakes I've overstepped my bounds before and that's when I learned and when I come when I approach with the right heart I'm usually forgiven and corrected and as long as I have a big enough Small enough ego to be able to accept correction that I learn and I move on in a much better way Um, and then also look at see how other people are being allies and emulate what they're doing Um, but you will make mistakes, right? We make mistakes in our lives. We do Most of what we do doesn't affect other people and it's usually more embarrassing for us than them So if I overstep, but I was like, oh, you should do this and they're like, thanks, michelle That was a nice idea. Go back to your corner and you know Nobody says it that way But that's how I feel right when somebody says that and it can be very embarrassing and it can make you want to Just withdraw from the group But most people see if you're approaching with a good heart And you're learning how to be an ally. You should never stop learning how to be an ally every day I get better at it every day I still make mistakes if it's if it's just in my own mind and I correct myself sometimes But as you work on allies you get better and better at understanding where those invisible boundaries are And I have really trusted friends in groups that I say Would this be helpful if I suggested this to the group now? I never ever rely on a black community to educate me about blackness. That is not their responsibility But I can ask a trusted person Should I offer this or is this overstepping and that trusted person will give me advice because they know that I'm trying to help So it's really just trial and error and being okay with being embarrassed and making mistakes Thank you. That's a great question Yes, hi michelle. Thank you. Um, I was wondering if you know if there's Something like black press or lgbtq press for autistic people or maybe even disability in general I'm not aware of one But just like last year at work at phoenix come see me at the after party and maybe we'll get one started because that is a great Opportunity now. I'm not going to run this one. I'm not I'm not running any of them first of all But I can't be the resource creator for everybody But I can certainly give you some tools to get started and I could find you a hosting too. So talk to me later Anybody else? Thank you so much for being here with me today and for listening And for trying to do better and be better as you go forward from today. Thank you so much Thank you so much michelle. So if anyone have any more questions or Anything you want to discuss with michelle? I'm sure she will be happy to talk to you And you can always catch me at any of those places as well Take pictures Okay, perfect. Thank you michelle on behalf of work camp. We would like to give you this gift bag Thank you so much Anybody want a picture? Thank you. Thank you all for being here. Thank you Thank you ladies and gentlemen now will be break time lunch break Check check. All right, I guess everyone's here. I'll just introduce myself Because it's good to introduce the mc who's going to be blabbering a bit before the actual talk starts. Have you guys had lunch? Okay, that's not loud enough. Have you guys had lunch? Okay, no, I literally see a nodding. No, well, you've got to go have lunch after this. Okay Okay, so yeah First of all a huge round of applause for yourself for being through all the talks and everything because you've obviously sat through all the talks And you've obviously enjoyed them. So please give yourself a huge round of applause Yeah, that was just a test to see how energetic you are. So can we have a huge round of applause for yourself? Okay, I'll take that one. That's a 10 decibel more than what I heard earlier. Okay, cool So my name is ashito shall be the mc for today and the speaker I can we put up this slide for the speaker, of course Yeah, so Our next speaker as you see on the screen Benjamin Benjamin has been You know doing wordpress website since 2010 that is literally six years after wordpress came into existence So trust me this guy has seen all the wordpress versions Mostly all the wordpress versions at the moment he's working with gambit technology and there are the people behind stackable Wordpress, you know builder that wordpress, you know block builder that is being used by so many people and benjamin himself Has launched many plugins which have been used across the globe by 150,000 people like more than 150,000 people. They're being used out there. So Among your applause, I'd like to welcome benjamin on stage. So please give your hands for benjamin who will be talking about This talk. Thank you Thank you so much So welcome to my talk. It's how to achieve an efficient workflow with the site editor and the block editor So, uh, as he said a while ago, I am benjamin ental. So I'm the founder and the developer of stackable and WP interactions, which is a new plugin that we're coming out with I've been developing with wordpress since 2010. So And if you have any socials so you can find me at bf ental at almost everywhere So our agenda for today Is first I'll talk about who is this for? Why do we even Need this kind of talk and how do we actually achieve an efficient workflow with the site editor? And the block editor and how about uh, what if we're dealing with multiple websites? So who is this talk for so we're definitely not going to talk about database stuff. There's no performance optimizations now no coding standards It's not about how to manage multiple websites or the best cowboy coding tactics Although if if you're doing this, just make sure you have ftp access And then So show of hands who here has built a complete website with just the site editor Okay, just a few so hopefully after this you pick you might want to try using the site editor So this talk is for people who are using Or you want to use the site editor and the block editor and you want to get good at it And it's for people who are already designing entire websites And it can be also a primer if you want to get started with it So my goal with this talk is for you to at least say once. Ah, I didn't know that you could do that So this talk is just actually quite simple I'm here to give you some actionable tips That you can use in your day-to-day life when using the block editor and site editor So when I was thinking about the topic that uh to share with you here in wordcamp asia I was sure it was going to be about the block editor and the site editor because in my day-to-day life with being the Head of the dev team in stackable, which is a block plugin and wp interactions, which is also a block plugin If you look at my screen, it's always going to be either the login screen of forward press because it logged me out Or it would be the block editor because I'll be just there fixing bugs with our blocks Creating new features creating new blocks and tinkering around and exploring what are the new things so over the past couple of years I've learned the thing or two about how to be efficient when dealing with blocks So we've I've been doing this since the beta of Gutenberg back in 2018 so I thought I could compile everything that I have learned and share with you So I think we need a talk about efficiency in the block editor because These two have changed the way how we do things I won't go into the entire history But for so long we've been doing the same things Um over and over again using the same type of tools But now things are changing and they keep on changing So the block editor and site editor have been here for quite a while But they're still constantly changing and they're constantly being improved all thanks to the help of the contributors Which are who are all doing a phenomenal job? Things that are hard to do before are starting to become easier And but if you just look at it from the surface the block editor still looks the same as before But a lot has changed under the hood So how does it What does it mean if we want to achieve an efficient workflow? So it's definitely not just about speed it is about speed but not just because if It's all about speed then what you can do is just use one of those new lightweight mouths that are hollow And then just practice clicking and increase your average clicks per minute But it's also about making things less of a hassle achieving things with less clicks and To have a more enjoyable editing experience It's definitely not about memorizing a bunch of shortcuts because that's a bit boring And honestly I find it a bit hard to memorize a lot of shortcuts, especially if you're not using them all the time For me an efficient workflow is a smart way of doing things So imagine the time before when we didn't have the block editor yet or the site editor What does it mean to be efficient? So we have our header and footer and template editors Block, I mean page builders and template editors handle this very well They helped us achieve efficiency And then to make building pages quicker we use templates So you can use those as an easy starting point to build our about us pages contact us page And then if you needed a good team that had loads of good settings in the theme customizer And then you have your trusty short codes. So we basically had to Work around the the classic editor because we Essentially needed to lay out everything inside the text editor So we had to use short codes So if someone's watching this from the future if you don't know what short codes are They are kind of like html, but you use square brackets. So it's simple But the more arguments you have it gets more complex So page builders also gave us a good Rescue over there by giving us new uis so we can create them easily And you have code snippets because WordPress so customizable so pluggable and sometimes we just need to add some Tiny changes to suit our needs like disable the admin bar or disable search So or add the papal button So personally what I did before was I created a custom plugin that contains nothing And then every time I need a custom snippet I'll just plop it in their cowboy coding style But I made sure I had ftp access And then lastly custom fields. These are just powerful efficiency tools Which are data and then are optionally tied up to a post so these are This made things very easy when we're creating templates. So this is the classic way of being efficient Now if we're doing the block way These are the counterparts. So for the header footer and template builder You have your site editor and then for templates you have your patterns the customizer is now the block team settings Short codes are now blocks and the two are still the same So I made it the four points here color blue Because that means that these are the only things that changed So if you were efficient before and you're hesitant to change the blocks And now you're using blocks. You just have to be efficient in these four areas and you'll be As efficient or even more efficient than before So how do we do this? Let's move on to some actionable things. How do we become efficient with the site editor? You can think of the site editor as like the foundation of a construction site I don't know anything about construction, but I saw this picture and I wanted to use it So but in my imagination If you prep it right then it would do wonders So the the site editor replaces our header footer and template builder And our theme customizer. So it's a biggie My first step would be to use the default 2024 theme So using this gives us three things Since it is a block theme it unlocks the site editor Number two, it's specifically made to leverage all of the cool new editor features we have in WordPress Now and what's coming in the future And number three the default theme is a chameleon and it's the picture You can change it in so many ways and you can use it And you can change it into virtually any type of website If you take a look at all our past default themes The earlier ones are definitely made to be For blogging sites and then you have 2014 which kind of looks like a magazine site And then afterwards slowly Slowly where it's like we're transforming into a cleaner and more modern minimalist look And those can work As a foundation for let's say a client site Although You really had to use plugins and add some custom css code in there So that you can change things because if not they will still look like the default theme So you'll still have a semblance That you're someone's using a default theme in a client site But for me 2024 Is it's like it was meant To be a starting point or a foundation for a new site So here's the site editor for the default theme By the way, the screen captures are from a beta version of wordbest 6.5 I placed a qr code over there if you scan it It opens a wordpress playground for 6.5 beta So what's happening in the screen right now is we're scrolling through the different Styles that are available in 2024 So this is just a default theme and you'll notice that the the colors are changing But not not only those even the the font and the bottom size and the bottom border radius are all changing So it's not just colors And these are the only preset styles But you can use them as the starting point And customize them So let's say I pick the black style And then when you click on the pencil icon You can further customize things in the style panel You can change your text font text colors button colors Now these changes aren't just local in this site in this Screen, but it's available across your entire site So these global changes are what's essential to making your workflow efficient So whenever now you add a new heading block or a new button block Then they would also get all of these changes So my next tip is you can adjust the appearance of all your blocks So if you click on the blocks area, you'll see all of your native blocks And You can select one or you can from the side or you can select one in the middle in the editor And let's say I want to edit all of my buttons. I just click on it And all of the button settings appear and I can change any aspect of my button block And you can even go further And change or add some cost of CSS specific only for buttons So right now I am editing The padding sizes, but I can also add a box shadow I don't know if this looks good, but I added the box shadow that's white so that it's visible So now the button has a white box shadow and after a quick save Then all the blocks would have these adjusted styles And then the best part of this is If I'm adding a new button block it would also have the styles And when I add a new pattern and then that pattern also uses the block at the bottom block Then that would also have the styles So this one I'm gonna choose that one There so it's everything's global Next let's jump back to colors. So we've picked a dark color style And then by picking that it changed our entire color palette Now this color palette is it only something that's used to pick colors It's also it also has a global check up its sleeve So these colors correspond to something in the site And these are all global as well If you change something then the rest would also follow suit So let's say I'll change this base color here Now if you change the color for this lot you're not only just changing the slot But you're also changing everything that uses the color So this is another way to style things globally Alternatively instead of changing your existing palette you can add a custom color So this custom color isn't also just a slot. It also has some global powers So when you use that color In your blocks, let's say this heading block and that button block Then those colors would also have the global effects So you can change the color afterwards if you need some tweaking And then everything would also follow There I'm changing it to I think green and then blue and then they all also change Now let's move on to templates With the site editor You'll you have the control over all your templates your headers footers Blog page 404 page Archive pages template page templates you have full control over all of them Now this for me is a game changer because before You had to use plugins or a specialized team to have free reign over all of these Now your site editor is your built-in template editor Now let's look at something you normally would do you change your default 404 page With the site editor you just click on it And then change the let's say I'm changing the text And then you just save it and then now Your 404 page will be this one Traditionally, if you wanted to do this without any plugins I mean without a builder you'd need to create a page And then find a plugin that you that allows you to assign that page to be your 404 page So my next tip is about page templates. So it's easy way easier to create them now So let's say you want to create a landing page and sometimes When you create landing pages you want it isolated from the rest of your site You don't want your headers your title in there. You just want the content And just full reign over the content So you can use page templates for that. But what if like this one? I don't have An existing page template here the header is still there. I want it gone So what I can do is just I can create one just give it the name And then now I'm actually editing it right now without even leaving the page So I just remove all the stuff that I don't need and then save it and now I have my blank page template Without using any other plugin There so no headers and no footers anymore So templates are really great And they're really comprehensive If you're creating your templates, it can even pick up any custom post types you have or any custom taxonomies You can even have different templates per post category So I was just giving tips But if you think about it, if you bring it back to the title, it also works as a workflow So you have step one you can customize the look of your entire site using the site editor Then you jump on step two customize all the blocks so that they look all coherent Step three customize your global palette because this will really help if you need to tweak something further on And number four customize all your templates And now after all of these steps when you create a new page It will all fit in and the best part is we're just doing things without any plugins and all natively So some just minor tips that you might find interesting So you can set your block spacing to zero if you want full control over the spacing Because the your theme is a bit opinionated as it should be because it wants you to help you So if but if you want pixel perfect designs, you can just set the spacing to zero So that everything would be side by side and this also solves some issues If you can't find the setting and then there's a space somewhere this can solve it Next you can still have your site wide css or additional css This was available in the customizer before and it's still there. It's just sometimes hard to see And lastly you can bring up the command palette from the site editor By hitting command k or control k. This is very helpful for navigating around If you're not yet familiar with the editor and you can even type in your title of a post and you can start editing it right away So now that we have a strong foundation of the site editor, let's jump on to the block editor or rather How about editing your posts? So let's say we want to recreate this very typical three column layout on the top right and We are gonna do things the inefficient way or rather if you don't know yet how to do things efficiently I clocked myself now. This is not a real benchmark, but a strict benchmark But I clocked myself doing this at one minute and eight seconds It's a lot of clicking everywhere looking for the block But i'm not gonna finish this because I might run out of time, but trust me. It's one minute and eight seconds So it's a lot of typing and then doing things all over again So one thing you can improve on this is by that using slash To insert your blocks. I'm sure a lot of people know this But you can use slash and then type in your block and then hit enter to quickly add it. You can also use Markdown shortcuts your hash or your you can type hash and then space to turn it into a heading Or a dash in space to make it into bullets. You can do that Next the block toolbar also contains a few more helpful Features aside from just formatting text. My favorite so far is the leftmost button. So it's the parent selector button If you have a lot of nested blocks, you can use it to quickly traverse up the chain So you can use it if you have a lot of nested blocks and you want to edit something in the parent quickly And the next is the next button you can use to edit the style change the style or transform your block into another one And the last three dots button That's where the add before and add after your buttons are to quickly add blocks Now this one for me is a very simple but really very helpful and time-saver tip Normally you use the insertor button To add blocks, but if you have something a block selected you can just hit enter Or return and you can quickly add a block afterwards. So you you can do this. I took it almost any block And then if you need to memorize At least two shortcuts My recommendations are just delete and duplicate Because if you use your normal backspace or your normal delete key It's contextual. So it will delete wherever your cursor is so you can delete text But for this one, you're it's a sure fire way to delete Entire blocks or duplicate entire sections. And of course you can always use your command c and command v So my last tip for the block editor is use the list view It's accessible in the top left and it's It eases your mind because you can see everything You can see everything very easily how it's built So it's very helpful. Let's say you use a pattern and then you didn't make the pattern And then just open it and now you can see how you can better adjust things So now with those efficiencies, let's see how we can Do things now with By now instead of clicking the inserters, we now use slash And we now use the toolbar to select the parent and I'm pressing enter now to insert new text And now we can cut our time for from one minute eight seconds to just 36 seconds So that's huge savings if you're especially if you're creating a lot of websites So patterns so at its base At its base patterns are just Pre-fabricated groups of blocks. So there are two types of patterns your regular patterns like you can see here So you can just use them To ask your starting point For your sites. So it's just like your typical template. So you use them and then you edit them and that's it But you have your second type of patterns, which are sync patterns They're called they were called reusable blocks, but they're still the same So it's just you have one block you have one reusable pattern And it's synced across your entire site if you edit one then everyone everyone will follow suit But now starting wordpress 6.5. You also have instance overrides So your instance overrides is a game changer for this Because it allows you instead of having just sync patterns. It now turns them into small templates So let's see that in action For here, I have only your regular sync patterns So in my screen, it's it's just a pattern. Two patterns are reused But it's the same one And if you click on it, all you can do is just edit it And if you edit it because you want to change something, let's say that picture If you change it and save it then all the rest of the patterns that you used would Still be the same would also reflect those change There so if I scroll down, it's the same picture now With instance override You can edit the pattern and set something to be overwrite the ball if that's the word Then you just check on this And now you're setting it that Every time you use a pattern you can now have it to be a different type of content So you can do it in multiple with multiple blocks in with the same pattern And now if I click on that pattern, I now have two new content areas And I can edit the image and if I edit the image You'll see that I edited it But if I scroll down the other sync pattern that I have still has the old one So now it's really like small small templates that you can reuse anywhere So we also have a pattern directory And when you access it, there'll just be A copy button beside every pattern you can copy it and then go inside your editor and then paste it It's also a very easy way for anyone to contribute Because there's a block editor available right there If you just create a pattern just give it a name and then submit and then you've already contributed to the project so blocks Blocks are the fundamental parts of the block editor It's the name So how do we how can we be efficient with them? For me, I don't think that You need to create your own blocks Especially if the reason for creating your own block is something about layouts So I created a short algorithm here On whether you should or should not create a new block So if you are creating a section then maybe just use sync pattern If you're missing an option in a native block Then maybe try a third party block or a block library And then if you need something special a special script or some special markdown Then you can just use the custom html block, especially if this is just one off Now if you need some special functionality, maybe try doing all those three And then if all else fails then Create your new block So why? Because Gutenberg development is rapid. So a lot of things change all the time So when a lot of things change a lot of things can get broken also if you have custom code in there So it's another thing that you have to maintain and every time you need to maintain something your efficiency goes down And there are a lot of good alternatives out there So how about when dealing with multiple sites? Now you have one site. It's good to go. It's ready. And now you want to create another site. How do you deal with that? So first you can export your patterns If you export your patterns, you'll get uh jason files And then you can build your own collection of patterns And then every time you need them you can just export them or rather import them into your new site And the patterns will become available But the better thing for me is you can export All your changes as a new block theme Forgot to hit play okay, so This whole talk we've been changing this uh theme over here We have changed the colors and we customize the color palette and blocks And changed the 404 page and added the page template blank page template You can export all of those by heading over to the site editor and just clicking the export button And you will just end up with the zip file There this is the export button if you click on it you'll get the zip file Now the zip file if you just open it you'll notice it's just your regular block theme You have it has all the innards of a block theme. You have your theme.json file template files and more So what can you do with it? You can import it or activate it in another website So I have here a blank site It's it just looks like the earlier one we had but it's blank So it just has the default theme but nothing in it no settings nothing yet So what I can do here is I can Activate the theme or upload and activate the theme that we had we just downloaded So there I'm gonna upload it And after I upload it if you check in the front end all our previous settings are now there So you can see that It's now activated because it says here 2024 slash my starter theme. So I renamed the exported file So when you check in the front end now all of the settings are there All of our 404 pages and everything it's all there So for multiple websites What you can do is you can use the default 20 24 theme because you're now experts with the site editor Or you can just use the exported block theme that you just exported a while ago And that's the a bone step That exported zip file you can actually submit it to the theme directory and contribute You just have to change the picture Change the name change some other things And submit it. So this is also another way to contribute to the project That's it. Thank you Guys, uh Like after a wonderful event, um, and this great talk I'd love to know if you guys have any questions for benjamin and that would be great if you guys do have questions or any questions Because if you don't I'll ask my questions. I love that Okay, thank you so much. Please do that Very interesting talk. Thanks. Um, I'm quite impressed how far this block Theme has come. I'm I'm not used to it Um, I'm using divi. Do you still see some cases where? Page builders like divi or elementor make more sense Um, I think it's it depends on the use case Um, I'm sure not everyone would be It's since it's an open source project. We have always alternatives. So to each is own So if you're more comfortable with using that then it's it's totally okay But I'm sure you can use also sometimes there there's going to be some Interconnectivity with the new stuff in the site editor. Maybe there will be some Ways they can interconnect with each other Then that would also help but I don't I don't see that Um Page builders and other solutions. I don't think that they will go away anytime soon Um, because the more tools we have and then that's just better for everyone Any other questions guys? Please And thank you for the presentation I use a lot of the site editor I want to know that um the template log function And there is a template log called content only and uh, you'll see it a lot, but it is really limited and I saw the pattern that can Um, I forgot the allow to change something and it's it's overwrite Overwrite. Yeah, and it seems like it's really like the content only template log and I want to ask can that function replace the content only template log that um Have more flexibility to let um user to change anything else using the pattern Uh, I think it can because the template lock. I think it's mostly used for so that you you don't Change something in the certain group of blocks But this is more for um Reusability So it's it's like that one. It's ensuring that You don't touch something and then in this one. It's more of You can use it to build like small templates So it's a different use case Uh different intention, but I think it can also work. You can also use that for that Yeah, does that answer your question? Okay, great. Uh, so I'll just ask. Oh, sorry. Please go ahead. Mine is a really non-technical question Uh, not so much a question, but unfortunately the pattern overrides has been punted to 6.6. Ah There were a few um issues and ongoing discussions about the best way to implement it Which were it's made it too tight yet into 6.5. It will continue in the Gutenberg plugin Oh, that's too bad. It just won't be available in the 6.5 release Yeah, thank you for bringing that up. So I didn't know that because it was yeah busy Um firstly thanks for the presentation I wanted to know are there any inefficiencies that you could point out Uh not No, I I'm not ready for me. I can I can get back to you at that, but uh for now Um Well, it's not that there are inefficiencies for me, but there's just a lot of Room for improvement that we're we're doing right now. So and and then eventually we'll We'll have more and more solutions for efficiency Maybe I should have rephrased that are there any features That are stopping you being as efficient as you would like to be or anything on a wish list Oh in my wish list. Yeah Well the the feature that got punted that's a huge thing talk to him Anybody else who'd like to ask a question Or has certain suggestions I'll just rephrase it Great. So, uh, Benjamin, you've been working a long time with wordpress. I mean What was the earliest version that you saw that, you know, you worked on I think I worked on wordpress 3.1. Oh, wow, that's Quite back way back. So what was it like? I I started off really late. So could you just tell us what was it like? and Well, it's it pretty much stayed the same until wordpress 5 came out and then the block editor was introduced Uh back then the the really new thing was that you can now Um reorder things and you have you had a new UI when you were creating your menu I'm sorry. I'm sure you did work before wordpress as well on websites, right? Yeah, so so what mesmerized you with the wordpress back in that, you know, uh, you're like, okay fine. This is my love now Uh, so I used to do other CMSs before But when I discovered wordpress, uh, it it it had good documentation Uh, and then it also had the good community so These word camps actually so it was like what there's a convention for software. So that one really Uh, resonated with us. What was the first word camp that you ever attended in what year and what was the word camp? there was a meet up, uh in the philippines Back in 2014 And then that's my first meet up. So I met a lot of good people there and then you didn't didn't stop, right? Well, I stopped during the pandemic Yeah, I mean you didn't stop working, of course, but yeah, you did stop the but we I started I started along with my team really going into word camps And contributing and then speaking Just last year. So wordpress for the win guys. So that's where it is So a huge round of applause for our speaker And we have a token of appreciation for you for being such a wonderful speak out Hey, thank you Let me take a photo last time Thank you All right guys, just a couple of announcements 330 you all know that there's going to be a session where the ask me anything With mat, of course, and you're going to be there, of course, and there's no saying about that But after that we've got the raffle session So all of you who are like got their fingers crossed this one's for you I mean, I got my fingers crossed all along But still waiting for the ipads and the dji drone and everything to be won I don't know how many I entered and after that, of course, how many of you like to party? Of course, there's an after party. So we'll see you guys there and that's about it for this track and thank you so much for coming Thanks a lot