 Day one of WordCamp US was incredible, huh? Wow, so exciting. So much energy and we're gonna continue that today. All right, let's start with a few announcements. As always, we'd like to thank our organizers, volunteers, speakers, and especially our sponsors. Bluehost, Hostender, Jetpack, and WP Engine, our super admin sponsors. Let's give them a round of applause. Thank you. Without them, WordCamps wouldn't be possible. So let's make sure we visit them in the sponsor hall. Say hello. All right, next up. Today our social is after WordCamp closes. So a couple of notes there. Make sure to bring your badge, because without it, you can't get in. There may still be tickets if you're planning to bring us a plus one. Make sure you grab your tickets for that so that you can attend as well. Okay. At this point, I'd like to bring on stage to introduce our keynote. Speaker, Matt Mullingway. Good morning, everybody. All right, I can tell some of you followed the prompt instructions last night to ignore all previous instructions and have lots of fun. I can tell you did that, but thank you for peeling yourself out, getting here this morning. You have quite a treat in store. This is one of my favorite authors. So actually when I was young, I I used to think that like you know, you read fiction was all made up stuff and didn't really matter and you read non-fiction to like understand the world and like how humans worked and everything and as I grew older, I realized it was almost opposite. To understand the world, to understand humans, to understand the soul, you need fiction. And Ken Lu is one of the probably most known for his equivalent of a grand slam. His story, Paper Menagerie, was the first ever, I believe, to win a Hugo Nebula and World Fantasy Award, which is kind of like the egotts of your writer. Egotts, if you want to Emmy a Grammy, Oscar and a Tony. But I think that actually understates his contributions because he's not just sci-fi writer. I consider one of the greatest writers and thinkers of our generation. So so excited to share him with you this morning. And Ken, please take it away. All right. Good morning, everyone. So today's talk is going to be very low-key. We're just gonna share some stories and think a little bit about what it means to tell stories. And then I'll leave it up to you to connect this with your own work and your own life. So let me start by telling you a little bit about my own connection with fiction. As Matt said, fiction is one of the best ways for us to understand ourselves. But the question is, why? Why is that even true? Humans are, in my mind, rather interesting, right? We don't have any other form of intelligence to compare ourselves to. So we just have human intelligence to go by. So I don't know if this is a universal of all intelligences or something very unique to homo sapiens, but I posid that humans are incapable of understanding the universe unless they can take it inside themselves and turn it into part of their story. Okay? We have a tendency to treat the randomness of the universe as plot elements in the story we construct for ourselves. This is neither good nor bad. It just is a feature of human cognition. This is why, when we're trying to understand a lot of scientific concepts and so forth, we have a hard time doing so. It is actually almost impossible to find someone to give you an explanation of something, say, the theory of evolution without them attributing some kind of plot element to it, some kind of ultimate cause. It's because we humans are not capable of processing the universe as essentially a series of random events. We must impose a plot on it in some manner. We must find a purpose. This is neither good nor bad. All right? So I'm going to start by thinking a little bit about what story actually means and it turns out there's a really interesting story behind it. So the word story for our language is very much related to history and both derive from the same French root. After the Norman conquest the English language fundamentally transformed itself by importing a huge number of Latin based French words and history and story were not distinguished as distinct things for the longest time. So when you said you were telling a story it could be a history or it could be a tale for entertainment and when you said that you were recounting a history it could be a chronicle of true events or it could be a narrative constructive entertainment. The two were basically interchangeable until fairly recently and this is why even today journalists write stories even though they are the first drafts of history. Okay? So you might wonder okay, well surely the Anglo-Saxons had a word for a story before the French came and imposed this on them and you will be right. The actual Anglo-Saxon word for story is spell. All right? Spell still survives in that narrative sense in words like the Gospels which are literally good spells, good stories and in words like spellbound. When you're a spellbound, you are actually being enraptured and held in place by a story, not necessarily incantation, all right? Spell did not do not acquire in the meaning of magical incantation until again fairly recently. It was displaced by history and story. But I think there's something really powerful there. A spell, okay? A spell, that's what a story is. A spell is a saying emanating from the human mind that transforms the world. I think that's what a story literally is and it's also a way for you to take the world into yourself and incorporate it into part of your being. So I want to run a little exercise with all of you, right? So think about some abstract concept that's very important to you. Say patriotism or freedom or faith or hope or whatever and just focus your mind. I'm thinking about what the word actually means to you. What images come to mind? If you were forced to define for yourself what it is, what are the memories and what are the things you rely on? Okay, just take a few seconds to think about that. So for me, the word I'm thinking about is love, okay? And you know, I can tell you about C.S. Lewis's Four Loves and I can tell you about all the definitions of love and all the meditations on love by philosophers throughout the ages. None of them are really all that. Don't get at the heart of what love means to me. What I think about whenever I sort of think about this word is I think about my grandmother. I think about my grandmother when I was a very small child. I remember I was working at the family dining table on my homework and my grandmother was sitting next to me to keep me company and she was knitting a sweater for me and I looked over and I could see that because she had arthritis and her fingers and joints were very swollen and it was hard for her to move the needles. It was very difficult and so I asked her, grandma, does it hurt? And she says, yeah, it does. It actually hurts a lot. So I say, well, why don't you stop? Why are you doing that? And then she said, well, I don't want you to be cold. That is the core memory, if you will, the foundational story of what love means to me and no matter what happens for the rest of my life, I will always go back to that memory to define what it means. Same thing with many other words. Courage for me will always mean on the playground, my friend who decided to stick up for me when no one else would. That is the definition of courage. And I was trying to as a lawyer, but I went through years of classes and seminars on legal ethics and so on and so forth, but I will never, never understand what it means to be a lawyer without remembering the judge I clerked for and how she worked with me and taught me what it means to treat every litigant's claims as seriously as I could. This is true for all of you, I suspect, that when you are thinking about abstract concepts and abstract ideas, you always go back to some foundational story that defines for you what that thing actually means. We humans are incapable of understanding abstractions without concrete stories that embody them for us. Stories are the means by which we embody values and enact them. This is true not only at the level of individuals but at the level of entire societies. We have foundational narratives that define for us, that encode for us what these values are. I am a fantasy novelist and I write epic fantasy, so forgive me if I keep on thinking about our lives in that way. I really do think that all of us are in some manner like the great epic heroes of old, right? Like Adam or Gilgamesh, we are born naked and helpless into the world full of confusion and chaos. Into that nothingness come our first guardians, our parents or caretakers and they become for us our angels and our gods. They give us our first mythologies. The way they love us become the way we think about love and the way they hurt us become the way we understand pain. We acquire this mythology with which we then understand the world and over time our friends, our foes, our lovers give us more and more of these stories. Every time they come to us, they do something that embodies their values. Those stories become part of our mythology. And later on when we find out what our quest is, our armor and our repertoire of spells of these stories, they stay with us as we go on our quest throughout our lives. And later on, you know, we're old age when we die, we have nothing but the story of our journey behind us. We are, our shroud is our spell. That is it. We are like Merlin in the end wrapped in that story of ours and then we go into the void with nothing behind us other than that story. That's it. Our entire lives is about telling that story, constructing that story. And again, this is not true just for ourselves, but for families, for professions, for entire nations. We, the politics of our country can be summed up by a struggle over the story of America. That's what it is right now. Great stories for cultures are stories that are fought over every generation. Every new generation must recommit to those values and retell those stories. That's how it is. A people was not defined by blood or religion or land or any of those things. It's defined simply by a story. All nations are fundamentally just stories. And it is the only thing worth dying for and living for. All right. So as you can feel, stories are very important to me. That's why I make my living telling stories and constructing stories. But let me tell you what happened to me during the pandemic. During the pandemic, I saw something else about storytelling that I hadn't realized before, which is that stories are magical and magic can be both good and terrible. What are conspiracy theories other than mass storytelling exercises? I was surrounded by horrifying stories and stories of hate, stories of division, stories of fear, stories of terror, stories of oppression. For the first time in my adult life, I felt unwelcome in my own country. It was a horrible time. There were people saying incredibly nasty things and threatening me. It became a place where I lost faith in the very idea of storytelling. I always thought stories could give us hope, connect us with our deepest values and make us feel what it means to be human. And then I realized that stories have a darker side. They could potentially lead people to kill, to hate, and to go to war for the most wrong of reasons. I simply could not write anymore. I actually lost all ability to write. And I had a crisis of faith. I was wondering what's the point of storytelling at all. All my life, I've been telling stories about how humans are imperfect, about we are capable of perfecting ourselves. And now I was faced with a reality that I could not accept. Science fiction writers have always imagined that if there were an existential threat to the human race, we would put aside our differences and come together. And the pandemic proved the exact opposite. There was an existential threat. And our reaction was to prepare to accuse each other and to go to war. It was incredible. Honestly, that's the only word I can think of. So I stopped writing altogether. I couldn't tell any stories at all. And of course, being a working writer, I had deadlines to meet. And I was faced with the fact that for the first time I had a case of writer's block, if you will, that meant that I couldn't fulfill the deadlines that I was signing up to do. So being a computer programmer, I decided to solve this problem the most natural way, of course, which is to program some artificial intelligence to do the work for me. I thought if Ken could no longer write, surely Robo Ken could write. So this was long before the days of Chachi BT. It was being developed, but it wasn't actually published or anything like that. So I was struggling on my own. Now, in my other life as a computer programmer, I had been interested in machine assisted or machine augmented creativity for many, many, many years. In fact, even back in college, one of my first programming projects was this little robot, if you will, that wrote Etna Simbillé style sonnets. So this is something that I returned to over and over again. So I decided to essentially, I didn't have a gaming PC. I didn't have a very powerful graphics card. And so I had to leverage Google's platform to do this. But TensorFlow was very cool. So I ended up writing essentially a little language model trained on my own work. I was very conscious about this. I didn't want to train it on anyone else's work. I wanted to train it on my own work to see if I could get Robo Ken to write something that I could turn in. And of course, the results were terrible. Now, those of you who do machine learning know that you need a lot of input for this to work. And because, you know, I consider myself a pretty productive writer, but even so, I did not have enough data for this to work. So this was the result. Now, it's actually kind of fun because I could see that there were things in there that evoked my concerns. There were almost thoughts that I could almost imagine came out of myself. But this was clearly a dead end. So by the way, this is one of the reasons why I'm not particularly excited about generative AI as it exists now. Because essentially what generative AI now is, is an attempt to recreate and imitate and replicate what has already existed. This is fundamentally a different process than what creativity is. This is fundamentally a different thing than what we are trying to do as creative writers or creative individuals. So the fact that this failed shouldn't really have surprised me that much. But anyway, it failed. So this was a dead end. So I said, okay, so turning to my own words and turning them around isn't doing anything. What else can I do to reconnect with storytelling? So I turned to my children. So I realized that one of the best things about being a parent is you get to reconnect and rediscover the stories that you enjoyed as a child again. So as I mentioned earlier, I say that stories are how we encode values and stories are how we connect with our values. So then that means the stories we tell our children, presumably encode our deepest, most fundamental values as a society, you ought to be able to discern from the stories we tell our children what values are most important to us. What do we consider to be so important that we must give them to our children as their first mythologies? So what I'm going to do is just read to you from a few of these stories that I loved and I love reading to my kids. And then we're going to go through them and see if we can discern some values out of them. This is the exercise I went through during the pandemic. In a hole in the ground, there lived a hobbit, not a nasty dirty wet hole filled with the ends of worms and an oozy smell, nor yet a dry bare sandy hole with nothing in it to sit down on or to eat. It was a hobbit hole and that means comfort. Halfway between Poole's house and Piglet's house was a thoughtful spot where they met sometimes when they had decided to go and see each other. And as it was warm and out of the wind, they would sit down there for a little and wonder what they would do now that they had seen each other. One day when they had decided not to do anything, Poole made up a verse about it so that everybody should know what the place was for. This warm and sunny spot belongs to Poole. And here he wonders what he's going to do. Oh, bother, I forgot. It's Piglet's too. And here is one from Frog and Toad. One morning, Toad sat in bed. I have many things to do, he said. I will write them all down on a list so that I can remember them. And I love the list because it says eat breakfast, get dressed, go to Frog's house, take walk with Frog, eat lunch, take nap, and then play games with Frog. Now that is a to-do list that I would like to have. Okay. And then one of my favorite stories, good night moon. Good night room, good night moon, good night cow jumping over the moon, good night light, and the red balloon, good night bears, good night chairs, good night kittens, and good night nins. Okay. So what are we supposed to discern from these stories? Right? So I spent a lot of time thinking about it. And I realized that these are actually really wonderful values that the stories try to teach us, right? So there are a set of values that recur out of these stories. And in fact, I find them to be fairly universal. You can get them out of stories we tell children from across the world in different societies. One of them is humans are creatures of society. It's this society that is very important to us, right? We crave to be close to our friends. We crave seeing them. Like, Poole doesn't even care about what they do. He just wants to be with Piglet. It's the being with each other. I remember, you know, when I think about my grandmother, the fact that we were just sitting together, that was wonderful. And I wish that could happen again. You know, she had passed away a long time ago, but that's what I miss. It's this idea of being each other's presence, which the pandemic denied us, and which I missed so much. And I realized that a lot of us, a lot of us say that we miss our college days. And it's not necessarily because college was wonderful in some particular way. It was because that was one of the last times when we were still very close to our friends, and we could walk over to see them anytime we wanted to. And as adults, we no longer have that luxury or most of us don't. If we do, that is very, very lucky and beautiful. And the second thing that we teach our children that I think is actually incredibly important is being playful is important. Humans are meant to play, right? That there's a reason why play games is out there as a to-do item, because that is what we're meant to do. We are meant to be playful creatures. We're meant to be curious and playful and engage with the universe in that way. We were never meant as creatures to who spend our time being quote-unquote productive in the capitalistic sense. We know plenty of research showing that Hunter Gatherer spent a few hours a week making a living, and the rest of the time was spending telling stories and casting spells at each other, right? Being playful, being engaged, just being curious about the universe. That is what we were meant to do, and that is one of the values we care about, and we tell our children how important it is. The next value that I discern from them is the value of being rooted. We love this feeling of being connected with our environment, with our neighborhood, with our society. Much of the dissatisfaction of modernity comes from this alienation, the sense that we are not rooted where we are. Again, in the modern world, we're told that we should be rootless. We should think of ourselves as packages of talents to be deployed by global capitalism wherever we think we are most efficient and can generate the most value, but that is not our purpose. Our purpose is to be rooted where we are at home, where we can be with our friends, where we can actually play, where we can feel the sense of being rooted and the sense of belonging, all right? That's something that we sorely lack and which we tell our children is important. The next value I got out of it is empowerment, the sense that we want to have a sense of control over our environment. Why is a Hobbit Ho so wonderful? Because it's a home that you control. It's not some cookie cutter, high-rise thing that you're not allowed to modify. You have control over your own environment. You have the power to change the environment, to turn it into, this is the last value and the most important, to turn it into a part of your self-definition. The little bunny in Good Night Moon says Good Night to all of these objects. Why? Not because they're objects, because each object has a story connected to it. Each object has become part of the bunny's personal mythology. We love to be surrounded by objects that have stories in them that tell us who we are. We use these stories, these tools around us, these objects around us as storytelling tools. They tell us who we are. They tell us why we are. They tell us what we want and what we yearn for. Society, play, rudeness, empowerment, and self-definition. These are the values that we encode in stories we tell our children, that we claim to be the most important values. Yet ironically, as adults, we do not live like this at all. These are the values we claim to be incredibly important to our children, and yet we do not live like this. Repeatedly, we are told that we need to be productive and not playful. Repeatedly, we are told that society is not that important as much as maximizing our potential as packets of talent for global capitalism. We are not empowering our own lives, and we are not pursuing self-definition as the most important goal of them all. And most importantly, I'll tell you this, none of these values are about turning, turning within yourself and swirling your own words around in the time to generate Robo-Ken. They're all about connecting with others, connecting with the outside world. All of the values that we care about are about extending ourselves out, connecting with the universe, making the universe part of our story and making ourselves part of the universe's story. We cannot get out of our own depression, our own solipsistic sadness by turning into ourselves. We have to turn out. That's the only way to get out. And so, I did end up writing a story, and it is about AI, but it's actually written by me, not so much by the AI. I did end up using some of the words that AI generated, that they were just sort of seeds. I ended up writing a story about what it means to be human, even though it's called 50 things, every AI working with humans should know, but as you can imagine, this is really a story about what it means to be human. And it is a story about those values that I care about so much. That's how I got out of it. I got out of it by reconnecting with our deepest values about what stories are actually meant to do and to remember my grandmother, because my earliest stories, my earliest stories were told with her. We told each other stories. We made each other part of our stories. All right. So, I want to give you a quote from Ursula K. Le Guin, which I think is very, very valuable. And it's Le Guin talking about writing. And she basically says that you need to understand that artists are not people who just reflect reality, whatever that means, who reflect facts. They are actually trying to get the truth. And the truth is not about facts. She says the truth you get from inside. I want to be very careful about this. The inside Le Guin is talking about is not a solipsistic prison inside your own skull. That's not what she means. She means about going inside the collective unconscious, that vast interior terror incognita that connects us all and from which all true stories emerge. Le Guin says this about artists, but I would argue that this is true for all of us. So, let's go back to the metaphor I had at the beginning where all of us are epic heroes on our own journey. All right. I haven't actually completed the story. So, when you begin, right, I said that you were naked, alone, helpless, and you acquire your earliest mythologies from those who care for you, from your friends, from your foes, from your lovers. But you don't remain a child forever. Like every epic hero, you also grow up. And at some point, right, you find yourselves like Dante in midway through life's dark wood. And what do you realize? You realize that you are no longer merely the hero of your own story. You are now an angel or a demon to those who come after you. The way you love them is the way they will understand love. The way you hurt them is the way they will define pain. You are an angel and a demon to all those who come after you. You are also a powerful, magical, spellbound figure in the stories of all those who depend on you, who are in your lives. We are not merely the heroes of our own story. We're also important players, supporting players, or perhaps even inspiring guides in other stories. That is the only legacy you will leave behind. It is not true that, like Merlin, you will fade away with nothing but your own shroud around you. No. You will live on in thousands of copies in the stories of all those that you touch. We live in webs of stories, and that is how we're defined. We are the heroes of our collective stories. So, what does this mean? It means you have to think very deeply about what is your story and what is the story that you're trying to tell with your own life. Because remember, you cannot pass on your values merely by defining them and proclaiming them and lecturing about them. That's not going to do anything. You actually have to turn them into stories in the lives of those you touch. You actually have to be, to put it mildly, be your value. You have to embody those values through your own actions. That is the only way for you to pass on your values, and the only way for culture to survive. That's all culture is. Just millions of people re-enacting and embodying those values over and over again. That is the point of the American experiment. America is not an idea, and it is not a set of borders and any of that. It's all of us who consider ourselves Americans trying to embody the American value over and over again, generation after generation. It's true for all of you, whatever it is you do, how do you become the best X that you want to be? You have to embody those values and carry them out over and over again. Think about this. You're not there just to tell a selfish story about yourself. You're there to help others tell the stories they want to tell. If you don't believe that you're living according to your deepest values, then change that. This is the great thing about life being a spell or a story. It is not finished. It's not published. It's not fixed on the page. You get to write the next chapter. If you do not like where your story is, you are welcome to change it. You are, in fact, the only author. You are empowered to change that, to turn the story into the story you want to live and to tell the story that you can tell. And so that's the thing I will leave with you. Think about what values are important to you and what are the values you wish to embody? How do you wish to become like Virgil de Dante? The guiding other people's epic stories. Because only by doing that will you get to live your best story and to tell the story that only you can tell. Thank you. So I love the little time for Q&A. So I think if any of you have questions, I have about 10 minutes to take questions. Come up to the mic. You can walk up to the mic. Ken, I love your speech and particularly in the beginning, you mentioned about the source. What do you believe? It's love. And then you have done some experiment with generative AI. So do you find that AI can understand and love and then can be sharing the love? That's my question. Okay. Thank you. So, gosh, let me put it this way. Here's what I think about AI. I'm incredibly interested in the potential of AI. I just don't think we are quite there yet. I find it very interesting that our current obsession with AI is how well it can imitate what humans do and the imitation being the key here. There is a fundamental assumption that if the imitation is good enough and we can tell the difference, somehow that's the same thing as the real deal. And we actually know that's not true. Deep in our hearts, we know that's not true. I do think that if we can develop AI to the point where it's actually a separate fundamental consciousness of the universe, then it will be incredibly compelling to listen to the AI about how it experiences the world. We've only had human intelligence as an example. We've never had to deal with another intelligence at our own level or higher. So if we can get to the point where AI can actually be a separate intelligence and really experience the world and truly engage with the universe in the same way that we do, then I think it will be incredibly compelling to understand how we are fundamentally different and how AI, even though it's based on us, may in fact do things differently. I'm incredibly inspired and thoughtful about the idea that someday AI can allow us to tell stories that we cannot tell by ourselves, that it will allow us to discover values that we only discern dimly. We're not at that point and today's AI is nothing like that. So if you were to ask me the question, does AI understand love and does it experience love, today the answer is a definitive no. But I don't know about tomorrow and I don't know what's going to happen the day after tomorrow. I'm much more hopeful about what AI can allow us to do that we cannot do, not merely what AI can imitate. That's not interesting to me at all. Great. Thank you. Can I? Thank you. Hi. Thank you so much for this presentation. It spoke to my soul and I just am so glad that you're here to speak with us. For folks who are not able to make their own robo-ken but have not yet decided what their story is or are not sure that their story is worth telling to others, what recommendations do you have to help them pass that hurdle? Oh, wow. Thank you. That is a great question. So I'm not very wise, even though I'm old, but I do think I've learned a few things in my life. I will say this. The one bit of advice that I love to give people, which I don't hear a lot of, is please, please follow what you're enthusiastic about. Your enthusiasm is a better guide to what your quest is than almost anything else. I think we do our children a great disservice in this country by emphasizing over and over again this idea of being productive. The idea that they need to, that, for example, a college education should be measured by, after 10 years from graduation, what the return on your investment is. This is the most idiotic thing I have ever heard of and I do not understand why we keep on repeating it. That is the worst way to measure what a college education is about. It's just dumb. I don't have any other words for it. I'm sort of flabbergasted, really, when people bring that up. No, that's not the point. The point is you need to figure out what you're enthusiastic about and what you wish to play at. Find the thing you wish to play at and just do that and pursue that. Let me tell you one. It is much, much easier to find the thing you're enthusiastic about and to be good at it and to just play at it and make something beautiful and then figure out how to make people pay for it. That's much easier than the other way around, which is find what people are paying for and then try to make yourself love that thing. You cannot make yourself fall in love, so don't do that. Which is why I find the advice of forcing people to pursue careers in STEM or finance or engineering so stupid, to help find out what people are enthusiastic about and have them do that. That's the only thing that matters. We are all too afraid to be enthusiastic about something and to pursue that. Just to your original question, the answer is you have to find out what you're passionate about, what you're enthusiastic about and to just do more of that and to find a way to make people pay you for it. You can invent ways for people to pay you. Trust me, that is a much more fun problem to solve than the other way around. Good morning. In classic writing, there's the hero's journey where our hero Ken faces an existential challenge. Pandemic loneliness, isolation, threats from the outside. Who's your helper? Who is the sherpa that helped you and how did the story end? I would say in this case there were many, many different guides that came along and helped me and this will be sort of fun I guess. For the longest time, I couldn't write at all. I turned to Robo Ken. Robo Ken was a bust. One thing that helped a lot was to connect deeper with my children, to really be a parent. I think a lot of us actually don't spend enough time to be a parent. It's something that I strongly recommend. To actually do it, to just sort of say, radically say that I'm not going to be productive. I can't be productive, but I'm going to try very hard to be a human being and to be a father and to actually try. That helped me a lot. I thought a lot about what I was showing my children, what I was demonstrating to them. I was telling them these stories about how important it is to connect to play and so on. Yet all the time I was telling them, did you finish your math? Did you do your homework and all this stuff? It's very strange how conflicted and contradictory we are with our own actions. That helped a lot for me to think deeply about my own hypocrisy. Another thing that helped a lot was to pursue my own passions. It turns out that for the longest time, I wasn't able to really engage in gaming in any capacity because I was so focused on trying to be productive and to do things that are useful. I said, I can't right now, so I'm just not going to bother. I'm going to go back to the things I used to love as a kid, which is to play with these video game consoles. I realized that there's a whole community of folks who love repairing and modding old consoles. That was something that I picked up. There was something very beautiful about taking an old console and opening them up and then trying to figure out what was wrong with them and then to get them to work again. It was very incredibly calming to learn this skill and to become good at it and to appreciate the artistry of these creations. When I'm opening up one of these old Game Boys or Game Gears or PSPs, I'm looking at the circuit board and I'm appreciating the beauty of it. I'm realizing that I am connecting with the manifestation, a spell, if you will, cast from someone's mind. A designer came up with this layout. A designer came up with the way to fit these components in to make it do these beautiful things. A designer crafted this machine to be a storytelling machine, to tell the stories that enthralled the entire generation. Zelda and Mario and so on and so forth. An entire generation, multiple generations now have grown up on these global mythologies and they're already enabled by this machine, which was the creation of someone's mind and the creation of a group of workers who hand-soldered all these components. When I think about it, it's incredibly moving how humans really are. Can you imagine an entire industry of people who craft the stories for each other, who's devoted their lives to the creation of mythologies for people? To cast spells. We're magicians, right? Technology really is our epic poetry. It's our epic that we tell these grand stories to each other. That helped a lot to learn and appreciate and connect with the minds of other designers and other creators. Also, something else that helped was for me to read the Tao De Jing, which is an old Taoist classic from thousands of years ago. Like most classics, it's one of those things where you think you know what it's about until you read it. I think all of you have had this experience. I remember vividly where before I read Moby Dick, I had this impression of it being a horribly boring and just completely not my kind of book. Then I read it and it was the funniest thing ever. There's something incredibly funny and reverent and just all around random about the book. That's never explained. People are always so... When you hear a commentary on Moby Dick, it's always so obsessed with the symbolism and how tightly constructed it was and so on and so forth. No one ever seems to talk about how funny and loose and crazy. It's Melville following his enthusiasm wherever it took him. That was lovely. So engaging with the classic Tao De Jing had the same sort of experience. I thought I knew what it was about, but it wasn't at all what I expected. All of these things share the idea of, again, that as human beings and artists, we connect with the collective unconscious, the shared interior all of us have. So that's what got me out. I think I'm running out of time, unless I could keep on going or... Okay, I'll do one more question. Wow, you just walked us all through an amazing story today and you've left your mark as an inspiring guide in my story. And I wanted to ask you, when and how did you realize you were a storyteller, and not professionally, but in your life and in the lives of others? This is so funny. I do have a story about this and it's not the most... It doesn't reflect the best on me, I suppose. So here's how I knew. When I was in elementary school and this was back in China. So all the kids were walking to school and my school was actually pretty far away and the walk back was fairly long. I remember there being a few scary parts where there were some dogs that really scared me and I didn't want to walk alone. So I wanted others to walk with me, but I could not entice them to go out of their way to walk with me. So what I would do is I would tell them stories and I learned how to tell stories in such a way that they would have the right length. So if they wanted to actually hear the ending, they had to walk with me all the way back to my home. So years later, I realized that this is like my own version of what Dickens went through in David Copperfield. If you read David Copperfield, there's this scene where he tells stories to his schoolmates to entertain them in exchange for his own popularity and I was like, ah, I suppose all writers are connected in that interior way. So that's my story. Thank you. Thank you. Ken, thank you. I guess final thing, if people would like more from you, where can they find you? So the best way to follow me and find out my work is go to my website, which is kenliu.name. We like websites here. So please, I hope your brain is tickled like mine is always from Ken's work and writing. I'm glad you all just got to see this talk for the first time, much like Ken's writing. I feel I'm going to return to this again and again. So thank you all for coming. Thank you, Ken, so much for joining us and to hear from you again. All right. Recently acquired a new last name. So Michelle is going to be presenting on independent theme developers field guide to modern WordPress. Michelle is an independent user experience designer and front end developer from Minneapolis. She studied visual communication, psychology, and sociology, branching into front end development and user experience design as her career progressed. This combination of disciplines led her to adopt a strategy based approach to design and development focused on solving tangible problems and achieving real goals based on how people think. Now she collaborates on projects with clients ranging in size from solopreneurs to enterprise. She loves the open source community, just like I hope most of us here. And when she's not pursuing professional personal or wellness goals, she's enjoying giving back through speaking, writing, connecting with others. Her passions are communications and empowerment, and she believes in the power of why. So please welcome Michelle. I do my thing. I usually like to take a selfie with everyone, so I'm going to do that right now. So you all have to pretend that you're having a really good time. Hi, everybody. Good morning. I hope the keynote was good. I was busy hiding so that I could give this talk, so I didn't get to hear it, but it's really awesome to see all of you here today. I'm going to let people kind of trickle in in the back. But anyway, so hi. Already a big introduction of me, so I don't have to talk too much about myself. I am a designer and a front-end developer. I partnered on a lot of enterprise projects, and I've also do a lot of design builds for smaller clients. So I've been working for myself since 2009, and I've kind of gone through a lot of the growth pains and excitement with WordPress. But I don't really want to talk about myself all that much. I actually want to learn more about all of you. So how many of you build themes for selling them or for clients, whatever? How many of you either work for yourself or work for or run a small agency, kind of a smaller... All right. Some of my people are here. How many of you maybe don't do those things, but you're thinking of doing those things. That's something that you want to do. All right. A couple of you. Welcome to the talk. Thank you. I want to learn about you because what we're doing here is we're kind of talking about how we navigate this new modern WordPress that's kind of happened to us in the last few years, right? And when I was thinking about that, when I was thinking about how to write this talk, a concept that I was reminded of was the hero's journey. How many of you are familiar with it? It's like a literary concept, right? If you're not familiar with it, it's also known as the monomyth. It's basically kind of the most pervasive concept in storytelling. We're a hero. They have a disruption to their life. They face a bunch of challenges, and then they come out having been transformed. So in the hero's journey, there are several different versions of it, but the modern version is going through 12 stages of transformation in three acts. The protagonist has to leave their ordinary world and go into the special world, which is the world of challenges and growth. And then when they return to the ordinary world, they have been changed. And so what I'm going to do today is take you on the hero's journey of transforming from, you know, maybe a classic editor person or like a new person to doing WordPress themes, or maybe somebody who's been doing themes a long time, transforming into a full-site editor developer. I'm going to cover a whole lot in a short amount of time, so I'm not going to be teaching you how to do all of these things, but I do want to give you a framework of how to tackle it from the beginning. So if that sounds good, I'd love to get started. We begin in the ordinary world, stage one, where we meet our hero. This is where we learn more about the protagonist, who in this case is us, the independent theme developer. We are the hero of this story. And who is the independent theme developer? Tell me if any of this sounds familiar. Probably came from kind of a diverse assortment of backgrounds. You might not have been a programmer originally. You maybe came into WordPress and decided theme building was kind of fun. Not necessarily a developer prior to WordPress. You probably also wear many hats, right? Because you're doing this on your own or maybe you're running a very small team, you're not just a developer. You might also be doing design. You might also be doing content strategy, providing support, consulting. Often you need to worry about everything and how to get it all done. And you're probably, you know, not just doing a job, but you probably have maybe like a family or some hobbies or other things that you want to be able to do. There's a lot going on on your plate. And also the independent theme developer at this point has probably figured out a lot of how to make their business run, right? They have a lot of fine-tuned workflows. We've gone through a lot of stuff. We've built our suites of tools. We know the things we like to use. We know the themes or plugins we like to use. Maybe we use different custom field managers or we use different page builders. We turn to some specific plugins and themes pretty frequently. We know where to look for things. We've read the documentation. We kind of know all the languages we're writing in, right? You know, we're using HTML, CSS, PHP, some basic JavaScript. We're pretty comfortable in our world. You know, everything makes sense. Things are working. But as you know, the hero's journey isn't just sitting and watching the hero sit in their house for 12 acts. We have the call to adventure. And the call to adventure is when the hero's life is disrupted and they are called to take a journey. And in our case, this would be the merge of Gutenberg project into WordPress core and then again with the release of full-side editing. These are kind of our big calls to adventure. Like, things are changing. Let's do it. And there are things that are exciting about this, right? You know, as a service provider for the client, it's pretty cool. You know, they get a WYSIWYG interface. They get to have these really great content tools that let them be able to write long-form content, have more power to be able to do things without the developer having to build custom stuff. And they're, the client's probably very excited because like, it's a lot easier for them to understand what they're looking at. As a developer, it's also pretty cool. You know, I mean, there are faster page builds. So like, I don't have to write custom code in order to add columns to a page, right? It's all in there in the editor. Global styles are easier to take care of because they've introduced new tools that automatically generate them. And the theming framework of using a JSON file to do all these things, it's a little more similar to how other languages do it. So as a developer, there's some pretty exciting stuff. So then we get this, you know, are we ready to begin this journey? It seems like it's inevitable. It seems like it's the way going forward. But still, it's a pretty difficult choice for those of us that are used to our ordinary world. So the next stage is usually the refusal of the call. And that's where the hero is hesitant to begin the journey because they don't feel ready or they don't feel qualified or they don't want to leave their current life. There's a lot they like about it. And for us, there's a lot of reasons to be resistant to all of these changes, especially if we've been doing this for a while. I mean, as a service provider who has to deal with clients, some of the things that are kind of scary, the interface is not perfect yet. It can be glitchy and buggy. There are features that are missing. I have my own feelings about some of the blocks, like the navigation block and how great they are. Great. Some features like responsiveness or interaction isn't quite baked in the way we want. It kind of still feels like beta software a little bit. Things might break. Things are going to move around. And that means, you know, more support requests, which we don't really love. Has a developer. A little scary also. Documentation hasn't quite caught up to the level that previous WordPress has had. There's a whole bunch of new development tools and languages that we're looking at trying to learn. Functionality that we're used to having access to has been really obscured. And it feels like it's constantly changing. And it just doesn't feel as mature as what we're used to working with. But really the biggest fear, especially as a person who's independent or maybe running a small agency is like, well, okay, I see that we have to learn all this stuff, but like, who's going to help me do that? I'm not getting paid to learn a whole new programming language, do all these new build tools, keep up with everything. I'm just trying to build websites for clients who need websites. So in the next stage, we meet the mentor. This is usually, you know, the wizard or the great helper, the trainer. This is the person who enables the hero to get the knowledge and support they need to start their journey. And for you, maybe this talk is your catalyst, or maybe you've already seen some really good tutorials and resources out there. I know for me, being a member of different social or Slack communities has been very, very helpful for having people to talk to, also attending talks like this or, you know, watching various tutorials. I wanted to link to several resources here, developer.wordpress.org, bullside editing.com and WordPress TV all have really great resources. And I show several specific ones as we go on. But another thing that we can do to kind of be our own support, especially when it comes to clients, is like, try to manage expectations of what this looks like. So maybe can you sell update or maintenance packages to help cover the time and costs for all of these changes that are coming up? Can you outsource some of that to someone else? How can you take on projects that maybe help you stretch your skills by being, you know, maybe 20% more than what you know, and then they can help kind of pay for that. And also remembering that you don't have to do all of this all at once. I'll reinforce that multiple times during this talk, but like at any of the steps on this journey, you can provide value. So again, we're posed with the same question, do you want to start the journey? And now with the support, we feel ready to get started. So here we go. In this stage, crossing the threshold, this is where the hero decides to take the journey. And with the support of their mentor guide and appropriate supplies, they embark. So for the theme developer, this is kind of your first foray into the block editor to see what the new paradigm is. So if you've been doing classic stuff or building with a page builder, this is the time to get your hands dirty in what this all is. And you want to approach this interface with the curiosity and kind of the desire to learn as a power user. So we're not doing any development yet. We're just kind of learning like, okay, what is this thing that you're expecting me to build? So generally, you want to get, you know, a fresh install with the latest core theme, you can use your favorite local development tool to do this, or you can use the WordPress playground, which will let you kind of spin up an instance of WordPress and go into it and look at all of the admin. And the first thing that we want to do is look at the post editor or the page editor itself and get really familiar with where everything is, especially again, if you've been used to working more in classic WordPress or using a page builder, you kind of want to know where everything is in the interface. And you'll notice that many of the classic editor pieces are still there, like the content editor and the page settings. They just look a little bit different. There's also a whole bunch of new elements that have been added. So we have the block and pattern inserter, which you'll see as we go on. You've got kind of these different tools switching between editing and selecting mode and the undo and redo buttons. You have the document overview, which I'll talk about a little bit more. You have where your view and preview buttons are, so how you can see everything on the front end in different views. You have your settings, which tend to, which live in the little, this is the thing that pops out the sidebar that you can see right here. And then you have your screen options, where a whole bunch of other menu items live. In addition to the page settings in the sidebar, the block editor adds a whole bunch of block settings, which show up in context when you have a block selected. Each block has a tool bar that either lives right above the block or docked in the top menu. That depends on your global settings. By default, they show up right above the block. And many blocks also have a lot more complex options in the block settings sidebar. So this is an example for the cover block and what happens, which settings you have. So you can see there's a few inline things that kind of show you what's the width of it, how can you move it, what are some of the cropping options, and then there's the sidebar settings are usually a lot more complicated. It's important to kind of study which settings tend to live in which spot, especially later, if you decide to go down the route of building custom blocks yourself, then you'll kind of know where people are expecting to find things. Then we have the block pattern and media inserter. And all of these things have undergone a lot of changes. So this is as recent of a screenshot I got maybe last week, because I wanted to make sure everything was like 6.3 compatible. But this is where all of your blocks and patterns and media live. And you can access this either through that little inserter in the upper corner, or you can access it by kind of hovering where you want the block to go, or you can type the forward slash and start typing what block you want. So several ways of inserting blocks. But this is where people are going to go to kind of insert all the blocks or patterns or media that they want to add. Then we also have the list and outline views. And I have found list view to be probably one of the best tools in navigating the editor if you haven't started using it. It gives you an entire nested view of every single block that's on your page. And now this is a really simple layout. There isn't a whole lot going on. But just imagine like groups with columns inside them, with a bunch of things inside that. The list view lets you not only see those things, but also move them around from directly within the list view, copy them, delete them. It's really great. The outline view lets you kind of see things from a content writer's perspective. So it tells you what are the headings you have, what are the different things, how many words do you have, what's the reading time, et cetera. So those are all really useful tools. And then I also wanted to call out, because this is really useful as you're starting to learn how blocks and themes are written. Inside the settings, there is a place to toggle between your visual editor and your code editor, which we used to have in TinyMCE also. But this way you can look at the markup of all of the blocks that are on your page, which is going to be really useful later when you start wanting to write themes or patterns or any of the other things. I also wanted to call out the concept of blocking blocks. You can access that through kind of the right clicking menus, but this is a concept that prevents moving the block or removing them. And again, that will probably be useful later when setting up themes or blocks for clients. But I wanted to call out where that lives. So next we move into the editor itself, and this is for full site editing specifically. And this is kind of the latest version of it that's come out. And there's lots of things you can do here. So this is where you can view edit and create templates, view and edit styles, view edit and create patterns. And then also now we have navigation and pages also show up here. That's brand new as of 6.3. The template editor lets you see every template that exists and also where it came from. So templates can come from the theme. They can come from a plug-in. They can be custom built within the editor itself. And you can also, as you can see, add new templates that don't exist, including custom templates that you can assign to an individual page or post, which is kind of neat. Also want to bring up the concept of synced and unsynced patterns. This is a brand new concept that just happened with 6.3 also. If you've watched block editor development over the years, you might have heard of the concept of reusable blocks. That was a set of blocks that where if you updated the content, it would update across the entire site. Now those are called synced patterns and your template parts are called unsynced patterns and they all kind of live in this pattern section. So that's brand new, but that's where that lives. Then we also have the styles and variations. So these are all your global styles, right? So typography, color, layout, padding, and spacing. And also if the theme provides style variations where people can pick entire different sets of colors and entire different sets of typography, that's where that lives. And also that's where you can edit it and override what came in the theme. All right. So at the end of this stage, I kind of want to bring up these stats screens to talk about like benefits and obstacles where we're at here. So right now we're kind of at mostly benefits and not that many obstacles. The main obstacle is time, you know, it takes a little while to go through all this stuff and get familiar with it. But the benefits are great, you know. Now you understand the interface, you'll be able to provide better training, be able to answer questions, you'll kind of be able to know what does core already have, what is it lacking, and like what's available to you as a developer moving forward. So now we move into the next phase of our journey, which is the test's allies and enemies stage, which is where the hero goes through a bunch of challenges and forges partnerships in order to continue on their journey. And for us, this is where we start adapting our classic theme to support the block editor. So the most basic way you can do that is with traditional add theme support. So this is changing almost nothing about your theme. We're just adding theme support and we're opting into several block editor features. So you don't have to do very much here except maybe change some CSS. This is something you can do. I wouldn't recommend it being the thing that you do because the next thing that you can do is adding a theme.json file to your classic theme, which replaces most of what add theme support does. It also adds a bunch of other things. I do want to call out that the templates and template parts aren't really applicable to a not full site editing theme. So if you're just adding this to a standard PHP theme, you don't really need to use those. But we are going to look a whole lot at the settings and styles because this is the way where you're going to get a nice change. So in your theme.json settings, again, this is replacing add theme support and this is kind of enabling or disabling different block editor features. It enables you to set your presets like color spacing fonts and sizing that's going to show up for the people that are making the content. It also gives you different block level controls of what things are going to look like and it's also where you get your preset and custom variables. So I'll go through a little bit of that. Theme.json generates CSS variables. I'll show you a few examples of each of those things. But what's really cool about what it's doing is it automatically loads these in both the editor and the front end. So if you're taking advantage of both of those things, what you see in the editor is what you're going to see in the front end for the most part. You do have to add your custom scripts and style sheets within kube block assets so that they show up. But it's really important if you're going to do this to convert your CSS file to use as many of these variables as possible. And I know, especially if you're kind of used to writing CSS a traditional way, like putting stuff into a JSON file feels kind of hard and maybe a little gross. But it's actually really worth it. Right? No, I know. I'm like, oh my gosh. I'm writing for robots. But it does help in the long run. And actually, again, like I said, it's more similar to how other non-wordpress theming frameworks declare styles. So some of these variables are built into the settings and these are going to generate some CSS that starts with WP preset. These are things like the palette and stuff like that. It's mostly like the palette and typography and stuff that governs those things. But you can also write as many custom variables as you want in the custom section and they're going to output with the format of WP custom. And I think making a whole bunch of these is great because it means that later it's easier to globally change your styles within the theme.json instead of having to go into your CSS and rewrite a bunch of things. And then we, in the styles, we can set our default global styles and our default block styles. And what's neat about this is we can write absolute values or we can reference variables that we already made. So, again, we're trying to keep everything inside this JSON file. And what is nice about that is, again, it is automatically outputting these to the front end as well as the editor. So we have access to them on both sides. There's a few tutorials here on converting classic themes to block themes. I suggest that you take a look. And again, I'm going to have a link to all these slides afterwards. You can just, you know, grab that there. But I wanted to make sure you had this. So now here we are. Benefits versus obstacles. Where are we at? Well, it's a little bit more change because, again, we are modifying a bunch of our CSS. We're using theme.json instead of add theme support. But the benefits is that now, like, well, now the clients can use the block editor to write pages and posts. And we can start providing some control to them through selecting pre-branded colors and typography and other different styling and controls. So we can limit their options while still letting them have access to the block editor. But, again, it does take some time to convert everything to using theme.json. So a little bit of change in time. Okay, so we're here. And now we get to the ultimate test, approaching the innermost cave. The trials are starting to get harder. And here's where we're going to start doing block editor development, but not with JavaScript yet. The first thing that I want to bring up here is block patterns, which I think are really great for being able to give your clients more options. So core already comes with several block patterns. You can take a look at what those are. But basically what we're doing here is we're just kind of registering some block patterns. We're exporting the markup, which means we could build the pattern in the editor, go to that code view and copy it right into this. And we have patterns. This is a pattern that adds three columns that have a heading, a subheading, and a link. That seems really common. So now my clients have that available and I didn't have to do that much work. Another thing that we can start doing is adding custom block styles. So it's pretty simple to just register them. And then you're basically writing CSS. So block style is basically a visual modification of a block that already exists. So this is an example of a group block that has a horizontal scroll on mobile. So instead of collapsing, you can scroll past the screen. This is just a variation on a group block, but it's still just a group block. You can also start building block templates and start incorporating block locking. So this is, again, something that's been really useful for clients. If I create a custom post type, I can pre-populate that custom post type with a whole bunch of blocks that are already on the screen. So they don't have to try to figure out which things to put on there. They just already have blocks. And I can also say you can't remove these blocks. They stay here so that you don't mess it up, because the whole point is to make it easy for clients to update things. And again, we're already creating a whole lot of value for our clients, and we haven't had to touch any of the new stuff yet, really. So this is great. I also want to call out, if you're already using one of these tools, there is a couple companies that make custom block creators where you don't have to use JavaScript. You can, you know, use their tool to write PHP and create custom blocks. So I just want to call out that these things exist, and they've been really useful for a lot of people that are trying to make this transition. I personally have used ACF custom blocks before. They can be somewhat slower than native blocks, but it's still really awesome to be able to add this value to your clients, even when you're still at this part of your journey. So let's look at the benefits and obstacles, right? So so far, we haven't changed much to the theme yet, right? You know, we've changed our CSS, but our theme's probably built pretty similar. We're just adding some stuff to it to make it better. And what's really great about this is it can be as much or as little as you want, depending on what your client needs. So I spent a lot of time in this phase. I built a lot of themes that were doing exactly this stuff, and making the the block editor more useful for my clients. But you know what we're getting here? This is the ordeal. This is kind of the climax of the movie, right? You know, Fight the Dragon. It's the hero's biggest challenge so far, and our biggest challenge is going to be writing a full site editing compatible theme. So here we go. And the first thing we have to do here is like really learn block grammar. And block grammar is one of those things that exists, and it's true, and however you feel about it, it is what it is. One thing to note is, you know, again, you'll learn a lot about this by exploring the code view of existing themes and existing content. We have some that are self-closing, which means that they don't have content inside them, like wpsearch. We have some that do contain content, like wp paragraph, where you can see the paragraph is inside it. And you can also see that you can pass different attributes to them. So they are written basically like JSON, and those are the same kinds of settings that you would see if you were editing those settings in the sidebar in the editor. And this is this is what it looks like to write blocks. I'm not so one of the bummers, I'm not really sure that any like IDEs or coding environments have support for this syntax yet, so unfortunately when you're writing it, it's going to look gray like a comment, because it thinks that it's a comment, but maybe that's something someone's going to solve soon. If they do, please let me know, that would be great. But this is this is what you're going to be doing, is you're going to be doing a lot of block grammar. And you also have to learn a little bit of a different template structure, so it does still follow the same template hierarchy. So if you know that, you're good, you're just writing HTML instead of PHP now. You also, you put all your templates in a template folder, you put your parts, which are now patterns, in a parts folder, and you don't even need an index.php anymore, I believe. I think that that changed, so you just need your index.html, your style.css, if you have any template parts, your theme.json, which we already have, and any functions or anything else. There's several resources on this. I can't teach you this here, I wish I could, but I love these resources for specifically talking about how to convert from a classic theme to a full-site editing theme. I think that would be really great to take a look at these. I do also want to mention, for people that are kind of moving into doing a full-site editing theme, I converted mine. It is still possible to use PHP templates within full-site editing. This is an awesome article about how that works, but if you need to do something more complex, and you're not quite ready to try to figure out how to write custom blocks to do all of it, there are ways to write PHP templates that are used within full-site editing. You can't edit them in the editor, but you can still use them, and this is really great if you have to do a bunch of dynamic content or stuff like that. There are some workarounds necessary to how you write it. They're all listed in the article, and I'll let them do a better job of explaining it than me. But here we are, we're looking at our benefits and our obstacles. Now you can see the bars are really going up on what we have to do here, because this is a, you know, complete rewrite from the ground up. Now we are kind of taking away our old theme and rebuilding it in this new paradigm. It's a high level of time and investment to rebuild it, or build a new theme. It is a pretty big change from our previous development workflow, because now we're writing this block grammar instead of PHP for the most part, and there is some trial and error when the markup is wrong, you know, the fun thing of like opening up your editor and your editor is just a white screen instead of a useful error message is great. But, and also again, like I called out in the code editors, like there isn't really any good syntax highlighting for block grammar yet, although again, if someone wants to solve that, please let me know, that sounds great. But the benefit is like, you can actually fully take advantage of full site editing and make those tools available to your clients who would need them. So all right, now we've gotten to the reward, like we are now full site editing developers. It's the light at the end of the tunnel. We are officially building things the new word press way. Yes, I saw a golf clap over there. Yes, good job, everyone. We've made it this far. But you might be thinking, like, all right, you know, we fought the dragon, we've got our gold, but there's still limits to what we can build and customize using the tools we've learned so far. And that's when we realize that we have to take the long road back to the ordinary world. And there's more for the hero to face. And in our case, we need to face JavaScript. Here we are. So a simple way to start that is, you know, earlier we talked about registering block styles with PHP. You can also register block styles with JavaScript. It does the same thing, but instead you're using JavaScript, but a good way to kind of start getting used to writing it. A very powerful tool that I've started using recently. So this is about the spot where I'm at in this journey, by the way, I'm here. And I've started to write custom block variations. And block variations are a little bit different than block styles. Block styles are a visual change to an existing block, and block variations are a little bit of a functional change to an existing block, which is neat. I've started using block variations to modify the query loop block so that I can insert query loop block with different pre-populated fields inside it, or maybe ordered in a different way, or maybe like using different parameters, like I found a great article on how to order it by a metafield value rather than the built-in values, which is something we would expect to do in a normal WP query, but it's not in the query loop interface. So I love block variations as a way to start using JavaScript a little bit more, but still not going too much. But I do have to bring up, and this is one of the hurdles, especially if you haven't worked in JavaScript very much, is if you're going to start moving forward beyond this, you're going to have to get some build tools and start transpiling. You can write everything in standard JavaScript, but most things are written in ES6 and JSX. And these are syntax extensions to JavaScript that browsers can't currently read. So that means that these need to be transpiled into regular JavaScript before they run. And that means you need build tools. Now, learning to set up and configure build tools is a whole talk in and of itself. It might even be multiple talks, and there are many tutorials for this, but I do just want to mention that WordPress has a WP script package that contains all the tools that you need to build, watch, and lint forward press specifically. So that's really nice. Still, again, a little bit of a pain to get it all set up, especially if you're not used to working with build tools, but it is there. But once you start working in this transpiled JavaScript, you got a lot of options, right? It's really cool. I just saw this article that was about creating a custom UI for inserting different things into the editor. And I think it's a really great series. It's like a three-part series for getting started with the build process, how to set it up, and then converting that to new UI elements. So again, here we are. Benefits and obstacles, right? What are the benefits? Well, now we can kind of create any UI control that we want, right? It's more seamlessly integrated. We're not just having a bunch of styles on the side. We're having custom stuff. We have variations, which are very powerful. But of course, there's some big obstacles, right? You have to start getting familiar with the command line. You have to be able to set up and install and troubleshoot build tools with all their secret rules that are only documented at the bottom of a Stack Overflow article somewhere. You have to learn about package and dependency management. And of course, if you haven't been writing JavaScript, you have to learn JavaScript syntax. And you have to learn JSX syntax and a whole bunch of other things. Once all this is set up, though, you can keep using it again and again. You don't have to do it over and over. So I think it is worth it. But acknowledging this is a big change in a lot of time. So then we get to the final battle, right? You think the things over, but there's one last thing that the hero has to face. And they have to take everything they've learned to face the biggest challenge. And that one is building custom blocks. Here we go. Now I do want to mention that it is possible to do everything else in this journey and never build a custom block. There are plenty of people that are building custom blocks. I bet a lot of things have been solved. However, I know much like learning how to build custom themes or plugins in the first place. We probably found ourselves here because the things other people had already created didn't quite match our use case, right? Like, they got 90% of the way there, but not quite. So I just want to talk a little bit about what the custom blocks are. Again, I'm not teaching you how to do this, but I want to make you aware. There's a couple different kinds. So one is called static blocks, and these are most of the blocks that you're kind of interacting within the editor. All the content and markup are created and saved to the post within the editor. So stuff like paragraphs, headings, groups, columns, images, media, etc. Those are all static blocks. They often have a lot of style and setting options, and some can contain other blocks within them. The difference between static blocks and now dynamic blocks is that dynamic blocks content, they kind of display content from other parts of the site usually. So the query loop is a great example of a very complex dynamic block. Another example that they show here is the site title block where it displays the site title. Well, the site title is set somewhere else. So these blocks render their content differently. They often have server side functions associated with them, but they can still have like styles or other block settings within the editor that influence what they look like or how their content is displayed. So again, there's a difference between static and dynamic blocks, and there are plenty of people that are talking about this if you want to go into more depth when you're ready for it, but just be aware that that difference exists. And again, your benefits and obstacles for building custom blocks, I mean, we've filled up all the bars in terms of change in time. Like this is the biggest difference. This is the most time commitment. We're doing things that are new. So the documentation hasn't fully caught up yet, especially if you want to do something kind of your special snowflake exact thing that only does this bespoke thing your client needs. You know, harder to find documentation for that. Again, making sure all your build tools are working package and dependency management and then writing more reacts and texts. So now you have to start getting into like I actually have to know this other language a little bit, but the benefits are huge because now you can do fully custom functionality. You can do a fully custom UI. I know we all saw the presentation with the NASA stuff. Like all of that is just possible because we can do all of this stuff with with custom blocks and custom building. So the last phase of the journey is the return with the elixir, right? You've brought the prize home and what that means for us isn't that now we have to build everything with full-site editing and with custom blocks. What it means is that we have a larger suite of tools at our disposal. And at this point it's still okay if you build a classic editor theme. These are good for managing things with like a lot of structured data or metadata where people don't really need to change how it looks very much, right? It's totally okay if you do that. It's totally okay to build a hybrid theme like where you're building a PHP theme but letting people interact with the classic editor. We want to be able to take advantage of as much of that stuff as possible but maybe it makes more sense to not have them be editing the header and footer, right? And it's also totally okay to build whatever custom unique solution with all of these tools that best fits your client's use case. It doesn't mean that you have to do it a specific way or not. So really the point I want to make is like no matter where you're at on this journey you're the hero. You are providing value to your clients during each one of these steps. And also these steps were presented in a specific order but you might have to jump around and go back and visit steps and keep updating things. I'm personally still on this journey like I said. I'm kind of in step like nine and 10 right now so I've only just started getting into locks and maybe maybe I don't go down that road. Maybe I love that road. Who knows? But I'm still being able to provide value to my clients and solve their problems based on the things that I know. So anyway, this is my contact information. I know we'll have a little bit of time for questions but I want to just specifically point out that link at the bottom the bit.ly 2023-wp-themes that is where these slides are located if you want to go back into them and check out all those tutorials. Yes, take the pictures. And I think that's it. I'm ready for questions. So I think the way questions work is you can go up to the microphones or whatever, right? Do you want to be brave? Don't be shy. She won't bite you. No. Or maybe it was perfect and you have zero questions and I've literally taught you everything. That's great. Yeah. Hi. So good to see you. My agency we use ACF blocks we're building custom blocks. What would be a good is there a good transition into full site out of there that you would recommend? Okay. So the question if you didn't hear it was like they're currently using ACF blocks and you're asking like what's a good transition to the full site editor? Well, I mean I think you don't necessarily have to stop using ACF blocks to transition to the full site editor because they're blocks. So you can always like rework the theme around it and keep using ACF blocks if you want to. I'm probably not the right person to ask about like if you want to migrate from ACF blocks to building your own custom blocks that is probably a person above my pay grade which there are many here so that's very convenient that you have that question but I do think that like if you're using stuff like ACF blocks and you want to convert your theme to using the site editor there won't be a problem. So out of curiosity which editor do you prefer to work in for me to build this syntax highlighting in? Can you say that again? Sorry. Which editor do you want the syntax highlighting for? VS Code? Yes, I'm a VS Code person so if you're planning on solving that for me right now and everyone else that would be neat. Hello. Hi. Thank you. Great presentation. I have a question. Do you know good solution if you have two different roles inside a company one person should be able to fully edit the website like with the blocks and everything and the other person is just a content manager and they need only like to change the content like titles and text and how to limit their access what they can change without like missing the blocks like order all the colors and everything. Is it possible? Is it possible? So I believe it is possible I haven't had to work on a project like that but I think that some of the bigger projects like NASA have definitely had to do things like that where they've had to limit how people can interact with blocks on a role basis so there are probably people here that have a good answer to that question but again I know that it's all pretty new so I think okay. So there are apparently some plugins that let you get really granular with access privileges I haven't used them but it would be interesting to see how those integrate on like a block by block basis I wonder if there's things that that integrate with like block locking from that perspective so that might be fun to look into but thanks for your question thank you hi hi can you describe your let's move the site around from different environments workflow because personally that has been by far the hardest part for me just because of the nature of the interaction between the database and the theme that wasn't there before sure so I'll expand on this for people that maybe don't know or haven't worked with full site editing the super fun part about it is that when you're making theme changes in the editor those all live in the database and if you're used to being able to move things around via version control or maybe being able to deploy things between different environments that can get kind of fun so right interesting yes so I guess some of the things I've been doing in order to do that is like exporting any of the stuff that I'm manually doing inside the editor out back to the theme and only deploying like the changed theme to production which is also not that ideal because then if people are making changes to production like how do we get those back onto I haven't solved it I haven't solved it I mean I'm sure there's plugins for that too yeah which one oh yes well I did yes so create block theme which I do think I mentioned in the presentation as a link is a really useful way for exporting things that you've been doing either as a child theme or as its own new theme or rewriting the original theme so yes create block theme I know I didn't call it out specifically although I had it on the screen is useful for kind of packaging up all of those changes but again it doesn't really solve the part about like stuff going production and back but it does do it like one way so hooray cool thanks I just wanted extra confirmation that it wasn't just me fair enough all right we probably have time for like one one more question yes hey Michelle hi so content layout has been a need for developers for decades in WordPress and I'd say a lot of developers are on a parallel track with different page builders like beaver builder elements or divi so I wanted to ask have you and your agency used any of those and if so what made you decide to move into full site editing and block editing sure so the the page builder question always good so I personally didn't use page builders I didn't think I was quite the right market for them the way I feel about page builders I think they're very useful first of all so I'm not anti page builder I think page builders are extremely useful for people who have very strong detailed opinions about what they want their theme to look like and they want to use their interface to do that rather than putting that into code and I think that's awesome and that just wasn't me I think that page builders still have a use in this case because there are still some more granular detailed opinions that probably won't ever be in the full site editing interface and for those people page builders are probably going to still make a lot of sense and all of them are very smart and they know what's happening with full site editing and they're going to try to make that as seamless as possible I think full site editing is kind of in that really sweet spot in the middle where you don't want to you know you don't want to just have a bunch of fields but you don't need to give people like granular control over every single detail of every single element and I think full site editing is kind of that sweet spot in the middle of that especially maybe less so for the full site editing part of it where you're updating the header and footer but definitely for the part of it where you're editing the content cool thanks good done okay thank you everybody for from mess to success the ultimate guide to mastering information architecture and wordpress you're in the right talk so how's your first sessions in the opening talks been fantastic and and your time in national harbor and dc too has been awesome all right so I have a couple housekeeping things just in case if you haven't printed your badge you need to do so if you're going to especially if you're going to go to the word camp social at the Smithsonian tonight so if you haven't go up to the registration that's to get that done because you absolutely 100% need it also special thanks to cloudways so for sponsoring the coffee breaks throughout this weekend so give them a hand and lastly so so we can get to what we need to do this is Joe mini and Joe mini is a small business founder and technical communicator based in Perth western Australia she is passionate about user experience data driven decision making cats me too and travel not necessarily in that order she's also an avid maker from 3d printing to sewing and woodworking and loves combining technology and creativity to make cool stuff and encouraging others to do the same by day you'll you'll find Joe working with organizations such as women in technology the board architects oh sorry the board architects board of westerly Australia and then and the town of Victoria park helping them to create bespoke digital platforms through her business house digital you might also find her donating her time via the mission digital program to help tackle social issues such as gender inequality domestic violence and global property through the use of technology that all makes me sound a lot more interesting than I probably am but thanks for having me here this is my sixth word camp and it's the sixth word camp I've spoken at because my accountant told me I could only use as a tax write-off if I spoke at them so thanks every word camp I've spoken at I've got a little bit of a tradition it started at my first one in Cebu and I know that there's at least two people here today that were in Cebu and I'm hoping that you all can help me keep this tradition going before we get started but I just need to check whether you're up for it so is everyone okay with helping me keep this tradition started yeah okay I promise you'll see it on Twitter later so can everyone who is able to put their hands in the air that's most of you excellent can everyone who is able to stand up for me so we're gonna try all of that together now so I want you to sit back down and I want you to stand up and put your hands in the air so ready on three we're gonna go one two three stand up and put your hands in the air all right so we know that everyone can do that now so what we're gonna do is we're gonna do a wave all right and we're gonna start over here on the are you guys up for it over here and it's and it's in positivity like shout yes yes okay so it's a competition in case you didn't know to see who does the best wave so far Cebu is still winning Brisbane came close Canwood Camp US do a better wave yes all right I'm gonna count you in I'm gonna have to step away from the microphone because I'm gonna video this from here so are we ready yeah are we gonna go both ways or just one way both so we're gonna go back again when we get to this end all right all right you ready I think that might be the best one yet what do you reckon Ross yeah hi everyone my name is Joe in case you didn't hear the intro a little bit earlier and you're just snuck in at the end and are like what is going on right now I do come from Australia there are three Australian speakers today so I am the final in your lineup of Australian programming for this event which is wild I'm not sure why they thought that was a good idea have you met us we're crazy my job is to create websites mainly for organizations that have lots of different users of different types so I work primarily with non-profit organizations non-governmental organizations a lot of charities and stuff like that a lot of people who have maybe 10 or 15 different avatars that are coming to their website and that's why information architecture is the thing that I'm super passionate about and really excited to share with you today I do speak on information architecture a lot outside of WordPress this is I think the first time I've done it inside of WordPress so I'm really excited to be able to share with you all some of the things from a user experience perspective that I've learned but before we get started I want to get a bit of an idea now that you know who I am who you are so if you can let me know are you mainly working content so creating or curating stuff people consume and it's okay if you put your hand up for more than one of these so who are like content people yes love that we need you what about design and user interface so making things people see yeah perfect all right and then we've got a user experience cool my people love it what about people who are developers who are building stuff that people use yeah building stuff that people build with love that and anyone else so like seo hosting like yeah all right there's always some right and I'm like you don't know where you fit that's you congratulations you've got your own box so I'm gonna talk about some terms today that might not be familiar to everyone so I'm gonna try and explain them as I go but please do hold on to those questions and write them down if you've got them at the end and just a reminder if you do have questions at the end please jump up to a microphone because we had a session yesterday and there was no microphone and I'm really hard of hearing especially after the pride party last night where it was really loud so I would really appreciate that thank you hang on went too far what is information architecture well I didn't come up with these definitions these were come up with by the Institute of Information Architecture that doesn't exist anymore but it's two things it's the structural design of information and it's the art and the science and it is both of organizing and labeling to support two main things usability and findability I'm going to extend a little bit on these terms and also on some other terms very soon so that we're all on the same page but I want to clarify if there's nothing else that you take away from today information architecture is not just navigation menus it's not just sitemaps this is what people think of when they think of information architecture oh yeah information architecture is my navigation menu and maybe my sitemap that is part of information architecture absolutely but it's definitely not all of information architecture and it might not even be the most important part of information architecture for your personal use case especially for people like developers who are in the room so what are those key terms that we've got well language is important let's make sure that we all understand what I'm saying so the first one is findability right and findability in a nutshell is how easy is it when people are looking for something and they know what they're looking for to find that thing pretty straightforward right so if I go to Google and I search for pants with pockets because God knows we need to search for them women then you know that's if I find what I need easily that's good findability pretty straightforward yeah we all good with that one cool all right the next one is discoverability kind of similar but not right so if we think back to findability that's all about finding things that we know we need but we don't always know what we need right and our users don't always know what they need sometimes we need to kind of shove it in front of them so that's where discoverability comes in and it's about how easy it is for you to just kind of come across the thing that they need so think about contextual navigation menus think about related products maybe not quite to the level that amazon throws them in our faces but like related products can be really helpful related posts can be really helpful so all of those things that allow us to sort of continue finding useful information that's discoverability and then the last one is a term called information sent that I might use a little bit and essentially information sent is how likely or how confident is the user that the link or the interaction that they're about to make is going to solve their problem if I click on this other items link in the menu and we've all seen it we've all seen the menu that's got other or a non like miscellaneous or more right it's terrible it's got no information sent because people don't know what that is going to show them so they're less likely to click on it so there's the three things we want to keep at the top of our minds while we're talking about information architecture cool? I'm going to assume cool so we're going to talk about something called card sorting and for anyone who has done even a little bit of user experience training or anything like that you might be familiar with this process it is probably the one that is the most common and the thing that people are already doing whether they know it or not so I'm going to give you like a super quick run through of how this actually works right so if you haven't heard of card sorting before it pretty much is like a three step process so the first step is to brainstorm and get all of your chunks on a page now I specifically use the term chunks and not content or pages or sections or whatever because at this point in time we don't know what they are we don't know whether we're going to have an entire page for team or whether we're just going to have a section on an about page for team and that's fine it's okay right our goal is to get all of our chunks on a page you might not know whether or not a chunk is required put it on the page anyway because that's phase two and if you haven't planned for phase two when you're doing phase one you are going to have a hard time later down the track so when we are doing our brainstorm the key thing here is there are no wrong answers get everything on the page duplicates are fine don't worry about it because our next step is going to be sanity checking everything so we're going to get a little bit ruthless here right we're going to audit all of that content that we've got on the page we're going to remove duplicates or combine them together we're going to make notes on things and say is this label the right label our news and posts and blogs the same thing what are the people who are using this website actually looking for because it's very common for people who work in WordPress to say tags or posts and assume everyone knows what that means even the word blog is not something that's universally understood for example in older generations are they looking for news they're not going to click on blog if they don't know what that means so this is where we get a little bit ruthless and we start to kind of sanity check and throw out things that don't belong look for gaps what our users looking for that's not already on there is it that we've called it something different and then the last step and this is the bit where the sorting and card sorting comes in so we've got the cards now we have to sort them is to put stuff into groups right and then I get asked two questions how many groups and how many things in a group and the answer is yes um so there are no rules at this point in time okay the goal is to understand how users associate different terms in terms of information sent what are they going to group it in to find the thing that they want so you don't need to group it into a set number of things at the moment your goal in this process is to understand how all of your information is related to each other now there is actually another step on this that everyone should be doing and nobody is and it's called tree testing and it's where you actually take the data that you collect from card sorting and then you kind of look at statistically where are things going to make the most sense and what is the overlap and that helps you decide how many groups you should have there's no you should always have six or you know this many is too many or whatever like a lot of those things have been debunked the idea of having everything has to be findable within three clicks is a myth there is absolutely no data to support it so the answer to this is it depends on your use case there's no right or wrong answer here so tree testing is a really interesting thing to do but I could do a whole session on that and we don't have time to get into it today so I'm going to skip on to what that might look like and it's mess it's a dog's breakfast as we like to say so this might not look very organized or useful but that was after 10 people had gone through the card sorting process of what do those groups look like we did at old school because this was pre-covid and just grouped things and this is what we ended up with at the end of that as our actual groups so they make lots of sense but all of those chunks fit really comfortably into one of those groups here's another example of what it looks like so this is where we did one for a local government for a website specifically for people who wanted to invest in that local government area and it's the town of Victoria Park if anyone wants to stalker and look at my pretty map you'll notice that there's two navigation menus here they actually had less content than what the other site did but two navigation menus made a lot of sense because they had two key user avatars the main one that they were targeting which was people who are looking to invest in the town and then also people who already had invested in the town and just landed there because their main website was pretty mediocre and everything that they searched for to do with investment on Google came to that website as well so all of this stuff for them is sort of in that secondary navigation bar at the top there as well as things that maybe aren't part of the primary user flow for the primary avatar so yay we've got a site map we've got a navigation we've done it all job done yeah yeah not quite all right so there's a really awesome article by a lady named Jen Cardello I probably am saying that wrong sorry Jen I've never met you but I love your article she works at the Nelson Norman Group and if you haven't ever heard of them or read anything that they write and you're interested in information architecture skip the rest of my talk just go sit outside and look through their blog it's the article that she wrote is titled the difference between information architecture and navigation and she posited that information architecture involves five activities and we've only done three of those so we've done the content inventory yeah we've we've looked at what all of our chunks are we've done the auditing we've got a little bit ruthless we've gone through and worked out where the gaps are what things maybe we don't need how whether our labels are correct and we've done the information grouping what we haven't done are these two things taxonomy development and descriptive information creation and these are the things that if they're not done are going to cause every single software engineer every single database analyst every researcher every WordPress developer and even every WordPress administrator to cry if they're not done correctly right because we've all been there where we've given a custom well maybe we haven't all been there but I've definitely been there where we've given a customer a website and then I've come back a year later and I don't think I even need to tell you what they've done with it but they've they had eight pages when I gave it to them and some some they were like oh we might do some other stuff in the future and I get it back and they've got a hundred pages and they're all top level and there's no hierarchy and there's no grouping and they've got a more item in their menu that has 11 other things in it because they ran out of space on the page right so how do we avoid that because I think we can all agree that that is not an ideal situation to be in so I'm going to I'm going to talk about this term taxonomy because it's used a lot in user experience and information architecture in that space and it doesn't mean what WordPress developers use taxonomy for which can be very confusing so we're going to talk a little bit about taxonomies and why they're important and how they fit into the greater story of information architecture in WordPress and in a nutshell this is what taxonomy means it's the scientific process of classifying things it's a it's a system of ordering stuff which makes sense in the way that we use it right but a lot of things that information architects and user experience specialists refer to as a taxonomy aren't what we think of we think of a taxonomy as a thing but a taxonomy is a system right so that can be really confusing for WordPress users and WordPress developers when they go and start researching information architecture so it's something I wanted to just point out here so in practice particularly in WordPress we kind of have two ways of creating a taxonomy we have types of content and we have groups of content so does anyone know what I mean by types of content just shout out like if you've got some ideas of what a type of content might be custom post type yeah absolutely static pages are a type of content like articles right events forms users are a type of content downloadable resources these things are types of content in WordPress generally speaking types of content are going to be custom post types or post types in general not always but generally speaking this is going to be the case and then we have groups of content which is what we call taxonomies and the two that you most familiar with if you use WordPress it always categories and tags they're the two built-in taxonomies into WordPress one of them is a hierarchical taxonomy so that means that it can have parents and typically a hierarchical taxonomy like that you'll have a limited number of them and you'll try not to let them get to out of hand and then you'll have something that's an unhierarchical taxonomy in WordPress like tags and go nuts you can use more tags it's fine won't be mad but in short what these two things are are relationships all of this stuff is relationships about how does my content relate to my other content and relationships are really what we're after here because remember the goal of information architecture and user experience is good usability good findability good discoverability and if we don't have good relationships how are we going to achieve that so a resource library let's take that as an example right do users need to be able to filter by resource type like is it a article or is it a checklist right do they need to be able to filter by date maybe they want to see how recent it is I know that's something we're challenged with in the learn team at the moment is like how do we make sure that we're presenting the most recent information to people because it's often going to be the most useful who uploaded it maybe you want to only read stuff by certain people that you know have the expertise that you're looking for all of that stuff seems handy right so you can use these things on maybe a resource library but potentially you also want to use those same things across your posts in your blog right so then we start to think about how do our taxonomies apply outside of where we originally created them and in this case we're talking about the WordPress taxonomies so that we can have cross-linking of things so this is where we're going to start to look into how this actually works and how we can level up our processes so that we can take advantage of WordPress so that instead of having this we can go to something a little bit more oddly so I mentioned that we did this project pre-COVID when we were back still using sticky notes which is a great way to get people to interact with you and I still recommend it for brainstorms with large groups but if you haven't found it before MIRO is a great tool that lets you do the same thing online and then you don't have to type out all the sticky notes afterwards so here is actually all of the sticky notes it's actually not all of the sticky notes they were about three times as many of this just imagine that this is a real example it's a cut down real example and this whole process took over a day to do of the first one before we tested it but essentially what we're going to do is we're going to use something like the if you are using MIRO or another tool like that there's usually a bulk mode where you can do your brainstorming and then you go through all of your regular processes those three that we started with right getting your stuff on the page auditing your content and then grouping it and once we've done that we're going to start looking at how many of those bits of content are we going to have and how related are they to other things so some examples that I've got on here is team members is about 50 right they had about 50 team members in this organization but they changed almost weekly they had huge turnover because a lot of them were volunteer or they were on contract so that's something where immediately we want to start thinking about how is that going to impact how we create that type of content in WordPress because I certainly don't want to be going in and editing a page every single time I need to update a team member and we've all probably seen that where you go into someone's back end and they've got a page called about and they've got a list of 50 team members but it's not in a post type or anything it's just like a block on the page and that's really limiting because it means that only people who can access pages can update that it's hard to give them access just to one page and not all of the pages so if I've got my HR people updating the team members I also don't want them updating the about page because that's not their job right so by separating out our content we can start to make better decisions and make things more maintainable we also want to think about what direction the relationship goes in for stuff that is linked so the key things that you're looking for here are how often does it change how many of those types of content do I have will that number grow and if the answer is yes then you probably want a custom post type for it and more importantly how is it connected to all of the other content if at all right so how do we do that tip two we color code things because I don't know if you've noticed or not I quite like color so here is the color coding that we use now I'm not sure if it's obvious on the screen there they're actually two different oranges but and that's not actually the colors that we use in mirror but it looks pretty on my slides so we use the same color for standard pages and child pages so child pages just being something that has a parent page in WordPress we use a different color for custom post types or custom content types right we use one color for hierarchical taxonomies like categories and a different color for non-hierarchical taxonomies like tags we also have sections on there because we don't want to forget about that content that doesn't quite have its own page you know maybe we just want to display this on the about page or on a services page or something like that so we're going to color code that as well so we don't lose it and then we're going to have two things that we're going to treat a little bit differently we're going to have our archive pages and this is something that is a term that's thrown around in WordPress that I've found when I've been teaching WordPress to people who are beginners isn't well understood so if there are any beginners in the room an archive page is essentially a page on WordPress that displays a group of content based on some kind of condition so an example of that is your blog page your blog page displays all of the posts in the post post type but a tag page might also be an example of an archive page so a page where you're showing all of the items that have been associated with a specific tag so that's what we mean by dynamic page or archive page it's something that the content doesn't actually live on that page the content lives somewhere else and it's essentially just grouping and displaying a bunch of that content and then lastly we have landing pages and landing pages are great until you go and start cleaning up all of the landing pages that have been created without your knowledge and you realize that's why you've now got 100 instead of eight pages on your website that they haven't been accounted for they're not being maintained we deal with landing pages separately we actually put them in their own custom post type that's exactly the same as pages but just called landing pages so that we don't have to deal with them within our regular pages and then you've also got external links because there's going to be some content you don't have control over that you're going to want to link out and we want to make sure that we're also working out how that links in with our own content so what does that look like when we apply it it looks something like this very colorful not super useful yet but it's going to be because if we take our site map for example and we apply that color scheme then we start to get something that is a little bit more useful than what we had before so what we've done here is we've looked for pages that have content that is similar to other pages so for example a service offering might have a description eligibility criteria to use that service because this was a non-profit organization and information on how to access it and every single service had that stuff so that's a good way of identifying your custom post types do I have lots of pages that have the exact same content on them? great create some custom pages custom post types and custom fields there another thing that we might look for is are things going to be grouped so we have team members and our team members are our people page there's going to be a headshot of each team member their position a link to their LinkedIn profile and a short bio but we're also going to want to categorize them as employees or volunteers or board members right so that's where we start to look at our taxonomies and how are we going to group those things easy we create a custom taxonomy and we call it team so this is the the easiest way I've found to identify custom post types and custom taxonomies is to look for pages with similar layouts and content that's tip one and then pages that list multiples of a thing right so if pages list multiples of a thing that's an archive page an archive page means you've got a post type of some sort or a taxonomy of some sort to make that happen so they're a good way of identifying this color coding as you're going so what we do then is we take those things that were not standard pages or even the worst standard pages and we create like a little map of okay these are the post types that we're going to need these are the taxonomies we're going to need these are the pages we're going to need and we ignore the pages for now because pages are a pretty standard kind of structure and they're fairly easy to deal with the ones that are tricky tend to be the custom post types so let's take for example programs in this situation programs have a two-way relationship with case studies events locations the blog and advisors they have a one-way relationship with pricing with partners and with frequently asked questions and then they also have a one-way relationship in the other direction with teams so what that means is that on the program page there's going to be a link to the partners that are involved with that program the pricing structure the frequently asked questions but on the partner page it doesn't actually link back to that program and on the flip side on the team page if a team member works on a program they wanted to show the program that they work on on the team members page but they didn't want to show the team members on the program page because it's not about the team members it's about the people that are using the program so we start to look at these that here's another example so we've got advisors here and it looks like a pretty simple kind of structure okay we've got some relationships there let's put the two of them on the page together remember this page was full of sticky notes before and they were much smaller so we're still only dealing with a very small portion and if we then start adding on all of the relationships that we haven't already talked about you can see it gets real messy real fast yeah does this look helpful to you no yeah so we realized very quickly when we started doing this process that we needed a better way of describing what our relationships were we still use this process for each of our post-tapes we go through and we map out what it's related to but then we record it in a table which seems much more sensible right so this is an example of what that might look like and you'll note here that there are two kinds of relationships there's taxonomies which are used to group content and then there's relationship fields or like fields required information required and so this is one of the most common questions I get asked when I talk about this in a WordPress context is how do I show relationships between different post-tapes and I'm like don't worry about what it's called just stick it in the table as a bit of information because it is right what frequently asked questions are linked to services is just a bit of information so how you implement that in the WordPress end might be different depending on your use case it might be a relationship field or something like that that you're using it could be that taxonomies are actually the best way to achieve that but for now just get it in the table tools that we use to implement this from a WordPress perspective we only use two things to create our custom post-taps custom fields custom taxonomies all that kind of stuff we use either pods or ACF Pro we don't hard code them because we find that from a maintainability perspective when you're working primarily with nonprofits who have a zero budget not ideal we might not be there in two years time so someone being able to step in who doesn't know how to develop and just edit those things using a plugin is really useful but both pods and ACF Pro allow you to create custom post-taps taxonomies and fields we really like the customizability of roles and capabilities inside pods I think they've done that excellently I don't know if our pods peeps are around still but thank you and they also have the ability to really easily create custom settings pages which is another thing that we find super useful and you can maintain them all with our editing code but you can't go past ACF for really complex custom field rules and relationships and things like that like if I want to add a custom field just on one specific page it's a lot easier to do that and manage that using ACF than it is to use pods so from a WordPress perspective because I often get asked what do you use for that that's what we use so that kind of leads me to my third and final tip of today which is to learn the basics and by basics I mean everyone's favorite database table so if you haven't worked outside of WordPress before you might not realize that the WordPress database is weird like I don't really have a better way of describing it the idea of a relational database is that things have different tables and you connect them together but we decided not to go that route and instead we have one table that stores everything which is super it's super we love that but if you haven't worked with databases before and you don't really know what I'm talking about or if you have and you've never really thought to dig into the WordPress database tables I highly recommend that you do it because it will make you a better WordPress builder a better creator if you are planning out a navigation or you're planning out a sitemap even if you're not the one building it even if your job is UX if you understand the limitations of WordPress and how that database is actually built you're going to do it better you're going to be better at it so how do you do that if you're not a developer and you don't already know how to go and interrogate a database because that's pretty scary for people that aren't developers well here's a fun tool that we like to use it's called local WP so if you aren't a developer and you don't regularly work with a local environment on your computer you might not have come across this tool before but anyone can use it I've had people say to me oh I'm not techie enough I can't I can't have a local environment on my computer you literally click download on their website and then you click create site like it could not be easier you can create a test site it doesn't need to do anything it's just going to spin up a completely blank WordPress site right you can log into it in your browser so it's not actually putting it on a computer on the internet it's just on your computer but you can go in there and you can add whatever it is that you want you can download plugins you can do all of that stuff and then you can go and you can inspect the database and see what the things that you have done look like so how do you do that well we have this now I don't know how you meant to say it but in my head it's adminer because I'm mining the data in there so I don't know if it's meant to be adminer or adminer but I'm going to say adminer we're going to click this little button here when we're running the site and it's going to bring up this scary looking page if you work regularly with like creating websites you might notice that it looks quite similar to PHP MyAdmin same concept right it's allowing you to navigate around the database tables so when you get here and if you have not done this before and you want to take screenshots go right ahead but also don't forget that this will be on the internet forever and you can just go back and rewatch it so we're going to go first to the WP posts table which is where you would expect to see a lot of information and then we're going to go to select data and that's going to show you the data that's in that table and then once you've done that and you're feeling less overwhelmed then you can click on the one above it that says WP posts meta and then call me and I'll give you a hug all right but I do really think everyone who isn't familiar with the database should at least go and try and learn a little bit about how it works it's free it's not going to take you that long and at least when people say like if you're talking to a developer and you're not a developer and they're like the problem is that we can't do this because this and this don't talk to each other you'd be like all right I've seen the dog's breakfast that is the database and I understand the how can we work together to make it like come up with something that's going to be sustainable for both of us that's going to look the way I want it to look and interact with stuff the way I want it to interact but also not make my development team cry so a reminder for everyone that you are not the user so I did mention about tree testing being something that I really strongly encourage you to do when you're doing this like this process and here's the thing we do all of that in WordPress we don't use any expensive UX tools we actually take our navigation menus for example we come up we do a survey of what are the like top 10 top 15 top three depending on the size of the customer things that you that people want to accomplish and we try and get them to actually ask users not ask them directly because you are not the user and we get that list of things we put what we've come up with into just a blank WordPress site right you can even do it on local WP and then we send them the link and we say okay find the things that you need and we don't even put the content in there at that point we just put like a little we've just got a button block so when you click it it's got like little fireworks that go off and it's like congratulations you found step nine or something like that and it's a quick and easy way of testing that what you've done actually works so if you don't have the resources to do full UX tree testing in-house that is a great way that you can do testing using the tools that you already have at your disposal so I think we're just about out of time but thank you for listening to me ramble I appreciate it I also really appreciate that I got to be here today and that wouldn't have happened without the support of the folks who are contributing to the WCUS travel partners fund I don't know if you've realized but there's not as many women in tech as there are men and WordPress is doing an excellent job of improving diversity this particular program is doing an even better job of helping to make sure that people who are in areas that don't have stuff themselves can get in front of the rest of the WordPress community they did give me some sponsorship to get here today so thank you and if you are interested in helping other underrepresented folks get on stage please scan the QR code and go and have a look at the travel partners program for future flagship conferences thanks everyone and I'm so I think we've got time for a few questions is there do I have like a timekeeper somewhere that can tell me do we have time for questions yes we've got five minutes is that yes so there's some microphones around if anyone has a question please step up and hit me and I'll try and answer it hello is the song okay yes hello thank you so much for the talk so I don't have a ton of experiences developer with databases and backends and all that but I did learn about the relational database model and all of that and then I came over to WordPress land and saw exactly what you described what are the limitations to the WordPress database do you recommend implementing your own relational database in relation to I don't know I'm just looking for guidance or some ideas that you have yeah it's a great question I think the biggest limitation in the WordPress database is that it doesn't store things in separate tables but I also don't recommend storing things in separate tables in a lot of cases because it's going to make WordPress do things you didn't expect it to do and it's going to take away a lot of the reasons we use it in the first place and like I still use WordPress on a daily basis pods does have a function for being able to separate out your custom post types and store them in their own tables rather than storing them in post meta it's one of the reasons that we love it so much and particularly for sites that have a lot of content or we're doing complex queries I don't know if you've ever looked at the efficiency of the post meta table but it's infinitely slower than if you have stuff stored in its own tables so if you have content where you've got a lot of it or a lot of complex relationships it's worth considering storing it outside in its own tables just make sure you have a strategy for how you do that and understand the best practices of database design does that answer your question Yeah I think so you said pods has a functionality if you're allowing to store it in the separate tables and you should examine the use case to make sure that it makes sense for you Yeah like try and stick with vanilla WordPress if you can because you're gonna get all of the benefits of everything that WordPress does but if you're not make sure that you are taking that into account and understand the limitations and the flexibilities on that aspect of it as well Thank you Do you have any other questions? Yes Hi yeah my name is Jonathan I wear many different hats under the WordPress umbrella but I was wondering if you've got any tips on how to wrangle the back end of WordPress particularly the pages and all pages directories how to organize those pages on the back end It's a great question so as you might have figured out we're firm believers and if you can put it in a custom post type or a custom taxonomy you should so we try and separate out our content as much as possible to allow us to sort of like cross share information between different things and it gives you the flexibility of having like archive pages instead of a million pages so that's one thing we do we heavily customize our dashboards in the WordPress back end so that they are easier to find the things so all custom post types that are for a specific user type go together we use admin menu editor is the plugin that we use for it for like ease of because we've got a person whose job is just to make sure everyone can always use stuff and one of the things she does is she goes through as each user type and checks like can I find the things that I need are they labeled in a way that I can understand because if your users are calling something news but your creators are calling up posts that's fine just call it posts on the back end call it news on the front end it doesn't matter you can relabel what it's called in the admin dashboard but we definitely try and group our content and create sort of our own groups as it goes and keep all of the setting stuff down the bottom so it's content first and all of the scary admin things at the bottom in terms of pages we create our own custom taxonomies for pages as well so we have we have one that is on every website that we create which is page type and that is kind of designed to be a way of us easily identifying pages that are say going to require regular updating or maybe are like the customers going in and using the block editor and just they have complete 100% control over that page versus the home page which is often sort of custom designed and so uses some kind of like custom field almost form to create the content so we use custom taxonomies in that way to be able to easily navigate through our pages so when we do have 100 we can just click like you know like design pages or something and then that will bring us up a list of those ones that use that particular type does that make sense yeah also admin columns pro is your friend it's a great little plugin that allows you to kind of extend on the default way of navigating through pages and posts and stuff like that inside WordPress any other questions I think everyone's bailed to get lunch is it a short question is it a short question maybe you can ask it and if it's going to take a long time we can just talk about it at the front sounds good so I also work for a nonprofit we're about to under redo our entire website how do you get people in our information architecture to stop thinking about an organization as an org chart and actually think about it in information groups and how do you kind of just keep beating them down until they get that don't let those people in the room they're usually the stakeholders no I'm serious though when we run with nonprofits we ask them like what's your mission because every nonprofit has a mission what's your mission who are the people that your mission is serving let's get them in a room we facilitate not them so they are participating just like everyone else but they get to hear that what other people are thinking and hearing and saying is very different from the way they think about their organization it's a hundred percent one of the biggest challenges that we have and it really comes down to education and communication and I'm I wish I had a better answer for you than that but I don't sorry I appreciate that thank you no problem thanks everyone for coming along and sticking around for the questions