Boldly Go, Building Worlds: Is there Room for me on the Bridge? with Dawn Wages
Published October 26, 2026
This video features Dawn Wages and Meagen Voss at Wagtail Space.
Join Dawn Wages & Meagen Voss, Wagtail Community Manager, to upgrade Wagtail to the latest and talk about the CMS Critic Award.
Automatically transcribed, so expect mistakes in names and technical terms.
Speaker 1: Hey all. Thanks for joining the live stream. I am Don Wagis and I am honored to be with Streaming in two places right now. We're streaming on my channel, um on YouTube, and then we're also auspiciously on the Wagtails channel. So I'll I'll give it over to you, uh Megan, to do the intros for the Wagtail channel.
Speaker 2: Hey everybody, this is uh Megan Voss, uh also uh from the Wagtail community Um, we're glad to be here today. And um, you know, I I it's always like, should we should we tempt the demo gods by doing things live? Yeah. It could also be a lot of fun.
Speaker 1: Yeah, yeah. And I think this will be a really um accessible um episode. So I'll kick it off with how I I think this will go. And I'm I invited Megan on to join, so I guess we'll we'll plan the beats. And also, if anyone is joining and watching us, feel free to put things in the chat. We're looking at them live. I'll bring things up on the screen. as we keep the conversation going. It should be really fun. And we're gonna be playing around with my personal Django website. This is Dawnwages. info. It's like my default. website and I'll be upgrading it from 6. 2 to 7. 3 live and we also are starting out with moving over with a
Speaker 1: um from a Postgres database to a SQLite database at the top of the call, uh just to get some reconfiguring so we can do this for the live stream. So it should be a really accessible and fun and interesting episode going from maintaining lactale sites for long term and why I love Python and Wagtail specifically. We can poke around. Hopefully when we get to it, we can poke around all the new features. of Wagtail and then we'll also obviously bring up the docs and the Wagtail docs are fantastic. So whenever I forget what to do, because Wagtail's not my full-time job anymore Uh we'll pull up Wagtail and look at those fantastic docs and look at all of the goodies that are in store for us.
Speaker 2: Yeah, yeah, yeah. One quick programming note, folks. Uh I I am not doing Cyclops cosplay here. I uh I have chronic migraine, which is why I'm wearing these glasses. So don't get distracted.
Speaker 1: I also thought they just looked really cool.
Speaker 2: They are really cool. I've gotten a lot of compliments on them. And I'm like, I'm glad people think they look really awesome, but they're there to help me with the screen.
Speaker 1: Oh my god, sending you good energy on the on your migraines. That is like no joke at all. Um anyway. Um yeah, so I appreciate you coming on on this Saturday. So maybe what we can start with is I'll I'll start with uh upgrading Wagtail uh documentation. So for people who may not have a full hour to hang out with us. They can um learn a little bit more about the upgrading wagtail path. And then we can also talk about voting for Wagtail for the critic's choice uh the critic choice CMS Critic Choice um award and then we can jump into some code uh pretty quickly after that. So let me share my screen. And I'll share the Wagtail upgrading docs and then we'll move to the critics choice. All right.
Speaker 1: Perfect. Awesome. This is this is your domain, Megan. Do you want to like walk us through? I don't want to step on toes, but this is where I love to go as soon as I'm like, oh yeah. I should probably update.
Speaker 2: Yeah, so so what version are you running on your site right now?
Speaker 1: 6. 2.
Speaker 2: 6. 2. Okay. So we're gonna do a a nice big version jump. Yeah, it's always great to go to to the list of release notes and honestly kind of check um the section uh with upgrade uh like highlights in each of the release notes like as you're moving from version to version. So you know it's uh This this was a bug, like a security release, so there's not gonna be as many notes as there are in the like main release notes.
Speaker 1: Yeah. First one from after the point release, so that makes that makes sense totally
Speaker 2: Yeah, so if you go like all like the there are three links at the top, they all say upgrade considerations and kind of what you want to just get a quick look for is like, is there anything that could potentially break? Yep. My particular site. Like do I use certain things?
Speaker 1: Yeah.
Speaker 2: Um, and so like The ones that affect customizations are pretty key to pay attention to.
Speaker 1: So
Speaker 2: um, yeah.
Speaker 1: Okay. I don't know if this one, I don't think this applies. It changes to report views. Yep. And then there's also going to be a few numbers. So we can dig deeper into this as we are upgrading. Maybe we'll get to finish this um time round and maybe And that's that's totally fine if if not this is an experience.
Speaker 2: Yeah, it's good to have those tabs open as you're like, you know, what you the other approach you can do is like just try and upgrade to the next version and see what breaks and then go to the docs and be like Oh, what did I do? So it really depends on what direction you want to go in. Some people are like Uber planners , others are more like chaos focused engineers.
Speaker 1: Fair. Well, I think a cool thing that we can also talk about is what's um like the the new things that you're excited about in 7. 2 to give me that motivation to go through the upgrade. This feels really manageable and I've done a couple of really large point jumps in uh like there was a th I went from three something or four something to six. And I was and I was like, oh, this is gonna be bad. And with with a couple of questions, it was fine.
Speaker 2: Yeah, it really depends on how kind of um much you've dug into customizing certain parts of Wagtail. I find that most people who have just kind of a publishing site that has blogs and things like that, it's generally pretty straightforward for them to do upgrades with some occasional changes to like the the model names um or like another uh we did make a change to stream field that was pretty big a while back. I forget which version that was, uh, but it did change the syntax for how things were organized. And so that was one that caught people a lot. Uh but a lot of uh a lot of the changes tend to apply to like people who really uh customize
Speaker 2: the uh UX interface and things like that. uh is where a lot of the upgrade changes tend to catch people.
Speaker 1: Yeah.
Speaker 2: But you know, if you're if you have a pretty straightforward site, our upgrades are fairly painless.
Speaker 1: Yeah, yeah. I've I've found that. That's awesome. Cool.
Speaker 2: Yeah.
Speaker 1: Um let's talk about why Wagtail, and then we can also talk about the critic's choice, because maybe the why wagtail will inspire some of our friends to do that.
Speaker 2: Yeah, so our latest version is actually 7. 3. three
Speaker 1: seven point three
Speaker 2: yeah seven point three and so uh what's super exciting about this release is that we we have taken kind of a long-term strategy of introducing an autosave feature into Wagtail And it started actually almost two years ago when we integrated the stimulus library into uh Wagtail for the first time. That was actually proposed by one of our fellow core team members, LB. It was a really big deal for him at a time at the time to be uh writing all that up and making suggesting such a big change. Um and so, you know, while folks I think kind of expect Autosave to be in most uh software programs these days. I, you know, until you think about what's actually going on behind the scenes, it's actually a pretty incredible feature.
Speaker 1: Yes.
Speaker 2: it just like there's a lot that goes into it.
Speaker 1: Yeah. Like if I could like jump in here and just to underscore that point s and maybe my journey to Wagtail and encourage people who who either want to have a pre-box solution that you're paying for somewhere else, this removes the vendor lock-in. You are really building your own or not You're building with a team of people across the world, experts who are building their own. So and this is one of the things uh this framework is one of the things that um Anjango underneath like really propelled my career and gave me a lot of flexibility in my career options. Um I consulted for a number of years. A lot of my key projects were Wagtail projects Sometimes when my clients didn't care about the stack, I would reach for Wagtail and it's incredibly extensible, just like you were mentioning, where you can build your own um
Speaker 1: underneath. And so some of these autosave features you um initially didn't get out the box, but the ecosystem's growing with us and all of these really great ideas are going in, so you now get some of these like proprietary full stack cloed sourced features like an autosave in your build your own solution And so that that pass throughs and only makes your clients even more happy and they're like, How did you do it? Like, you know, I do open source.
Speaker 2: Like m uh moving up to 7. 3, definitely autosave is by far the the biggest kind of leap up in quality of life for for editors, but there's a lot of great stuff on the background um for developers too. Like Since we're going from six point two to seven point two, you'll also get um uh Matthew Westcott, one of the key developers of Wagtail. uh did some great work on uh reducing the performance impact of migrations in Wagtail. Um so that's kind of uh something that appeals to maybe not somebody who's running a big personal website.
Speaker 1: Yeah.
Speaker 2: I mean a tiny personal website, but if you're running like a really big website, like Wagtail runs uh the National Health Service, one of their websites, and that's a site that gets millions of views every month. Uh so you know the and and when you're working with a site that has a ridiculous amount of content You know, you stack up a lot of migrations over time. So it's very important to consider the performance of that as well. Uh we also in the lit this latest version, we've been giving a lot more tools to developers to kind of customize how blocks are arranged and streamfield and how things appear. We got a lot of feedback from our users about adding what we call the settings section of a block.
Speaker 2: Basically like editors were kind of like ignoring like these fields that they didn't really need all the time. Uh for example, like um on one of the websites that my employer Torchbox uh works on uh we you know they they might um they might f like write the they they use the same blocks over and over again but they might want to change up the color like only like once a year for an event or something like that. But otherwise it pretty much stays the same. I you know those settings in the past had to be like in the UI and taking up space. There wasn't really a way to kind of like tuck them away and hide them. Uh, you know, it uh just
Speaker 2: kind of um like takes up space. So now you can add something called a settings section to your blocks.
Speaker 1: Okay.
Speaker 2: And so now the editor can like, you know, pretty much like ignore them except for when they need them, then they can click settings and that opens up like and you can change like you can put things in there like colors, styles, um, you know, all those fields that mm the model structure in Wagtail and Django requires you to kind of map out in the code. It doesn't necessarily have to show for the editors anymore. Um and that's gonna just make a much cleaner workspace for editors.
Speaker 1: Awesome. I love that. Awesome. I I I think that's fantastic. Um and maybe just for a like a pause we can step back and also talk about like what is Wagtail and what is the the deep niche of CMS world that we play in. I mean, we are you we are building in I'll start with the um the the low-level answer and then you'll fill it out in the every date again if you can but uh if you can for me but it is uh a CMS you are building a content management system but you're building a platform where you have all of the frameworks, all of the underpinnings of being able to have extensible um widgets across your site. And then um many times they show up in like a blog
Speaker 1: type platform. But it's a it it creates a flat uh you have an admin on the back that doesn't look like the Django admin. It's a separate admin. So you're not just working with like data types as you would in the Django admin you have an interface that prioritizes editing and writing and a great user experience for people who are not particularly technical and don't need to understand how object-oriented programming works.
Speaker 2: Yeah, it might actually help if you have your admin up. I can I can talk a bit. You know, honestly, people seeing Wagtail is the best way to experience I think a lot of people who, you know, when you log into Wagtail then they see the back end for the first time Um, looks like we're still on the docs here. There we are. I just want to show we
Speaker 1: picture what the login page looks like.
Speaker 2: Yeah. Yeah, and you can see our little like, you know, our upgrade prompt right there being like, hey, by the way, there's a new version. We made that dismissable, by the way, in a newer version. You haven't gotten to that version yet yet
Speaker 1: but i like it reminding me so i won't be using it but yes
Speaker 2: for a while we were basically force reminding people and now now we're being less aggressive we took that feedback to heart Um, but the um like it most people who look at Wagtail for the first time are like, oh, this is this is just like WordPress. And I'm like, it's a very WordPress-y interface, uh, but it's different from WordPress in that Wagtail is much more customizable and it's kind of it 's like instead of buying a standard size glove for your business or your organization, you get a glove made for for you on day one with Wagtail.
Speaker 1: Um
Speaker 2: you can build pages and data structures exactly the way you want to. It does require you like making some pretty key decisions early on. And there are like lots of um lots of people do prefer to collaborate with agencies for bigger projects for that reason. uh because they have a lot more experience thinking about like how am I going to make this last long term. But there are also some good uh themes and starter kits out there. Um, you know, uh Vince from Code Red has a uh version called Wagtail CRX, which covers uh like a lot of the needs for um people who just kind of want like a a simple site setup and things like that. And he incorporates a bootstrap front end
Speaker 2: Um, but the cool thing about Wagtail like is it comes with all these like you know kind of standard content management features like you were just showing off the preview back there. Um, you know, we also have uh an accessibility checker, uh, because accessibility is is very uh important to us as a project and also Uh we support a lot of organizations that are, you know, governments and folks like that who are required by law to offer accessible. software. So we want to make it easier for folks. And uh the the another key difference between Wagtail and other CMSs of the world, besides it being in Python versus most of the content management world is in PHP.
Speaker 2: Um is that we have a lot of enterprise features right out of the box. You don't have to like, well, you don't have to pay for Wagtail Uh to begin with, it's open source. Um, you know, there's there's we we run it with a license that is very generous But you you kind of you get user permissions, you get uh workflow comments, you get all these sorts of things. uh that you would normally have to pay for in other content management systems, uh pretty much right, right out of the box. with with Wagtail. And you know, for a long time we couldn't say autosave was on that list. And now we can. So you're getting a lot of value
Speaker 2: right away. And Wagtail is kind of um what I like to call, uh there's an acronym on Reddit, uh B-I-F-L, Buy It for Life.
Speaker 1: Oh, okay, yep, yep.
Speaker 2: Yeah, yeah, and the the people use it use it to talk about furniture, Dawn. Like when I was shopping for a couch, this is how I found that.
Speaker 1: I like that analogy.
Speaker 2: Yeah. Yeah. And I I've been thinking a lot lately about like, you know, how much of this honestly applies to to software. Um and I honestly I don't think Buy It for Life software exists anymore. You know, because like we grew up with you used to get um these AOL CDs in the mail. And things like that.
Speaker 1: Yeah.
Speaker 2: Like your version of Photoshop was something you got on a disc and you paid an absurd amount of money for, but it would like, you know, that's what you had, like, and you never upgraded. And now it's like constant upgrades. There's always updates. always breaking something. But you know, it's it's like, but at the same time, I think you can still take some of the principles of buy it for life and kind of apply it to your thinking when you're deciding. What technology do I want to invest my time and money in? And I think that Wagtail is kind of like as buy it for life as you can get in a lot of content management systems because it's it's very scalable. It'll grow with your business. or your nonprofit or your organization.
Speaker 2: You know, as long as you can find a really good developer to collaborate with, or if you already have some developers in-house um who you know can train up on it. You you can do pretty much anything you want with it.
Speaker 1: It's just Python.
Speaker 2: Yeah, yeah, it's it's just Python And like we haven't had a lot of people like kind of dig in and extend it in terms of um like the data science world yet. I would love to see more data science people uh using Wagtail. There have been a few Huh?
Speaker 1: That's a call to action. I like that.
Speaker 2: Yeah, yeah, yeah, yeah. Um like I have heard of some people experimenting uh with, you know, and this is something you can do with Django too, not just Wagtail, um, but Uh, you know, I I can't share who was working on it, um, but uh a government organization here in the United States was experimenting with with using Wagtail to manage one of their um databases actually so that um their users could have a much more user-friendly way to input numbers and things like that.
Speaker 1: Yeah, yeah, yeah.
Speaker 2: Yeah. So you don't even necessarily have to use it for a website. Like there's like the great thing is um Unlike other content management systems, which are very intertwined with like the back end and the front end are very like hard to separate, Wagtail provides a lot of flexibility with the technologies that you can layer on top of it. It makes it hard for some people to choose sometimes, which is why you know people who don't have an opinion or don't care. I just I just want the front end to look pretty. I'm like, okay, Wagtail CRX has boost bootstrap um or the Wagtail Starter Kit has tailwind. Those are those are two good options. Have fun. But if you're like an organization that wants like either something more custom or like
Speaker 2: already has something that they've invested time and money in, then Wagtail's pretty adaptable to whatever the needs are. So
Speaker 1: perfect. And when I said uh it's just Python, it's just Python on the mostly on the back end. There is this um interesting layer for the Wagtail CMS with the extensibility that does um um uh dehydrate and rehydrate and react. Um and that makes it a very slick user experience on the back end as well. I think I'm I'm saying all of those things correctly. Is that is that correct, Megan?
Speaker 2: Yeah, yeah, yeah. We do have some React that uh you know, for the the admin and things like that. Uh Sage actually as a part of a lot of uh the upgrades actually has documented a lot of our UI stuff recently. Um so if you're into uh extending things. He he does have some new documentation on that and would love feedback. I think it's been a little quiet on that front. So if you're the sort who um who who wants uh to do do that more. We're definitely looking for for people to take a look at those docs and be like, hey, is this helpful or not?
Speaker 1: Cool.
Speaker 2: But but to bring it back to like kind of my whole buy it for life idea, like Wagtail just doesn't get in the way of you wanting to try something new.
Speaker 1: Yep.
Speaker 2: Um, like we have people who like have come to Torch Box being all excited about this headless movement. And being like, oh, I want to do this. I want to and sometimes they're a bit overambitious and they don't quite think about the number of resources that would be involved in maintaining a project like that long term. But the great thing is that what we can tell them, if they're still there, we can be like, hey, we can get you started with Wagtail. And if you're still really excited about this headless thing, you can always convert
Speaker 1: over
Speaker 2: time. Like, you know, it and you know, or if you want to change your front end, like it's not the end of the world uh to switch it out. You know, there's there's like, you know, a lot of uh different uh things happening. Hey Mezu, I saw a greeting there. Always good to see you. Glad he's on.
Speaker 1: Awesome. I love that buy it for life concept. I uh I've you know uh haven't I haven't thought about it in that particular context. Um but I think that's indicative of what we're gonna show here. I mean, what I promise on the stream is not the best wagtail code. If you want like a real-world like person who's cutting their teeth on some of their first projects with their own website a long time ago and it's been maybe a little lazy and cut a couple of corners. But what we could point to is parts in the code where there we um illustrate an opinionated difference between Django and Wagtail. So part of that is that block system. Um, and then we can solve a bug early on
Speaker 1: if we decide to, maybe some people can put it in the chat what they'd like us to start on. Um sometimes streams care about um getting to completion and finishing that upgrade that we promised. But then sometimes we get into really good conversations and I want to be uh thoughtful of that. And if we Find conversations we love, I'd love to just follow those till till their end. Um but yeah, I can bring up my code on on stage I mentioned at the at the top that there is a um I need to change out my I didn't set up Pro Postgres on this particular machine, so I'm going to switch out with uh SQLite, which should be very easy from what I remember. Um And it'll kind of we can talk about like, you know, uh persistent databases and how sh uh how important they are in kind of the software development lifecycle and how they can scale up with Django and Wagtail, lots of different things
Speaker 1: But all the while I hope people remember that they can vote for Jenga or excuse me for Wagtail for the CMScritic. com award and that link is flowing across the bottom of our screen.
Speaker 2: Yeah, we've been nominated uh for best free CMS and best open source CMS. We're the only Python-based content management system in the race. Uh so if Even if you're all just like, you know, uh dedicated to Python, please, please vote for us. Uh, you know, we want to overtake, we're competing against like Joomla uh and some of these like you know big uh names in the PHP world. Although like Umbraco actually uh they do ASP. net uh and I've heard good things about them too Although in my opinion, ASP. net is like such an opinionated framework. It takes a real special person to work on ASP.
Speaker 2: And I know some great special people who do that. And I I love having them in my life. I am not one of those people, though.
Speaker 1: Awesome. So I got a question from someone in the chat. Hey guys, I have a question. If someone is a no -code developer, how essential uh is it to learn Python? Um Yeah, Megan, do you want to try to uh take this one first? I can also take it whichever you'd like.
Speaker 2: Um yeah, I would definitely say that uh if you're totally no code that Wagtail might not be the best fit long term for you. We are seeing um slowly but surely uh as a lot of these uh AI tools are getting better and as we're like One of the things that we did recently is we made our docs easier to ingest for these sorts of tools. So the context is improving. When I was first experimenting with it like a few months ago, I wrote a blog post about how there's still generally a fair amount of confusion on the template side between how Wagtail does template code versus how Django does template code and a lot of these models will complete the two.
Speaker 2: That hopefully will start getting better as we're providing better context. But it's it's not uh, you know, most people who think of no code uh think of WordPress with their famous five-minute install. You know, and that is totally doable for a no-code person. It honestly kind of depends on what the project you want to do out there and how customizable you want it to be. I think even if you took our starter kit and threw that up there, you would still have to understand and dig into some code to make some changes. uh because like we we one of the things that we provide in Wagtail is kind of a balance between all of the different roles
Speaker 2: And we have found that in content management systems, when you give the editor too much power to change things It can lead to a very unsustainable code base over time. It makes your like front-end code look like spaghetti eventually. And that's very hard to maintain. And back to that whole buy it for life principle. is kind of why we made this decision. We are not the best choice for no code. If you want to learn Wagtail, I highly recommend definitely want to pick up some Python. And also you can start with either Django or Wagtail. It doesn't matter which direction you go in, but you do eventually want to learn some Django stuff too. Just because you can take a lot of the great things that Django has and add those to your Wagtail projects as well.
Speaker 2: So yeah.
Speaker 1: And I I a hundred percent agree on all of those. And a different angle, even kind of stepping back from the Wagtail approach, but just uh my advice for no-code developers and whether or not Python is going to be important in their in their toolkit moving forward I'm a Pythonista. I love Python so much and I've invested a lot of my time into um the community and it's given me so much. And uh so I absolutely recommend Python. They say it's the second best language for everything, um, which I think is a really great badge of honor. Um Because you it is not only is it really great in a readable language for a lot of different things, but it's a really great glue language.
Speaker 1: So if you do have maybe a no-code solution, but they have an API, many times the first language or the second language they'll support. will be a node or python. And so as you're making that a little bit more extensible, maybe you can set up um a a task or something like that in Python. And as you build your Python chops um that could be a skill set you can grow in. So you can do web development like what like we're what we're talking about in Python. But you can also do data analytics. and data science and machine learning and LLMs. I mean I've even seen an example from Wagtail, I think it's Wagtail AI. where there was an LLM in the editor to provide code suggestions
Speaker 1: and you can pipe in any um any agent or excuse me.
Speaker 2: Yeah, that one is focused more towards editors. So it provides it's it's a similar experience to some other content management systems are also offering ways to incorporate AI into kind of the editing workflow. So that's a set like what like I'll take this opportunity to share kind of our approach. to AI and Wagtail is, you know, we're Wagtails, we're not canaries. We're not going to be the first one down the mine shaft. You know, we're we're not on the bleeding edge of AI and we're kind of like hanging back. And our philosophy is we're never going to make AI mandatory in core. We're always going to give you that choice to bring AI in, and that's why we put the AI features in a separate package.
Speaker 2: So now you can and we were we focused on kind of those tasks that a lot of editors don't like doing, like adding alt text uh or picking out um hashtags and things like that. Like you can um basically give them opportunity or summarizing articles A lot of people like, you know, have to fill out SEO metadata all the time and it can get very repetitive. Um, and it just makes it a little bit quicker to prompt uh you know an AI to be like, hey, can you summarize this thing and give me a summary here right in the UI? I actually haven't played a lot around with it myself. I'm intending to do a lot more experiments to see like honestly how much time it saves. Uh but this is our way of giving people like, hey, here are some options to give your editors these features if they really want them.
Speaker 2: Uh but we're not going to make it mandatory.
Speaker 1: Yeah. I love working with pragmatists. That's great. And yeah, that was more of a kind of a also an example of where people could go, right? That's the whole it's just Python or you can hook it up with Python kind of conversation we were going down of if that's interesting to you there are extensible tools and features and a package that you that you mentioned where you can um add it but it doesn't necessarily have to come out the box Interesting.
Speaker 2: Yeah.
Speaker 1: Um great. Well, thanks for going deeper into that. Um maybe we can show some code now. I can switch over to my machine. and my uh machine
Speaker 2: So brave showing off her personal website code.
Speaker 1: Yeah, it is and I also my brand is very expensive accessible. I don't pretend that I have some type of magic sauce on some of these things. So what we're gonna do is just Show my um show yeah my laundry. All right. I'm gonna stop the screen and I'm gonna add a new one and I'm gonna make it my VS Code window. All right. So uh uh don't save because we haven't added it yet. Don't save. Okay. So here is my file and its directories.
Speaker 1: And I built this a long time ago, so you'll notice on this side. Is this large enough to see? Should I make it any even larger? Better? So uh what I had in my terminal is the error that I mentioned that it says that it needs uh SQLite. So we have a couple of features, a couple of steps that we can go through to add that. And then I'll walk through what my file structure looks like. I have um lots of node file structures because I was playing around a while ago with adding um uh Uh starts with T and everybody tailwind at the front on the front end. And this was back when everyone was using like post
Speaker 1: CSS. Um and babble to compile my my front end, but I've mostly moved away from that these days I deployed to Netlify for a little while, but then I deployed to Heroku. Now I gotta find a new solution, everybody in the
Speaker 2: so many people talking about that.
Speaker 1: Yeah uh shout out to code red i'm gonna try code red next vince salvino in in team i'm gonna try to deploy my my wagtail site there next Um I have a common um directory for for common processors. I have context processor here. Now my name of the site is Don Wages Info. So this is where my settings, my URL, my whiskey files are. I have my static and my templates in here as well. Um, this is where my front end goes. I have a media, I have a portfolio app, and I separated it as an app because it functions a bit differently than the rest of them. Um I also have Puppet and here as my blog uh blog engine um when I first start
Speaker 1: uh when I first started. Uh I use Wagtail Search and then this is my my webpack so I can um uh build my front end solution Any thoughts, anything you want to poke around in? We can look at my templates if you want. We can took look at block structures, or we can just start fixing things.
Speaker 2: Yeah, I mean, um it might be more instructive to like uh well maybe give people like a uh like a quick tour of like how your blocks are structured.
Speaker 1: Wow, let's do that. Cool. So home is my base one. And then I have um blocks. If I were to do this again, I wouldn't separate My default directory, which is the name of my full project, with my front end, and then I have an home, and then I have a portfolio. I think that was a little bit too much. for splitting up the apps, being thoughtful about the division of your apps and the workload helps is helpful to figure out where your blocks end up because they are sub um sub-filed under your directories. But I can show my home um blocks, I have style guide colors, language options because I have uh I run a coding blog
Speaker 1: So I will um update and I use a particular tool, I can't remember what it's called, but I can pick from um which languages I want to use. And then this is how I'm defining What's gonna look like a header. Uh this I have a text with heading specifically so they're bundled together and so I can make maybe a border on the outside and I can make it uh styled aesthetically differently uh text with heading with right image block. Uh text heading image block. Um and in these, right, I can on this one I have a to do right or add right or left side, but here we and I wanted it to be changeable. So right here if I added right or left side, I would be able to add a decision
Speaker 1: in the CMS side for the user, which is me. I use my own, this not thing I've I've sold, um, to decide in an option whether or not they want it on the right or left side dynamically And then the template, which is linked here on line 38, uh 83, excuse me, uh, to make decisions by the the template blocks.
Speaker 2: Yeah, I I just definitely wanted to give folks a sense of like um like I think you have this organized very well. This is a pretty common structure, um, having all the models in one file and then the blocks in the other Um, and I guess you also have kind of an index page and a blog page. Do you have any other page types or is it just those two?
Speaker 1: Let's go to my page types. Yeah, so here's my, let's close this out to make it bigger, perfect.
Speaker 2: Ah, the mandatory homepage. Don't leave that one out, folks. It will not go well.
Speaker 1: Uh yeah, that's actually that's a really great point. Yeah. Uh I've I've been a victim of that on my first site, but not my second. Um, I have tags, so I liked having cluster tags for my pages.
Speaker 2: Okay.
Speaker 1: Um, and there's also more things to do that you could do on that. I also have a gallery snippet or I had it as a snippet. I I removed it as a snippet. But um this is when you go into my site I wonder if I can show both at the same time. I cannot. If you go into my site and you add an image, you can have a whole, I can have a whole gallery carousel. at the bottom of my each of my blog posts. So I have a field panel and then I have a picture picker and a caption for each of these.
Speaker 2: Yeah, yeah
Speaker 1: Um let's see if there's more pages. Oh, I could do another page under my portfolio.
Speaker 2: Okay, so you have separate apps. for like okay yeah that's another pretty common structure for for folks is to kind of separate things out into different apps.
Speaker 1: Okay, here. Here's my portfolio index page.
Speaker 2: Okay.
Speaker 1: Entry page here. I think this is maybe the pattern we were talking about of the index and entry page.
Speaker 2: Yeah. Uh
Speaker 1: just to talk a little bit more through that, I I'm pulling all posts as this um variable all posts. and you'll be able to uh filter from those or manipulate those um as you see fit in your templates. And we can go to my templates next. And it'll be the children, all children of portfolio entry that are live and ordered, ordered by the start date, will be pulled into this variable. I have a print that shouldn't be there. Right? This is real code, Fred. Um, and then now I'm able to surface the context up into my um into my template like I mentioned. And so if I go to my templates in the same portfolio directory and I'll go to my portfolio index
Speaker 1: page You'll see I'm using page. url that references this um that oh that is a global variable that's uh like a syntactic sugar for for me. So I didn't have to pull that one, but here, this is for posts and posts. And so that would be a variable that I pulled from my context that I added to my context. Cool. And so then for people who are familiar, this should look very similar to Ginja and HTML. So the this may not be too wild for ya. Um
Speaker 2: Yeah, yeah. Yeah. When you do your own website it's it you almost always have the structure in your head. But kind of what we're demonstrating right now is if you were to upgrade like a site that you've never worked on before or something like that, it's always good to just kind of walk through and get an idea what the structure is like. Um, because there are different ways that Wagtail and Django can be set up. Um and some people have different ways of approaching things. uh you put your t your front end templates kind of in every application, which is a very common choice.
Speaker 1: Yeah.
Speaker 2: But it is also a common choice. And this is the one where when you work with a separate front-end team, this is the one they usually demand.
Speaker 1: Okay.
Speaker 2: Is all the front-end templates are in a single directory in the project. And then they're organized according to app within that directory.
Speaker 1: I might do that after this. Like I'm on my wagtail bug upgrading. So if you have any hot tips, please use me as an example. I want people to learn from me. Yeah, I mean it 's a wine I'm gonna move my template.
Speaker 2: When you're working on a smaller site, it really depends what works best for you. But when you're working with like a whole front-end team and they're like, I don't care what the back end code looks like looks like. I don't want to deal with it. Can you just give me one directory to go to?
Speaker 1: Yep.
Speaker 2: And fortunately Wagtail and Django have that flexibility.
Speaker 1: Awesome. I do want to um point out how the views work as well. So just to remind people, I I think my views are in somewhere else, right? I didn't do this all the restaurants.
Speaker 2: Well you probably don't need a whole lot of custom views. It really depends what you got going on.
Speaker 1: Yeah, I don't think they were too custom, but I have um
Speaker 2: Yeah, views and Wagtail generally you don't need them if you stick to our structure. Um like they're pretty much incorporated. But there are times, particularly with forums and other things, that you might want to have a custom view approach.
Speaker 1: Do I not oh you're right. I guess I'm not playing. I must be referencing in my mind's um some Django sites that I've done. Well that's a interesting thing to to also chat about. That's a structurally different part than maybe.
Speaker 2: Yeah, it's kind of one of the big differences between Wagtail and Django and a lot of Django folks are like, but views, where, where? And it's like, uh no, you you don't always need them. They're incorporated.
Speaker 1: For people not familiar with the MVC framework, it's models views controllers. So models is uh are the object-oriented programming um abstraction to create objects or like things in your database, uh things you're going to count or iterate over or store. views is how you want to collate and ingest and egress that data. And then you'll have your controller which is going to help you with your templates. Um make sure they like are articulated like you want, all those things. Um, I believe I did that correctly. Did I do it justice?
Speaker 2: Yeah, you totally did.
Speaker 1: Okay.
Speaker 2: Maybe we should uh get you up to a new version and start. Yeah, let's do it.
Speaker 1: Let's do it. We've got a few minutes um left. We got about 15 minutes. So for people who are still hanging out, you could see me fumble around some stuff. Because it's been a a while since I've played around with this. Right now we need to update my SQLite version and multitasking is not always easy. So Um I updated my base directory. I'm gonna pull this to another screen so because there are some settings in my um There might be some things in my settings file. So I'm gonna open up a new window that is not visible. And I'm gonna open up my settings file just to make sure.
Speaker 2: Yeah, while you're working on that, I can talk to people a bit about the approach and upgrading wagtail that we generally recommend is that you go from uh minor version to minor version. Um so like, you know, we would want instead of jumping like you can jump from 6. 2 to 7. 2 if you want to see what happens. It might be chaos. Pretty big leap. Uh generally we recommend going, you know, from 6. 2 to 6. 3, like whatever the next minor version release is. That gives you the opportunity to kind of uh catch any code changes you need to make along the way versus like just getting a Big mess of errors. Um, especially since in uh you know Wagtail relies on a lot of Django
Speaker 2: error handling. Wagtail is built on top of Django. And it can be a little bit hard sometimes to tease out where exactly the errors are coming from. And then also sometimes there are errors hidden under errors Uh you may fix one thing to find a new thing.
Speaker 1: And all all friction is really this guy. But this is maybe fun because it's like a realistic approach to someone who may not be paying attention to the release docs or doing all of the the maintenance that they should be. Um Let's open uh okay. Let me just create a new we'll open this and open it to I'm gonna need to unshare for just a moment.
Speaker 2: No worries.
Speaker 1: Mm-hmm. Open to the side, there we go. And then I could pull it out like this.
Speaker 2: Yeah, for the folks who did ask the no code question earlier. Um As well, we do have on our blog uh we have been experimenting with an AI skill for doing upgrades Um, so that is that is something that people can try out. I do recommend trying like you know, doing this yourself sometimes too, so that you can understand what exactly it's doing. Um but You know, it's uh definitely something that I think uh could also make uh the upgrade experience a lot easier for people moving forward.
Speaker 1: So I have uh my database default uh selected. Um and then let's open up some documentation. Um The error that I have is that let's hide this again. Unsupported operand. Where in the documentation will it show the database types? Is that a Django? Is that gonna be in Django docs or in Wagtail docs?
Speaker 2: It's probably more likely to be in the Django docs, so.
Speaker 1: Uh Super Light. This one's gonna be a really should be a quick one. And then let's open up a new Okay , shut my whole window. Entire screen. There we go. Alright. And let's go to SQLite. Um there we go. Default engine. Let's type this over. into my other
Speaker 1: application. Let's move this over here. And look at the documentation. Alright, I do have my engine correct. I have the name correct. Have I identified what my baster is? Correct. I have. So Spot two I'm supported. I think I'm just missing some syntax right now then. So what I need to do is highlight
Speaker 1: my The name of
Speaker 2: do you have this in dev settings or base settings?
Speaker 1: It's in my base right now because I just wanted to overwrite everything. Oh here it is.
Speaker 2: Yeah.
Speaker 1: Uh name, I could just use a regular string Um yeah, let's just do a test string. The name of the directory. Okay. Let's see if that fixes something Alright. And port 534 5432, that means it's still looking at my Postgres So maybe I should be going to my dev settings instead. Oh, environment
Speaker 1: git local. This doesn't have any secrets in it. So you can look at my dev. Settings.
Speaker 2: Yes, don't show your secrets to the internet, folks.
Speaker 1: No secrets on this particular one. Um so I have it in my local environment okay, so I should be looking at local instead. Let me pull this over to the side. Ah, there we are. Okay, perfect. So let me remove this from this other base setting. And then put it in my local And let's try this again. Ah, there you go. Now it's working.
Speaker 2: Woo!
Speaker 1: Woo! Uh, let me go to local host. That makes sense because I need to run migrations.
Speaker 2: Yep.
Speaker 1: And also we will probably have um some UI issues. because I don't have node activated right now. But then I think I've worked it already. So anyway, we'll see. So Python manage that PY migrate. Oh, gotta go down one level. Perfect. There we go. Applying migrations.
Speaker 2: This is the most magical thing about Django and Wagtail for me coming from the WordPress and PHP world is just having all your SQL. Magically handled.
Speaker 1: Yes. And I can also show maybe my migrations. So what happens is as you are building in each of your apps, there is going to be a migration uh directory that is created and will mostly update itself. I highly, highly recommend do not just go in here and like fiddle unless you know exactly what you're doing. Um, but each of them are enumerated, they are labeled with excuse me, with some rough estimations on what um was done and if a lot was done and you don't supply it with language, it'll just say auto and the date, which is really helpful to kind of figure out what changes you're making to your database. And Let's open this up to show more. So you're they're identifying this one.
Speaker 1: I edited the model page gallery image. and then added a different field and I added a specific heading and I'm using Wagtail Blockstruck Block to be able to do it. And a few other things. I added some features on a char block. as well, which text block. So a lot of things that came out of the box for Wagtail, I added additional features into this new uh block that I created. Um yeah, and then it shows where it's applied. So let's go back to my aha, it worked And so now I need to this is what it's supposed to look like.
Speaker 2: It doesn't have all the pretty front end stuff, but you know, it's it's got it's got most of the data structure, which is great.
Speaker 1: And so now I need to create my super users so I can log in locally. And my computer's name is Meg, so it will be Meg. And I'll do example at example. com. And actually, I'll show you what it does when you do a too simple password. Cause that's cool. I don't The password's too short, too common, something something. I just These are nice developer experience features that show people.
Speaker 2: security features, uh which is one of the other kind of uh buy it for life things that's key to us uh is to making make sure that security is um something that is like really baked in. And we follow Django's lead on a lot of that.
Speaker 1: Awesome. And so I think the default is uh I think I have it set to admin. Oh, but I do oh well yeah. Oh actually, when instead of talking about the uh views, we could talk about URLs a little bit as uh well. Well, I guess that's kind of the way that you're doing that interop instead of the views, right? So I am including some admin URLs, the documentation URLs, and search views. To give me my full URL site structure. So I can still get to the Jag Django admin and then my own admin
Speaker 2: Yeah, a lot of people don't realize you can still use the Django admin if you want to in Wagtail. There are actually some groups that what they'll do is they'll put um some stuff that really only super admins And admins should have access to in the Django admin side of things. And then they'll put all the like regular user stuff into Wagtail.
Speaker 1: Cool.
Speaker 2: So yeah.
Speaker 1: And we have a few more minutes left. So what we could do, it'll be a fun end, is we can try to break my local instance by upgrading it all at once.
Speaker 2: Hey, if you use your site, if that's what you want to do, you're go ahead and put to 7. 3. Yeah, okay.
Speaker 1: So what's the most important thing?
Speaker 2: If that's what you want to do, we can see what sort of error happens
Speaker 1: Yeah, and this will I think it'll just be for the the fun of the game. Like this is not recommended.
Speaker 2: You never know. There might not be any errors. Um it really depends on what you have in your site.
Speaker 1: Okay. So uh I'll do go to my uh terminal and I'll pip in.
Speaker 2: And it's actually since I saw your packaging lists there. Like it's it's it might be more likely that uh we'll see some errors related to your packages than Wagtail itself.
Speaker 1: You know, and that's where we start. So I I appreciate that. So let me open my Oops, let me open my um control.
Speaker 2: Yeah, yeah, it's like it's it's the dependencies sometimes that um aren't quite as caught up um with with Wagtail Core. So it's uh, you know, we we are very we pay very close attention to compatibility with with Django and some other key packages, um, but we can't keep track of everybody.
Speaker 1: So I'll just I think the best way to do it is just pip install 7. 3. No. How do I
Speaker 2: it depends on your you gotta
Speaker 1: or should I add it to my
Speaker 2: You should definitely add it to your requirements.
Speaker 1: Requirements before everything else though. Right, because it'll just resolve. It'll say it can't do XY. Um, but I have all of these pinned So
Speaker 2: Yeah, I wasn't sure if you were using a package manager or not.
Speaker 1: Oh yeah, I am. I'm using I'm using Pip. for my package manager, no not condo or anything like that. Or
Speaker 2: poetry or anything weird like.
Speaker 1: Oh no, I'm not using poetry these days. Not right now.
Speaker 2: Exactly.
Speaker 1: And then the rest of it I could I don't I don't know what I don't actually do this too often too much anymore. So let's do this. And then we can copy that over. And we can do a new pip freeze into my existing Requirements and we'll see what it does. So I'll do pip install requirements. txt. It'll be only one thing. Um recursive
Speaker 1: So it's just doing wagtail right now.
Speaker 2: That's what it looks like.
Speaker 1: And so then I get puppet needs higher
Speaker 2: So less than 7. 0. It doesn't look like they're quite. Yeah, see, that's what I was expecting is we might see some package. incompatibilities.
Speaker 1: Mm-hmm.
Speaker 2: And that and that's a you know something to consider as you're looking to upgrade Wagtails. to definitely like if you if you rely on other packages very heavily you just definitely want to check their release notes and their docs to see what they're compatible with.
Speaker 1: Awesome. Cool. This is the start of what I'm gonna be doing for the rest of the day. I think I'll write a blog post on this and maybe I'll record some of it. And I really like the flow of this, the live stream today. I think we did a lot of good talking. got a bit of code going around, a little bit of a show and tell that was a little scary. Um and then I'll uh follow back up with how my upgrade goes.
Speaker 2: Awesome. That sounds great, Dawn. Thank you for having me on. And thank you for reminding everybody, please vote for us in the CMS Critic Awards. It would be so helpful, y'all.
Speaker 1: Thanks. All right. Well, thanks for having me on the Wag Tail YouTube. I feel so honored. And have a great weekend. You
Speaker 2: too, Don. Bye, everybody.
Note: We understand that names change, people change, and bodies change. We respect each individual's journey and privacy. If you have any concerns about a video or need us to remove content, please don't hesitate to contact us. We will handle your request with care and promptly address any issues.
Published October 26, 2026
Published November 6, 2025
Published July 19, 2024
Published October 26, 2026
Published March 30, 2022