 Hello, everybody. To our next speaker, teaching and mentorship come very easily and naturally. This is dog lover and pantheon outreach manager, developer outreach manager, Tessa Kreisel. She wears many hats in her life, all with sass and finesse and fantastic style, if I do say so myself, including instructor, I'm sorry, lead organizer for WordCamp Minneapolis and founder of outspoken women and coders of tomorrow. Please enjoy, Tessa, while she teaches us the building blocks of Gutenberg. Is this working from here? Last night, I was in my hotel room, I brought my daughter with on this trip, which I don't normally get to do, so it's been kind of really nice to have her with. Here, let me move this. All right, can you hear me now? Okay, cool. So I brought my daughter with on this trip, which I don't normally do, which has been really exciting. She makes me smile and as any of you who have kids, probably feel the same way. But last night, we were messing around and she decided to start singing like the let it go song from Frozen. I feel like we're all probably pretty familiar with that. Yeah, she's three, so she's like little, so it's cute at this point. And pretty inspiring because she is all about the moves and singing and doing all the things that Elsa is doing. And so as she's doing all of these moves, I can feel the sass coming out of her arms. And I think to myself, she's my daughter. This is totally me. And I'm thinking about the song and thinking about the words because each and every time she's like, Mom, you have to sing too. So she gave me this little solo section that she's forcing me to do each time that she sings it 20 plus times all night long. But as I'm thinking about the song, I'm remembering what happens in Frozen. Elsa goes out there and she's singing, let it go because she's free. She feels the freedom that she's away from the castle. She's got her gloves off and like, she can let her powers out and everything is okay. That feeling is how I felt when I actually started using Gutenberg. Does anyone, can anyone else relate to that? So before that, it was a lot of avoidance. It was a lot of like, I have no idea what I'm getting myself into. I normally use advanced custom fields. I've got like this page builder thing that I've been using for years. I love this workflow. Now I have to change everything that I'm doing. And not only that, I have a theme that is completely built, customized, and has exactly everything I want that does not support Gutenberg at all. And so I was scared. I was really worried about what it was going to be like to have to transition and change. And not only that, like, I just don't wanna change. Like, I'm done learning new stuff. Does anyone else relate to that? Like, the languages are there. Like, don't make me learn React. Like, I'm just done. However, I got through it and I feel better about it. And I want all of you who might be hesitant to dig into Gutenberg or hesitant to start building new blocks feel like you have some options after this talk. So Claudia introduced me, Tessa Kreisel. I'm developer outreach manager at Pantheon. I have been lingering around the Pantheon booth today. We'll also be there throughout the weekend. So if you have questions or just wanna chat or meet me, feel free to track me down. Saying that I love dogs is not enough. So I'm gonna say that I'm obsessed with dogs, like, obsession level with dogs. So if you're shy or introverted and you're really curious about, like, how to start a conversation with me, just tell me about your dog. Also, she'd archery and I'm really passionate about teaching others, which is why I really enjoy doing things like this. So my talks are very interactive. One, because I'm a little bit crazy, so I like to get a little, like, a little kind of sassy and crazy on stage, but also because I like to get people involved. You've been to however many sessions today and you're probably starting to, like, hit that point where your brain is done absorbing things, just like I feel about React. So we're gonna get interactive and we're gonna get involved. So if you have a device with you, whether it's be a computer or a phone, if you go to slido.com, oh no. Well, I hope you have, like, data. Maybe your data service will work. The event code is gonna be WCPHX. So I'll leave this up for just a minute or two while all of you get in there. I promise it's worth it if you're trying not to do it. Yeah, it's WCPHX. One second, I was trying to share, but it doesn't look like it wants to take my screen. All right, is everyone in? It's gonna get in. So there's one question on there right now and it says, have you built a new site using Gutenberg yet? I'm gonna see if I can show this to you all because currently you cannot see it and I don't know why. Also, the internet is really not working super well. Did you guys know that? Let's try a different internet option here. Yeah, I'm in a hotspot for my phone. That'll be better. All right, so that doesn't solve my problem of not being able to share with you all of the answers which is the coolest part of this presentation. So I'm just gonna have to look at my screen and explain it to you. So have you built a new site using Gutenberg yet? 75% of you said no. Do all of you feel the same way that I did when I explained my ELSA story? Yes, raise your hand if you're like yes. Okay, like you need the ELSA freedom, right? Like you need to just let it go and build a site and find your workflow. 13% of you said yes, that's exciting. And 12% of you said yes, but I only use core blocks. Anyone who said that yes, they only use core blocks if they want to contribute, is there a reason why? You just didn't need to or you haven't found your way in block building yet. Don't be shy. Yeah, good to know. Okay, so I got one more question. Actually, there's two more I lied to you. You guys, this is way less cool when you can't see this presentation. Oh, someone asked what kind of dog I have. You guys are my best friends already. Okay, so next question, so there's three questions. The next question is what theme did you use to build your new site with if you said yes to building with Gutenberg? This is kind of a selfish question because I actually really want to know what options there are. While everyone is filling it in, I ended up using WP-Rig, which I strongly, strongly recommend. It is a very good workflow for development and building SaaS and making sure that I'm doing all of the testing that I need to do for my PHP as I'm actually building it out. It is top notch. I'm getting lots of good answers here. WP-Rig is on here a few times, which is great. Divi, I see Astra, Genesis, Storefront. I see underscores on there and I'm curious about how well that went. I'm not gonna tag you right now because it's putting you on the spot, but talk to me afterwards because underscores used to be my theme go-to. I took a very base version of underscores and I'd kind of rip out some of the templating and rebuild it the way that I liked it, but underscores just didn't have the Gutenberg support and so although there's not a lot to it, I haven't actually taken the time to rebuild that in and I think underscores could really use some contributors to help us get to that Gutenberg-friendly point. Looks like Divi is another option. Oh, someone just put a little smiley face. That's fun. Okay, next question. Last one and then we're gonna dig in. I want to get to know you and I want you all to feel energized and be, yeah, this? I think it's okay. I think it's because I don't have the screen. It's not like the extra screen. Yeah, so it's okay. All right, last question. Have you tried the ACF 5.8 beta? And 93% of you said no, so I feel like even if I only tell you that there is a 5.8 beta, that you are going to get a lot of good information out of this, so guess what? There is a 5.8 beta that you can build blocks in. Mic drop. 4% of you said yes, which is awesome. All right, I'm gonna get back to my slides now. So, while you were on there, you probably saw, and I lost my mouse. Guys, I am like technically falling apart today. Oh, there we go. All right, here we go, back to slides. Then we know they work. On Slido, there's also a questions spot, so you can ask me questions. So, I like to do it this way because then you don't have to stand up in front of everyone and also I can't hear you when you're doing that anyways to ask you questions, so I'll just read it right off of here and I'll go through the questions when we get to the Q&A section. So, if I'm presenting something and you wanna know how I'm doing it or if you have a question, just add it in the Slido app. All right, how many of you don't know what ACF is? Cool, well then these next two slides are for you. All right, so ACF stands for Advanced Custom Fields. It makes content editing easier, in my opinion. It's easy to learn and use. It allows you to add custom made-of-fields to your content and there are free and a pro version of ACF. So, really at its root, what it allows you to do is it allows you to add some custom data to your WordPress content. So, if you were making a list of dogs, which you're gonna see dogs a lot in my presentation to be prepared, you're gonna make a list of dogs. Maybe you wanna ask what is the dog breed and that could be a field that you use Advanced Custom Fields for and then that would be stored as a meta-field inside of your content. So, what can it do? I probably pretty much already dropped the ball on this one on what it can do but it can add a lot of custom data. You can collect theme settings. That's actually probably one of my favorite parts. Is it has this thing called an options page. You can go, you register the options page in your function file and whatever fields that you put in this options page, you can actually use throughout your entire site. So, imagine things like a phone number, right? Like when you're building out a brochureware site, phone number might appear in three to four to five different places. You could put that phone number in your options page and ask your client to enter it one time and use that data everywhere but if they change their phone number, they can change it in one place and it'll still show up everywhere. You can also do, I had a custom page builder-esque thing using the flexible content and again, that's what I told you that I was really scared to let go of. Capture entries through a front end form. That was actually something I found new like a year ago so that is pretty cool. So, you should look into that if you don't know about it. You can also extend your theme capabilities and features just in general by allowing for a lot more customization and as an FOI, that data is stored in the post meta table. All right, we talked about ACF, probably one of my favorite WordPress plugins to date. Mainly because it has taught me a lot of really awesome things about WordPress and continues to make my life a lot easier. Does anyone not know what Gutenberg is? Okay, good. I don't have to explain to you what Gutenberg is which is good. Gutenberg being the new WordPress editor allowing us to do a lot of modular, what I consider like modular design and a lot of things that I think WordPress has actually been missing for a long time. Why not have things in a modular fashion so that you can say, here, client, here are the things that you're allowed to do, go ahead and make your own marketing pages. You don't have to come back to me and build out all this stuff for you just because you want a page to look different. So, I had the first site that I built that gave me the ELSA Freedom, which was so good. I started building out the homepage and got 90% of the way there without any custom blocks. I was able to use the core blocks. I had headlines, I had paragraph text, I had some columns, I had a full-width image. I was able to get 90% of the way there and not even have to talk or even think about custom blocks, which was where the ELSA feeling came in. You guys feeling it now? Like 90% there. And no development really went into that hardly at all. But I had this promo slider that the client wanted. They wanted a slider and why there's not a slider in the core blocks is really beyond me. So, I had a slider that I had to build out. So, there was a couple different options, right? I could learn how to build my own block. I could see if there were other blocks out there. I could spend hours learning React, which I probably should do, but I'm really, really avoiding doing. And so, I had to figure out what my options were. So, ACF is in a beta, so I didn't actually end up using ACF, but it did give me the opportunity to dig through the beta and figure out exactly what it could do. I did end up finding a slider that is already out in the wild. There are lots of really awesome blocks that are already built that are all out there. So, if you haven't embraced building yet, start to find the things that you build, find the blocks that you like, and just do it because you will feel very good when you do. All right. So, ACF 5.8 is in beta version. You can only get this version of ACF if you are a pro member, which I strongly, strongly recommend that you do anyways. It's $71, it's for a lifetime, and it's on unlimited amounts of sites, so the cost is pretty minimal. But it has a function of ACF register block. So, in this, we can register a new block without writing a single amount of JavaScript. Whew, amazing. So, I'm gonna show you what an example looks like. This is pulled directly from the ACF website, which their page on this functionality is quite thorough and really good, and you could very easily read up on all of this yourself. But essentially, we go into our functions file, we add some information saying that we want to utilize this function, we create that, we give it the settings that we want, and then that block is available to us. So, for those of you that are familiar with Advanced Custom Fields, at the end of the day, you can go create your field groups, you put the fields in that you wanna use, and then once you register this block in this fashion, choosing the block that you registered is then an available option for where those fields will appear. All right, so let's talk about the settings. So, there are quite a few different settings with it, and it's not that they're overly difficult, but there was just a few things that I learned as I was digging into this. So, at its root, these first four here that are listed are pretty easy. So, what's the unique name? That is, you know, the case sensitive in my code name. We've got our title. What is that display title? So, that can be whatever we want it to appear on the back end of the site when you are creating a new page. We've got our description. So, it's a short description explaining like what the block can do. So, I'm gonna show you a hero example in just a minute. And so, for that one, it could have been, it's a hero block with an image background and text and a CTA on top. You choose your category. So, if you've used Gutenberg yet, you will notice that there are a few different categories of where you can sort your blocks. It might be common, it might be formatting, layout, widgets, embeds, whatever you'd like. So, you just say what category this actually fits into. There's also an icon. The icon thing has actually been the most frustrating to me, because in my opinion, the WordPress dash icons are lacking, but I also don't really want to take the time to build on an SVG for my icon. However, they look a lot better when they have an icon. So, those are your options. You can use the WordPress dash icons, or you can bring in a custom SVG for the icon. And so, where you see that, I will show you in a minute, but that's in your block. So, when you're editing out blocks, you actually swap that out there. So, keywords. So, as you're starting to add a new block, maybe you want like a column block and you haven't used it yet, or maybe it's not appearing right away. You can start to search, and if you type in like column, it'll pop up with the blocks that are correlated with column. So, in my case, I did a few blocks that I'm gonna show you. So, I did a hero block. So, if I search hero, or if I search image, I want my block to appear. We could also do like a call to action, because there's a call to action inside that block. I also did a couple blocks about dogs, which you guys will be super excited to see. I'm very sure. And so, I put dog and puppy and rescue as my keywords for those ones. So, it's anything that you think someone's going to search to find that block. So, post types. So, you can restrict this to pages, posts, or either of one. And then mode. So, mode is a pretty important decision. So, you've either got your edit mode, or you've got your preview mode. So, when you think about edit mode, that means that when you're looking at your page in front of you, and you can see your content, edit mode means that you are not seeing what the output appears like. You are seeing what a content entry or an editing mode feels like. And then you have to save it, go to the homepage, or go to whatever page you're working on, and actually see what that's going to look like. Where preview mode allows you to see the output and what the template is actually looking like right inside of your page. So, if you're doing things like a hero block, you probably want to see what that looks like, or you probably want to have that in a preview mode. So, those are kind of the two different differences there between edit or preview. And I'll show you exactly what that looks like in a minute. Maybe it's gonna be two minutes though, because I keep talking. Align. So, that is if you want to set a default alignment. So, if you've been starting to work with Gutenberg, you can see that there's a left, there's a center. Obviously, we've got our right. We can go with a wide alignment, or we can go with like a full width. And so, if you wanted to set a default for the block that you are building, you would put in the align setting, and then you would clarify whatever you want that to be. All right, so here are the two things that correlate in my opinion with the edit or preview mode. So, you've got two options for how you want to spout out what that is going to look like, right? So, we've got our block. We can edit it in the back end. We've got our fields and advanced custom fields. But now we need to actually see what that looks like. So, if we're making a hero block, what is the HTML or the markup that goes along with that hero block? And you've got two options. So, one option is to render a template. If you render a template, that's actually going to appear in a different file. And so, you just put into that value where that file actually exists. It can either be inside of your theme, or you can have the full source of that file. Your other option is to do a render callback. So, what that means is that means that the A, that code actually stays in your functions file, so it'll be below your declaring of your block. But it also means that it is going to, when you're building out that block on your page, you're going to see what it's going to look like almost instantly. So, that's where that preview mode comes into play. So, if you want that preview to be available, you want to see what it's going to look like, then you want to do that as a render callback so that you can see that immediately. As I was messing around with it, the render template also worked, but I felt like the callback was a much smoother process and was my encouragement. So, I have little denotations there, but it's not a hard and fast rule, but for me, it seemed to work better, that if I wanted it to be a preview, that I would use the render callback. All right, so here is preview versus edit. So, what I did is I cannot tell you enough how much I love dogs. And I took, I was trying to think of ideas, like what is some content that I can put in here that not everyone is going to get from a core block. And so, I decided, well, let's put a rescue dog in a random place in my website. So, throughout my website, there might be a rescue dog that you can actually go adopt, although at this point they might be slightly outdated, but that you can actually go adopt. And I liked the idea of that, right? Like, let's promote dogs that needs homes. So, I did two different options here. So, one of them is in edit mode. So, it says choose a dog. So, that is going to be data that I've got stored in my site. The second one is just a block that is on my page. The data is stored nowhere else except for that page. And it's in preview mode, so that we can actually edit it. So, we can see that the image is there, the heading is there, and then we can go and edit that information. So, we're gonna come back to the dog blocks, but right now, even though look, there's a dog in this block too. I'm gonna show you what my hero block ended up looking like. So, I will be sharing these slides on Twitter after I am done. And so, you can pull all of these links out of there. But I have a gist out on GitHub for this entire hero block. So, the more I think about it, the more I wonder if this is going to be a problem because I was gonna share my screen, so let's try this. We'll just mirror my display. All right, let's go to my page. Okay, so, we're gonna focus on my hero block right now. So, I did not write any CSS for my editor, so you can't totally see what's happening here. But the CSS is coming because I've got the image in the back. So, I've got my template and I've got that all sorted out as to where I want it to look like. So, I built a hero block. And on the front end, it looks like this. So, I've got the golden retrievers, the title, I've got some random text here, and I've got this call-to-action button that I can have point to wherever I want. So, in the back end, if I wanted that information in a block, I built out my ACF fields. That was my first part. So, if we go into custom fields, we go to field groups. We can see that I've got this hero block here. And I'm just asking for this data. So, I need the background image for my block. I need the headline, I need some paragraph text, and a call-to-action. If I want all that stuff, if I don't want all that stuff, it'll only show what I actually do want. All right, so I made that block. So, in my code, I went and registered the block. So, let's go, actually, let's look at my gist. It might be easier to see it that way. So, this is the, can you guys see that in the back? Or is it a little too small? Too small? Too silent? Go bigger. Okay, cool. All right, so, I registered my hero block. I called it hero, so there's a few different identifications where you can see that hero is being identified. And then I've got my settings down here. So, unique name is hero. The title of it is hero. I've got my description. I'm rendering a callback. So, I've got that template inside of my functions file. I have it under formatting. The dash icon that I have is an image. So, I just pulled the format image from the WordPress dash icons. I have it in preview mode. I wanna see what that's going to look like before I actually update my page. And then the different keywords I have here are hero and image. So, if someone searches hero or image, they're gonna see that. So, if we go here, and let's go edit my block. Just so you can kinda see what it looks like. I was gonna code all of this in front of you and then I realized I was smarter than that. But probably not. All right, so I'm gonna delete this one so we can start over. So, if I remove this block, we wanna add a new one. Here's where that searching comes into play. So, my hero is already here because I just recently used it. But if it wasn't here and I started typing hero, then it would appear. If I started typing dog, then I would see the different rescue dog blocks that I created. So, this is where those search terms come into play. Also, where we can see the dash icon and the title of our block. All right, so I've got our block down here. You can see that the custom fields are over here on the right-hand side. So, that's where we're gonna edit them. So, if I want to change my image, oops, we just go here and we add. And we can also change that. So, if we want this to be in an edit mode or preview mode, we could definitely edit over on this side. Or we can edit over on this side. It's entirely up to you with this setting up here. So, if we made a new headline, let's just do this. I don't think you guys get the picture enough. So, let's do that. Maybe we want a call to action. Let's say that, I don't even know if this is a website. I feel like I should know, but I'm guessing that it is a website. Dogs.com. All right, so I've got the data that I want to appear in my block. As you can see, like I said, I didn't write the CSS to make this adjust necessarily to, so on the front end, I actually have the font color as white, because most of the imagery that I'm constantly adding is dark or has like a dark overlay. So, I could have written some CSS to bring that into my editor. I just didn't do that. And then I would actually be able to see that a little bit better. So, we can see here that my block is ready. Up here is the formatting. So, if we want it to be a left center, wide or full width, normally when I'm building out heroes, I want it to pop. So, I usually do full width. So, we'll just do that here. We go ahead and update that. Now we were able to edit that hero block. Go back to our page. Now it'll be at the bottom. But it's down here with the new content that we added. It really wasn't that hard to do. And this dog's really cute. Sure you all agree. If you guys don't like dogs, you're probably gonna hate me, so I apologize. All right, so let's go back to my gist. So, we talked about how to register that block. We didn't go through the code that I'm actually utilizing to output the visual side of that block. And so, on the visual side, and I got all of this from the Advanced Custom Fields documentation, and you also can just grab this gist if you wanna get started. But right in here, you can see where the things that I made some changes to. So, I wanted the ID to be hero dash, and then it will assign a block ID for me based on the different blocks that are on my page. And so, I've also got my ACF field variables in here, so I'm pulling in that field data so that I can use that later in my output. And then I actually have my output right there inside of this functions file. The hero block is a pretty simple snippet of code that I've built out. If you have a very complex block, I could see for organization's sake that you might want this in a different file. That's entirely up to you how you start to build that out. So, I'm really just using normal standards to write out what I want this block to look like. I've got a section, I'm bringing in my fields from Advanced Custom Fields, and that's essentially it. So, I built a Gutenberg block in a matter of 15 minutes. That's exciting, right? Super exciting. You guys are not as excited as I feel like you really should be. Get your Elsa freedom going, come on. But it was great, it was super great to figure out that this doesn't have to be a scary thing. And even though ACF 5.8 is still in beta, it is something that they're focusing on releasing now now that they've updated the latest version of 5.7. So, it is going to be in a production status very, very soon. And honestly, my level of comfort and confidence in Advanced Custom Fields, I would feel comfortable putting this on a site as long as I knew that I was monitoring and maintaining that site until it got to production. All right, so the other thing that I wanted to look at, and I've been blabbing for a long time, I thought I was gonna be done early. All right, so the other thing I wanted to talk about was that with the rescue dogs, my idea was to put a block on my page so that I could just fill in the rescue dog information as I wanted to freely at random. So, fill in the rescue information and be able to have that in there and have it in there. The one thing that I thought about was, okay, if I want to put rescue dogs in my website, wouldn't I want to store that information so I could possibly output the dog in multiple locations? Right, like why would you wanna enter that information again? So, I decided to start messing around and figure out, could I create a custom post type and then pull the data from the custom post type into my block? And it was trickier than I thought it was going to be, but I did end up figuring it out. And so, that's how this edit mode is. So, I've got this like, and I don't actually know how to pronounce her name, but she is like in Philly, so if anyone's looking for a dog named Ninie or Ninia, what'd you say? Nene, oh yeah, that makes way more sense. Okay, Nene, let's go with Nene, cause I mean like that makes sense. That you could pull in the custom field for that. So, I'm actually rendering a template to do that. And so, what I did is that I registered my block, like I registered any of the other ones and started to use what would be like an output for grabbing custom fields, right? Like we can do that, it's just a query. We pull in the custom fields, we bring in the information we want. We just point our block over to that template file. And that was even more liberating because I'm like, oh, I can start to take custom content and I can build this out and create my own blocks and all using advanced custom fields and no bit of JavaScript except for maybe if I have to build a stupid slider, but that's it. Right, like I can build these blocks without React. So, just because of curiosity, I will show you what I ended up doing here for my block. So, basically the same thing. I pulled in the field, so advanced custom fields has like a post object field and that's what I used for the block. So, when you go to actually edit out your block, I'm just calling for a post object. You can select from the post objects that I've given them. I've limited it to my rescue dogs. And then I'm pulling that in and basically I'm using all the same logic that I would be using from advanced custom fields if I wanted to do this any other way. And I'm bringing all of this in. I've got a few different changes in order to render my template and that's about it. So, that also was like very liberating. I'm like, cool, I can store data and I don't have to do this on a page level and create a block with that data. So, that's as far as I've gotten, but I really feel like if I spend some more time on this, I can turn all of the customized page builder, flexible content that I used to use in ACF into custom blocks without touching a drop of React. All right, so I have no more slides I think because I basically whipped through and explained things. So, Q and A. I'm gonna open up my phone, but if you have questions and you didn't put it in Slido, then I will definitely take those questions. So, my favorite question, and whoever you are, my new best friend, they want to know what kind of dog I have. And this is a very, very important question to answer. My dog is a golden doodle, but I do not only have one dog because clearly someone who is obsessed with dogs has to have multiple dogs. I also have golden retriever. So, golden doodle and golden retriever and they're both great dogs. So, most important question has been answered. Why would someone choose CMB2 over account and vice versa? I don't think I understand that question. I have not used CMB2, but I know that it is a very awesome alternative to advanced custom fields. I cannot answer that question, but I strongly suggest that you look into it if you're curious about it. How can you style the admin block differently from the front end for a similar, more ACFS experience? That is a good question, and I have not dug into that yet. I know that you can write CSS for your editor, and so I would presume that anything you feel empowered to do on the front end, you could be empowered to do on the back end through the preview mode and also through writing your own CSS to make it appear the way that you would like to. Can I make my own blocks category with settings? I do not know. That is a good question, and if you figure that out, you should let me know because I would also like to know. Does anyone know the answer to that? Is that Gordon? I feel like you would know if you could create new, they wanna know if you can create new categories. So, we've got like the, you can, cool. So, figure out how to create the new category, which can be done, and then you should be able to bring that into your ACF block. Good job. Should I get a new puppy? Yes! Who would even ask that? Of course you should get a new puppy. Wow, I tell you what. Where's the bathroom? Come on. The bathroom's down the hallway, to the left at the end. Any known problems with the current beta? I mean, it's a beta, right? Like, there are problems with every beta. There's a reason why it's in beta. They're not 100% confident that it is in a production level. I don't know. Michelle, do you have one? Did you guys hear that? Preview versus edit mode is how you can kind of tweak that so it looks more like the ACF. So, when I showed you Nene's example, where I was like just selecting a post, that would be like your edit mode, where you can see it in terms of like an advanced custom field setting, if that's what that question was asking. What is ACF? Come on, people. I covered this already. When do you plan on learning React? Who put that? Never. No, I'm just kidding. Eventually, but I actually have like a super, super amazing, awesome job where I don't actually have to be a developer in my day job. I just used to be a developer. I shouldn't say used to. I'm still a developer. But I used to do it on a day-to-day basis and it's not a part of my normal job. This website that I was building where I was 90% of the way there is actually like a freelance project that I was working on. So, eventually I will probably learn React, but today I don't actually get paid or have to do that in my day-to-day job. So I don't know when that's gonna happen, but I feel like possibly the person that added this might be able to help me learn JavaScript because this might be like one of those kind of nice but also like learn JavaScript harassment things. Is Pantheon currently? Yes, Pantheon is hiring developers. Whoever said that, please come and talk to me. So I'm gonna like take the last minute to do a little like selfish ploy that Pantheon is definitely hiring. We are actually looking for someone on our marketing team to like build and work on our websites, which would mean that you'd be like a WordPress and a Drupal Dev. But we are constantly hiring people for our engineering team. We are also constantly hiring people for a variety of different places. Roy, did you put this question in here? You're like looking at me, so I thought maybe it was you. But we have like lots of open roles. So if you have any questions, some of them have actual locations denoted in the job. I'm gonna tell you a little secret. Nobody tell Pantheon this, but they will likely consider you to be remote no matter what the role is. Shh, that's between all of us. The theme that I said that I liked is WP-Rig. It is managed and contributed to by a bunch of really, really smart people, like people that I am very happy to call, people that I know and maybe even possibly my friends. So WP-Rig, perfect, awesome theme that you should definitely look into and use. We got like two more minutes and let me see if I missed any of these. Which beta did I use? I use the latest beta, so I think it's like 5.8.3, I believe is the beta that's out right now. Dun, dun, dun, dun, dun. Let's see if I skipped any silly ones and then come back to them. Would it be possible to rebuild a horrible theme? You guys, I feel like this is gonna be a really good question. That your client loves, but slows down your site, onto Gutenberg with custom blocks and would it be faster? I think that really depends on why it's slow. There could be a number of reasons contributing to that, and so I would say if you're going to rebuild it and your client is willing to pay you for that work that you evaluate the reason why it might be slow currently, and maybe you should use really good hosts that can help with speed and performance. I'm not going to name any, but there are some out there. Who could? So yes, it's definitely possible, but I don't think that Gutenberg or your content entry is likely the problem of your site that sounds like there's probably something else that's going on that's causing this, like it might be something in the PHP or database or something is not optimized as well as it possibly could be. So ensuring that you're re-evaluating possible problems or why it could be a problem will help you be more successful in rebuilding that site. And honestly, if your sites are slow and you can't evaluate why or you're not able to pinpoint, starting over and starting with fresh new content in a great version of WordPress is never a bad thing. All right, so we are out of time. Thank you all for listening to me talk about dogs for a really long time. And let me know if you have any questions later. Oh yeah, oh, also, and I said this already, but I'm going to say it again. And so I'm going to make you guys have to do something. You all have to follow me on Twitter, okay? Cause I'm like trying to get more followers, right? Cause that's the cool thing to do. And I will post my slides there. So Tessa K 22 on Twitter. Thank you.