 Right, hello and welcome to the relaunch of developer hours. So with three minutes past, I guess we can make a start. I guess people will join as and when. Yeah, developer hours sort of initial trial happened last year, originally facilitated by Birgit Pauliak. And this is a kind of relaunch of it, and this is the first one. This first one is we're going to do the developer hours targeted at different audiences. You know, sometimes it'd be core developers. Sometimes it'll be theme developers. And for this one, it's plugin developers. And the session has a special focus on adding block functionality to an existing plugin that might have a short code or widget to render content. And you might want to add a block to render content in a block in that plugin without losing your short code or widget functionality. This session is basically about that for us to just talk about. Sorry, there's some other people joining. Let me just admit them. Okay, just welcome the new joiners that I've just admitted to the room. I'm just explaining that this session is targeted at plugin developers and is going to be about adding block functionality to an existing plugin that renders content using a short code. Or a widget and to add block functionality without losing your or replacing the short code or widget functionality. So just want to remind people that this session is being recorded and it will be uploaded to WordPress TV and YouTube. We're likely to refer to the block editor handbook throughout this session. So it might be useful for you to have that available. So I'm just going to pop that in the chat so that you can load it up and have it for reference. And at this point I'd like to introduce my co-host Ryan Welcher. Ryan's very experienced web developer used to work for at 10 up and now works for automatic. Do you want to introduce yourself Ryan? Sure, I'm Ryan Welcher. I used to work at 10 up and now I work automatic. I'm a developer for about 18 years, 19 years, I don't know, too long to want to put into a number makes me feel old. Yeah, and I don't I mean I've been doing a lot with blocks I stream weekly usually on block development stuff. So yeah, I don't know what else there is to say about me. Thank you, yeah. Yeah, Ryan's extremely experienced working with blocks and react and so on. So he'll be a valuable asset in this discussion. As you mentioned, he does a weekly Twitch stream and he also uploads the recordings from the Twitch stream to YouTube. Do you want to post a link to your YouTube channel in the chat, Ryan? Sure. Awesome. So worth the worth heading over to Ryan's YouTube channel. Lots of useful info there and you can watch him coding in real time. Okay, as for myself, I've, I was long time freelance web developer working for clients. And then I worked for Frontity and I now work for Automatic as well. Ryan and I are colleagues, we work together on the same team. So let me explain what we want to get out of the session and what we think we can offer you. The main thing we want to do is learn about your experience of working with blocks, you know what pain points you've encountered, what hurdles you've encountered, how you overcame them. Or what you got stuck on. And that's with a view that we can update the documentation and provide other resources that will help you and block developers that come after you in the learning process to help them on their way. So, you know, you know, what did you get stuck on like missing documentation with their tutorials or other resources that you felt were missing that we could provide. You know, and then we're also here to answer any questions you might have and help you or guide you to the resources that you may not have found to help you overcome any of the problems that you encountered. So if you have any questions, put them in the chat or raise your hand. Do we have the do we have that functional? Yes, we've got the reactions functionality. So yeah, you can raise your hand if you want to ask a question and hopefully we'll cover all the questions. This is going to be more of a free form discussion. It's not really a panel. There's only me and Ryan as hosts so not really considering the panel. I'm hoping everyone can chime in with their own experiences and, you know, and outline the pain points and problems that you've encountered along the way and what you think could help you. And also, you know, if you've got some experience and fairly knowledgeable, then chime in with with answers to people's problems as well. Like I said, it's not a panel. It's a conversation. So feel free to unmute and to turn on your video so we can all see each other and basically have a conversation. So it'd be awesome to to be able to see people. Okay, but before we get stuck in, let me just go through a few announcements. So WordPress 6.2 beta one launches tomorrow. I'll just post a link to that for you in the chat for the timeline for WordPress 6.2. So beta one is out tomorrow beaters two, three and four are out on successive Tuesday over each week in February. And then the final launch date is in the link I've sent you I can't remember off the top of my head and I don't have that page open right at the moment. Gutenberg 15.1 is out on Wednesday. And can be there. Here's the Gutenberg repo in case you need it. If you want to track issues and PRs that will be in the 15.1 release. What camp Asia is next weekend. It's the very first word camp Asia and I believe Ryan's going to be there. Are you speaking. I am not speaking. I will contribute today. I believe Birgit polyhack. Another one of our esteemed colleagues that will will be speaking Nick. Are you going Nicholas. No. Unfortunately, not, but I wish I was. Yeah, I wish I was going well. Sorry. I wish I was as well. Oh, right, right, right. Is anybody else going to work in Asia. No. We get a lot more in the, in the, the AMEA version of this. Yeah. It's a bit of a flight for us over of nine North America. So, yeah, so as I said, that's the very first word camp Asia and that's happening not this weekend, the following weekend. Yeah. I think it's sold out. So if you haven't really got your tickets, I don't think there's you're going to be able to get one now. Two big word camps, word camp Europe is the eighth to the 10th of June. Tickets and I think speaker applications are still open for that. And word camp US is the 24th to the 26th of August. And that's a bit earlier than in previous years. I think it's traditionally been in October. I think so. Yeah. So I think it's been scheduled a bit earlier this year. I'm not quite sure what the reason for that is. Then there's other word camp, smaller word camps. Most of the ones scheduled so far are happening in Europe. There's a few for in the US. And then there's word camp in Tebe in Africa. That's Ethiopia. Is that in Ethiopia and Tebe. Uganda. Uganda, Uganda. You're right. And there's one in Kerala, India. So if you head over to wordcamp.org, you can get a full list of all the upcoming word camps to see if there's one near you. Or as I said, there's the flagship ones, Asia, Europe and US all scheduled. Has anyone got any other announcements? Anything else they want to announce? Not for me. Okay, great. Okay, how many people have we got? We have exactly 12. I don't know. Shall we go around the room and introduce ourselves just briefly? Tell us what your background is. If you don't mind. And then we'll head on into questions. Who shall we start with? Let's start with Gerald in there. I'll just go across my screen in order. So if you could unmute. I'm Gerald Pegney. I'm in Arvada, Colorado. And I have been working with WordPress now for four years. But I've been a programmer for over 36 before I retired. So I'm not new to software. And I'm building a genealogy site and I'm working on a couple of e-commerce sites. Have you actually attempted to build any blocks yet or migrate a plugin to blocks? I have not done that. I'm just thinking about what I want to go where I want to go with that. So I thought this would be a good place just to listen and learn. Cool. Cool. Okay, next on my screen is Jean P or Jean P. Hi, I'm fairly new to WordPress. I started taking classes last year and I started doing a plugin, but I never finished it. And then I got very enamored in the blocks and full site editing and then taking a lot of WordPress meetups. And then when this come out came up, I said, Oh, maybe I'll just go back to my plugin project. So I'm mostly here to listen also. And I've really enjoyed Nick's and Ryan's presentations over the past year. So thank you guys. Thank you. So Nick, would you like to just introduce yourself? Sure. I am a developer advocate at WP Engine, doing a lot of education around WordPress. I also built my own plugins, built blocks. So I think that this topic is really interesting because there's a lot of plugins out there that were built geared towards classic audience and now they want to transition that functionality to blocks. And I think that that's what a lot of plugin developers are facing these days. So happy to be part of the conversation. I agree with that. So hence this session, or series of sessions, I should mention there's three of these sessions scheduled about a month apart at different times to cater for different time zones. This is actually the Amir one. So it's nice to see some people from the Americas joining in. Christopher Busutil is next on my screen. Hello everyone Christopher here. So we've been working with WordPress for six, seven years. Our code is a lot legacy and a lot focused on the native. We started recently really focused to start using the blocks, so converted to blocks. A couple of sites. Now using that now it's the time to start building our own. We're also finding a few troubles to customize the back end as well. So style sheets are not really that easy for us to work with, but maybe due to the large amount of legacy code we have on our WordPress sites. So very, very, very eager to learn more to avoid some mistakes we're doing. Thank you guys. Okay, cool. See how we can help you with the troubles you're encountering. Where are you joining us from. Oh, sorry, I'm from Malta, Europe. Malta. Malta, correct. Great. It's on my bucket list to visit Malta. I still haven't been there. Stuart. Hi. Where are you? Tell us about yourself. Yeah, hi. Good afternoon to all. A few people I know in here. I'm in the UK. I think you are. Are you? I'm in the UK. Yes. Yeah, sound very British. Yes. So I'm usually I'm in the UK. Why am I here? I've been doing a lot of WordPress development websites predominantly and very keen to find the time to be honest with you just start building out some block plug-in ideas and I'm struggling with the time to be honest with you because I have customers and bills to pay but I do tune into Ryan's calls. I've pretty much followed much of what Nick's been up to and hence the interest in joining today but I think my capacity today will be more listening than than bringing value to the table if I'm honest because that's where I'm at in terms of, you know, I guess my effort but but I look forward to being able to participate at a greater level over time. And indeed finding the time to move away from predominantly websites and starting to get more involved obviously from a block. I see the whole future is blocks anyway so I'm very excited by it. I've been put a little personal work into it. I'm starting to develop for end users now based on block so yeah it's some interesting stuff going on out there and I've got my foot to the metal I guess is what I'm going to say. So I leave it like that and and wish everybody well in the call today. Thank you. Thank you. Andrew slay you're next on my screen. No microphone. Okay. Andrew's replied in the chat from the UK no Mike. I've been getting into WordPress development over the last year. But many years of software experience before that. Okay, thank you. Good morning. My name is Adam. I am the lead web developer for UNC Chapel Hill in North Carolina, America. And yeah, we are working on a really really old cool base with a lot of this type of updating things and I just kind of wanted to get everyone's feel for it. My experience with Gutenberg has been if you don't do things in the right way you're going to be doing them over. Okay, thank you. Aki Hamano tell us about yourself. Hi, can you hear me? Yes, we can hear you. Hi, I'm Aki from Japan and I'm a freelancer and I'm contributing I'm contributing to Gutenberg. And especially I'm enjoying Ryan's Twitch and unfortunately I'm not good at English so please don't mind me. Thank you. Okay. Wow. What time is it in Japan must be the middle of the night there? 11pm. Yeah. He's a freelancer. He's used to being up hours, right? And Udo, Udo, sorry. Udo said in the chat that he has no microphone. I think he's in transit. Oh, okay. Thank you for joining Udo. Yeah, thank you. Yes, and then Theo. Hello. Can you hear me? We can hear you, yes. Yeah, I'm a developer. I live in Greece and I develop websites but also plugins for customers. I've made many plugins and I'm very interested in using blogs, planning blogs. Usually I don't sell the plugins, they are only for my customers so they have some decades of installations only. And I'd like to make some things with blogs instead of shortboards. I do many things with shortboards. And having the ability to build this blog would be awesome. I build some blogs but custom blogs for specific sites. And I'd like to know how to make this more universal and I can plug it in many sites easily. Did you say you're using Greece? Yes, Greece. Okay, so we may see you at WordCamp Europe in Athens. Yes, that's right. Amazing. It's great to meet an interview there. Are you involved in the organizing team for that? Organize, no volunteer. You're a volunteer. I'm not living in Athens, I live in Salmiki so it's not so easy but I'll see you there. Fantastic, thank you all. I think I've got everyone. Okay, let's go on to the discussion. If anybody's got any particular questions, use the reactions in the toolbar to raise your hand or just post the question in the chat. Like I said, this isn't a panel as such, it's just a discussion for us to all talk. So as I said, feel free to turn your cameras on and it'd be great to just have a chat. I guess what we could maybe talk about initially while people come up with their questions is maybe talk about the handbook, which is the official documentation for Gutenberg and the Block Editor. Maybe just talk about how you found the handbook. Did you find it useful? Did you find it difficult to navigate and find the information you wanted? Did it go in at too high a level, not sufficiently introductory? Yeah, I mean, what is good about the handbook? What is bad about the handbook? What could be improved? Any thoughts? Just to add to that, does everyone know what we're talking about and where to find that resource first? Yeah, let me post the link again, I did post it earlier. No, well, I just mean in general for developers trying to find docs, where do you go to? Like one, are you aware that it exists because it's in a slightly different place than some other things? And two, is it a place that you go to to get the information that you that you want? I guess that's sort of, and that sort of dovetails with what Michael was saying about if you use it, does it serve the needs? I don't know, maybe put a plus one in the chat or something or if anyone has any comments, jump on in. Where do you go for documentation? Do you just look for online tutorials? I mean, I know Kinster has some really excellent tutorials. Yeah, so yeah, it's a good point, Ryan. What is your source of information when you're developing, as I say, the block developer handbook is the official resource. So we'd like some feedback on what you think of it. And yeah, let us know what other resources you use. You know where you find, if you find the block handbook deficient in any way, what is your alternatives? Can we jump in? Yeah, please do. It's a conversation, not a panel. Perfect. Okay. I think that so obviously I'm a developer advocate, so I'm coming from a bit of a different perspective. I think the handbook is good in getting better. One of the things that we hear a lot is somebody might read the handbook and they take, for example, the handbook page about global settings and styles, the theme.json spec, if you will. Tons of great information in there and that's like the source of truth. How to use theme.json in practical ways. That page really isn't for that. You know, it's really to tell you all the different pieces of theme.json, what each one does. And so having more applicable tutorials around theme.json are really helpful. That's what I'm loving, like the new developer, sorry, I'm butchering the name, the developer. Dev blog? Dev blog, exactly. Yeah, where it's taking the basically the content in the docs and then applying them to like actual real world examples. So I think that having both of those working in tandem is like a great thing. For me personally, I started building blogs like two and a half years ago when there really was very little information out there. And I think that the Gutenberg plugin is the Gutenberg project itself is like my go to source, like if I see something in Gutenberg that I like and want to incorporate into my own plugin. I just dive into Gutenberg and figure out how it was done, what are the components being used. That's a pretty big thing to jump into. But that's, that's one of my biggest resources. I do the same, but I think that for those who maybe aren't that familiar with reactor, especially react at the Gutenberg level that could be extremely daunting. I just remember my first foray is into trying to contribute. And just, I just remember being like, this is great. I'm going to go contribute and then like, oh my God, I don't understand a single thing I just looked at, and then getting really discouraged. So yeah. Absolutely 100%. Yeah, but but I mean it's telling if people are going to the source code to get their docs, then maybe the docs need to get a bit more for both. I wanted to share this official resources as well. This is a, it's called storybook storybook jazz but it's basically you can interact with all the components that are in Gutenberg now, and you can change state and you can do things like that so you can get different sort of variations change the props and see how they interact. Again, it's more of just like a tool to explore and see what is available in the various packages in that chip with with WordPress and Gutenberg. Yeah, which can be useful if you're not sure what component you need to do a particular. Yeah, for sure. I just use a slider or a number input control or for sure to learn about the form token field which is something that I am now officially obsessed with. And it's like a multi select type ahead. Really cool but there's a bunch of different sort of variations in there so you can see how how the different props or the different like sort of properties for the component effect how the component works and things like that. I have a question. How many people have not ever built a block and are struggling with like where to get started. Is there like is have we all sort of tried. Yeah, and this isn't that this isn't out to anyone or make anyone feel embarrassed or anything because that's the whole point of this right is like if that's where you're stumbling. That's absolutely yeah I mean it's, you know, cool. It's true that the learning curve for block development can be quite steep and just getting started, you know which is hence my question earlier, does the handbook go in at to higher level and it's not sufficiently introductory. There is a course on learn.wordpress.org, which is an introductory step by step, you know, walk you through all the baby steps of building a block. Let me post a link to that. Let me just bring it up bear with me. There's also. Well, Michael finds out there's also another tool that I personally love it's a scaffolding tool basically because for me personally when I when we were at 10 up, when I was at 10 up. There's not more than one of me we when I went to 10 up we we kind I was working their rate when when when 5.0 was released in Gutenberg kind of came out and so one of the big stumbling blocks especially for larger agencies are people working with lots of blocks lots of times. How do you structure them what where does what goes where where do you keep your files what should be in different files and things like that and that and so this tool that I'm I'm about to link to link right now is it's the create block package and basically it's a scaffolding tool that will build you out a working plugin with a single block pre scaffolded and built in all the tools that you need to get the most basic block and it's working and then you just go in and add your. Your your flourishes your the functionality that you want. And this is a great learning tool because it shows you sort of how things are like, you know, sort of a best practice around how structuring your blocks could work. You can see how block that Jason, which is a huge part of building blocks kind of works with the block system how the build process works and it's all built for you know you don't have to. You don't have to learn anything about webpack you don't have to learn anything about all this you can just focus on like how our blocks built and and so it's a really great tool for that it's very extendable as well. You can create your own templates for it which is sort of more of an on advanced topic which if you want to structure things in a very certain way you can build that out and tell this tool to use that template instead. So it's a really great starting point now the blocks that it will build you are very simple it's literally just a you know a piece of a piece of text that's output on the front end and in the block editor. It's very simple, so you can kind of build on that. That's a great tool to get started if, if you're looking for just like where do I even begin. Yeah, totally totally agree with that. And that is the create block tool is actually covered in the in that course that I've just posted. The project in the course is scaffolded with with create block and create block is great at building a standalone plug plug in that implements a block. But the focus of this session is about integrating a block into your existing plug in that uses a short code and getting the same functionality as your short code, but in a block. And in that set for that create block will get you scaffolded it takes an option which is dash dash no plug in right or something like that I think and then it just create the block implementation. Without the the plug in the PHP code I think there is a still a PHP file a render dot PHP file included if you use that that switch to the create block command. But you still need to go through quite a few steps to actually integrate that into your existing plug in. I mean one of the things I found out this is something that Ryan helped me with that something that called me out was it you'd need to put it in a the folder that you put your your block code in has to have a specific name. It doesn't have to you can give it a different name but then you have to change your config.json file to tell it where the where the where your files are. Yes, I think it needs to be now for this project I'm looking at I have actually changed it doesn't need to be src. Yeah, so by default that so there's a lot there's a lot to unpack here. So let me maybe just kind of give a bit of context and then we'll go back into it so sorry for the tangent but but for those especially those unfamiliar with sort of the the plumbing around how building works. This might help. So the the the block. So Gutenberg and the WordPress community uses a package called the scripts package and the scripts package handles all the build process. And it's very easy to use and it's very well set up and easily abstracted away and all that stuff but but there are some sort of like rules around what it's expecting with your the way the blocks are structured. The first one is that all of your JavaScript code that is going to be compiled or transpiled from sort of like ES6 and JSX. And if those things don't make any sense. Please drop a little just raise a hand or something and I'll go into what what that means but basically what I'm trying to do is transpile all that stuff from source into a build directory and build directory is actually what gets loaded into your plugin and and released, but the convention is that the folder name is src or source. You can change that but the build are the the scripts package expects that you will tell it where it's going to be and you can do that with a flag in your commands. And if none of this makes sense to anyone please let me know and I'll go into it a bit more That's what Michael saying so the script package is great and it's really configurable, but you just have to sort of know what what to tell it so it knows where to find blocks and do all those things. Yes, so yes, short answer is yes source long answer is you can make it whatever you want as long as you tell it. Yeah, yeah and then the project I just looked at that I've been working on I had done the I had done that I told it where to look and giving it my own folder name which is why I couldn't remember exactly what it but yes src or source is the It's probably the easiest way to do it when you want to integrate a block into an existing package into existing plugin. Yeah, so you would use as Ryan says you use the create block package with that switch which is hyphen hyphen no plug in I think Yeah, yeah. So yeah, so what that generates the block files and you put that put those into an src directory in your existing plugin that implements a short code or widget or whatever. And then you and then the hard part what bit starts you actually start coding up your block to do the same thing as the as the short code does, except you need to do it twice you need to do it. Once for the front end and once for the editor and for the front end you can either use a function and a PHP function and pass things like attributes and content to it, or I think now you can get there's a render dot PHP file which automatically runs and automatically gets the attributes and content and so on, and you can just access it. Yeah, behind the scenes it's basically it's, it's built it's doing the same thing sort of as if you're familiar with get template part, how it works and sort of like classic theming. It, you tell it the file and it pulls the file in. It's sort of doing the same thing so a render dot PHP file is the where your PHP goes and so if you have short code because like in your short code you've got the function that renders your short code. You can just put that cut that code in your render dot PHP, and that'll, that'll, that'll fire that'll run. And then the hard part you just need to edit it if you'd need to access attributes. Yes, so does anyone know what what we're talking about when we talk about at like block attributes and attributes in general, if it. You can assume silence means yes. So if not please put like a thumbs down or some kind of emoji or or something because because we can definitely explain that. Yeah, but the hard part will be not the hard part but the work, like you've already done your PHP's part you've you've you've already got your sort of your short code rendering function that that you built with your short code. So what you'll need to do is on in the editor side in the JavaScript side, you'll need to change that from like from sort of the short code syntax which is supported still in a block into adding each one of those items that you pass to your, your short code as as what's called an attribute so you're saving that with your block, and that's that's really the hard part and just becomes a series of controls, which there are lots of types. There's all strings anyways so you're, you know, a bunch of text fields would probably be a good place to start. And then, yeah, I suppose what we should explain here is that what we're describing is what's called a dynamic block. Correct with the, with the the code, the front end code rendered in PHP, which is usually pulling stuff from the database with a WP query or something. And then with the on the in the editor, you would normally, yeah, you create JavaScript in an edit.js file. And yeah, I mean so and if your front end PHP is getting stuff from the database with a WP query you're going to have to do the same. If you want to get if you want the users to have that whizzy with experience of seeing the same thing in the editor as in the front end. You can use the the work the Gutenberg or block editor data package to get your data into the editor as well. And it's worth pointing out that there is duplication of code because if you want to keep retain your short code functionality for the legacy editor for example. The render dot PHP for the block version that those bits of code are virtually identical. You know, except you know, you the the block version will access attributes and so on. Whereas the the short code will, you know, might be getting post matter or something to to configure settings within the short code. So yeah so there is duplication of code, which isn't isn't very what's the term dry, not very dry, as in don't repeat yourself. Yeah. Did anyone have any specific questions about the stuff that they're working on. Like, it couldn't be hard for, you know, for us to, you know, dive into the code directly but any sort of like, I tried to do this and it didn't work, or I tried to do this and or whatever like any questions are welcome obviously but you know I feel like we're doing a lot of talking and which is great. We want to make sure that you guys get some value out of this as well, beyond just sort of us throwing names and Nick's got some. Yeah, I have a quick suggestion so if you have a plugin that's rendering a short code or has a short code. Usually, there's an abstraction there right what the user is seeing in the editor just a short code and a front end is could be anything could be a fancy graphic could be could be something really complicated. In the work that I've done in my own personal stuff of converting short codes into blocks. I would strongly suggest that you simply you ignore the kind of what you see is what you get in the editor because if you have like a really complicated short code that's rendering something sophisticated on the front end, trying to replicate that in the editor. You might start pulling your hair out, you know so especially if you're new to this. So I would suggest that when you're going this process start with create block, create a dynamic block, get your short code PHP converted into the render PHP function in the create block setup, and then for the editor just worry about adding in the fields that the short code needs to function. And I've even done this this is kind of embarrassing but like for my short for my block that was once a short code. I just have a little placeholder that says like the name of the block or whatever so it sits there and you click on it then you can edit the fields, but I just don't even worry about the aesthetics in the editor, at least while I'm trying to get it working. At least as you become more comfortable and you start understanding how to interact with data in the in the editor and all sorts of stuff and you can actually build, you know, the real thing in the editor, but I would just don't get hung up on that just focus on getting the block working. I agree 100%. That's a great and especially those folks that I forget who who was saying it I think it about like, I want to do this but I also, I think it was used to it. Like, I want to learn this but I also got bills to pay in clients that won't have timelines and that's that's a huge, huge factor is like, I can do this but I don't have 1000 hours to learn all all this stuff right my client has deadlines I need to get this out so I mean, I don't think there's anything wrong with a tiered approach like like when they say right so just get those just get those basic text fields and if you want to get super I wouldn't recommend doing it too much but you use the server side render component to kind of render what so that's a that's a component that kind of takes whatever the front end is doing and puts it into the back end. It's okay I wouldn't use it I wouldn't, it's certainly not a magic wand. You can run into some issues if you have too many blocks doing all that but. Yeah, sort of like you know it's a there's a big learning curve in general so take your time, just just get it working and then add the flourishes later. So I just basically copy whatever Nick said so he's smart dude I like to do that. I mean, at the end of the day it's better than just someone trying to plug in a short code into the editor right so you've made positive progress, and then in future editions you can change it in futures. Absolutely. Absolutely. If I may. Yeah, there's actually a dear for the information that you guys have created as well out there, and it's some really powerful videos as well, you know obviously with the visual learners in the room but and I have them all have them all bookmarked categorize very slightly but it's just actually I need to get to them. I'm probably a little early for this. This, I'm going to have to be more of a listener here, but as I slowly pursue the build out of a block. Obviously, I'll be able to introduce have some more input, but yeah there's some very good information available already I've seen. Well, obviously, Nick's put a lot together and Ryan's done some, some interesting stuff as well. I forget the name of the what we're using we're using editor that you set up and wasn't, it was not online editor, and you kind of set up the building out of a block there, and I kind of attended all those but I've, I've got to go back and review them all. That was Ryan, I believe. I don't know if you recollect was it was it. Oh, yeah, yeah, yeah, yeah. You know that stuff was very helpful and I just need to review that and then and Nick's done a lot of video recordings as well. So it's all there as I say it's a time thing so I'm looking forward to hopefully just bring in some more value to the table in terms of just sitting here and taking it all in but that's where I'm at the moment. Thank you. Any examples of plugins that use shortcode and block editor at the same time. I will shortly. I'm rebuilding one of my shortcode plugins. I've got a video. I've got a video on my channel where I actually did I built a plugin that was a shortcode and then the stream was converting it to a to to a block. Let me dig that up. It's not. I mean it's say I think it might be a meme generator or something ridiculous like that so it's certainly not a production level thing but the concept is there. Let me just check that down. And Michael you're working on it. You're working on this now. I'm currently working on it. I'm kind of a just starting out on doing this you know I've built blocks before but this is my first time. First we're talking about converting an existing plugin and it has a shortcode. It's a plugin that I've got up in the the plugin directory. I've got quite a few users so it's something I need to get right to implement the blocks and so I haven't uploaded the blocks version I'm still working on it. It's the first time I'm doing it. So learning a psycho. Yeah I mean that's a good point I mean there's still hundreds of thousands or millions of people still using the classic the classic approach so yeah it's more code in the plugin but being able to offer both approaches that generate the same result I think is awesome. Still supporting both people both folks. Yeah and that's something to to consider as well if you have a plugin that's that's been released and you have you know any number of users on there, all of a sudden just kind of like, you know stopping them like you do have a sort of an onus on on the developer to kind of maintain some semblance of backwards compatibility and the great thing about it is you can just use the shortcode or you can use the block version. And both either in in in the block editor but also what you still have that classic editor support. I realize that this the thing that that I just linked has absolutely no channel like no time markers so have fun watching for an hour and a half. And on on 1.5 speed please no one wants no one needs to listen to me talk for an hour and a half. I just want to revisit something that Nick said earlier about don't it was good advice you know about don't worry too much about how it renders in the editor, you know which is great when you get started. It does matter how it looks in the editor that ultimately you should put effort into making it look to give the user that whizzy wig experience and what they see in the editor is what they see in the front end because that's a whole philosophy underlying the block editor anyway. And, and if you don't make that effort to to have it, you know rendering nicely in the editor, then you might as well not bother and just keep your shortcode and your user use the shortcode block which looks very clunky. So it's worth making the effort I think to make it look nice in the editor, ultimately but you know Nick's advice is still good when you're starting out. You know, it's the front end that matters. I want to caveat that slightly so good examples I created a shortcode. I had a shortcode that printed out the current date or whatever. And so, in the editor, instead of worrying I mean it's not that hard but instead of worrying about like pulling the current day and then getting the current date, the date format that your WordPress site set up for. You know, to have like a simple like date. So it looks fine like it looks like a in the interface or something like current date. So it's like you're kind of shortcutting there but you're 100% if you can get to the point where it's 101 to one then that's the best scenario for them. But I really like your point there Nick because depending on what the block is doing, you may not be able to get a one to one like let's say that your shortcode renders a calendar with massive, you know, all sorts of JavaScript functionality and date picking and all this stuff like a really big verbose thing that might be just like hours just to implement it so you can see it so I mean you could just do a placeholder that's just a graphic of a calendar that would sort of that that shows you the like and this isn't meant to be like like a trick but it's sort of like you still get the that that whizzy wig like oh so that's what the calendar will look like in place with content above and below it. It's not a functional interactive calendar because you know that's might just be too much, but there's there's so there's like middle ground between like just fields, and you know full one to one matching. And it still looks a bit better than using the shortcode block and just yeah your shortcode into the shortblock. Obviously at the end of the day, if this is a hobby project and you have nothing but time, then I would absolutely recommend, you know, getting into the, the, the depths of it and trying to get that but if you're being you know if you're on a short timeline and you know your clients okay with not that sort of thing I mean that's obviously a huge barrier is that the time it takes to learn some of these things especially for people who like maybe have never done any JavaScript, or very little and no react and you know, dealing with build processes that there's a big there's a big learning curve there and clients don't want to pay you I get it. Okay, somebody. Sorry, will we talking here. Yes, somebody's got some sound playing. So could we somebody's asking us to mute will. Oh, he's muted there now. Yeah, I've just done that. Yeah, personally, I am making the effort to get my project I'm currently working on to get my block to look exactly like it does in the front of the shortcode version does in the editor, because mine pools in a custom post type in and what I really want to do is get people to be able to add new posts in that in that custom post type from within the editor. Cool. And I and I also have some JavaScript because there's a small amount of interactivity in the front end and I'd like to be able to duplicate that in the editor, but haven't managed that bit yet. One of the things to note is that you might have a shortcode that does something maybe it's like dynamic text or something like that. And you might be actually able to add more functionality to your shortcode. What was a shortcode in block form, and that's by using block supports. So for example if you had a shortcode using my date example that is printed to date. You can do that in a block and then also add the block supports for typography and color and background and all of a sudden you took your shortcode not only did you make it a block but you also made it a lot more customizable just by specifying that and block that Jason. And you also have access to like block variations and the global stuff that's that's coming in. And I think it's 15.0 with sort of the global being able to to make global changes to your site that affect all of your blocks like you get all of that by moving. I mean I think now we're just sort of advocating for the block. But but but there is a lot like of easy functionality to add like it's so easy to say okay this block that I just built outputs text and I want to change the text color so you just like literally a lot I add one line to your block that Jason file and now you've got a color that inherits all all all the default colors possibly and all the colors defined will buy whatever theme you're you're using that's simple. Easy and you don't have to write any extra code other than like color is like whatever a true or whatever the object is that you're wanting like it's very very very simple, which is awesome. We're coming up to the last few minutes. So just open the floor up to any questions if anybody has anything that they want to ask or anything they want to say relate their experience any problems they've encountered just in the last few minutes. I'd also recommend in these last few minutes. If you want to save the chat, because there's a whole lot of links in there. So just take a moment to save the chat if you want to retain those links. Any last questions or any points anybody wants to make. I'm available and Michael I'm sure is available as well. I shouldn't speak for him but I mean if anyone has any questions that they just want to ask one on one. Feel free. I you can find I'm Ryan Welcher or Welcher or Welcher Ryan depending on on on the thing. I'm in WordPress Slack you can DM me at DM me on Twitter. YouTube fire comments anything. I mean I think we're like I'm more than happy to dive into some code or just like talk through something. I know sometimes in these public forums is a little bit uncomfortable asking sort of questions but feel free to reach out to myself and I'm Michael shouldn't speak for you but absolutely. Absolutely. Be very happy to help on the making WordPress Slack or on Twitter I'm emberage in most places. And. Yeah. Okay, so if there's nothing else let's let's wrap things up just want to remind everything everyone that WordPress is open source anyone can contribute. So if you find any gaps in the handbook. And you have overcome a problem and you think well this would be good to put in the handbook. You can contribute. You can even edit pages in the handbook the handbook is actually just a directory in the Gutenberg repo. There's a docs directory and the handbook is built from the docs directory in the Gutenberg repo. So if you want to make an edit to the handbook, you just submit a PR to the in the Gutenberg repo with your edits to whatever file it is in the docs directory. It's simple to, to make your own contributions to the handbook. And they'll always be welcome. Again, if anyone has is uncomfortable setting it up or has never done that before. Reach out, we're more than happy to sort of help. There's there's some, there's notes in the handbook itself on how on how to contribute and you know how to set things up. Basically if you're comfortable working with get and get hub. That's all it is just a pull request I mean. That can be daunting. What do I label it? How do I tag it? Whatever. So I mean, if anyone has PRs, you know, you can tag me on it or Michael. Yeah, we'd be happy to review it and add some, you know, if there's anything that needs to be added. Yeah, and if you're going to think there is a documentation label that you can add to your PR. And if you just look for the doc for PRs with the documentation label in the repository, you can see how other people have done it if you're not sure. Okay, thank you very much all for joining. Just want to remind everyone that the next one is scheduled for February the 27th. Ryan is going to be on that one. I won't be this one. The one on the 27th is the time it's scheduled for the Americas time zone. So I think it's a little bit late in the afternoon for me but Ryan's going to be co-hosting it with Justin Tadlock I believe. Yep, that's correct. So if that suits your time zone by all means, join that. So thank you very much for joining this, especially those people coming from America where it's still quite early I think this was scheduled for the EMEA time zones and especially thanks to Aki in Japan for whom it's the middle of the night. So yeah, thank you very much. And yeah, join us in February the 27th for the next one. Thank you very much. Bye bye. Thanks everyone. Bye bye.