Building a Wagtail CMS Experience that Editors Love with Michael Trythall
Published October 23, 2025
This video features Michael Trythall at DjangoCon US 2023 in Durham, North Carolina, USA.
Explore options for building Django-based content-managed websites that editors will love. Learn about the features and patterns necessary for content editing and how they are supported in Django-land. Gain the knowledge to select the best Django-driven CMS for their next project.
This talk was presented at: https://2023.djangocon.us/talks/managing-content-with-django/
LINKS:
Follow Michael Trythall 👇
Website: https://lincolnloop.com/
Follow DjangCon US 👇
https://fosstodon.org/@djangocon
https://twitter.com/djangocon
Follow DEFNA 👇
https://www.defna.org/
Video production by the presenter and DjangoCon US 2023 volunteers.
Michael Trythall compares Django CMS and Wagtail as tools for managing content, stressing that CMS projects should begin with research into users, workflows, terminology, data, and content needs. He describes Django CMS as a lightweight, component-oriented layer suited to data-rich Django systems, structured content, syndication, and fast front-end editing, while Wagtail is a more feature-rich, page-focused system with a stronger user experience, media tools, workflows, and community. He argues there is no universal winner: Wagtail is often a good fit for content-heavy, website-first projects, while Django CMS suits larger systems where Django powers multiple applications and the CMS is one part of the whole.
Summarised automatically from the transcript.
Automatically transcribed, so expect mistakes in names and technical terms.
Speaker 1: Um hi, I'm Mike. Uh I'm the director of strategy at Lincoln Loop. Um Lincoln Loop is a web development company that specializes in Django. We do everything from strategy to operations. I've been with the company for about 15 years. I have a long history in publishing. Um if you part of my job as a director of strategy is helping people with really rough ideas uh turn those into real life things. So if you wanted to make TikTok for dogs or something, um, and you had this a ton of money and a crazy idea, I would be the person that said, why dogs? Why TikTok? Who are you? How much money do you have? What are we doing? What's your timeline? And then I would help you shape that through the whole process.
Speaker 1: So as you can guess, I I talk to a lot of people Django has a lot of roots in publishing. So one of the things that we have started to specialize in is content platforms. So here's some of our clients. We're really proud of this list. We've been able to build things from gaming platforms to marketing websites to large-scale magazines. These are large projects. When I first joined Lincoln Loop, we were building little restaurant websites, and that was really fun. It was before all the cool tools, uh cool uh tools sort of existed. It was a lot harder back then. But yeah, so part of my job is working with folks who want to get content onto the internet and figuring out how to do that. And one of the tools,
Speaker 1: some of the tools that we use are Django and Django CMS and Wagtail and obviously Django. We're very fortunate, I think, as Djangonauts to have these tools. I've spent the past year looking at a bunch of different CMSs across technologies, a lot of stuff in Django or JavaScript land A lot of hosted options. There's been a lot of new CMSs in the past four, five, six years. Our tools are very well polished They have good communities around them. You can find tons of tutorials and documentation around them. And they go to toe-to-toe with some of the best options out there. You know, if you're spending thousands of dollars a month on content for one of these enterprise grade tools, you might have uh a few advantages in a few places.
Speaker 1: But then you're hosting all your data with someone else in a black box in some island somewhere or wherever. So I don't know. One of the takeaways I got from the past year is that we're in pretty good shape. These are the two CMSs that I'm going to take a look at today. I originally plan on covering the admin, but I think we all know the admin is a really great uh data management tool isn't really the best content management experience. Um my goal today is not to trash you the one of them or convince you one way or another. I just want you to be aware of your options. I want to see more people put out good content. and build more things with uh these these frameworks and and push them forward. As I said, if you came to LinkedIn Loop and you decided to to start working with us, we would kick off a research phase.
Speaker 1: If you are biting into a CMS project, I can't stress the importance of research. The importance of research. I see a lot of projects go sideways. We've inherited some projects that were a little bit more of a mess. And I think if if if folks spent a little bit more time understanding the users of the CMS. um the technology requirements, et cetera. Some of these projects would go a little bit better. Some of the projects that working with that we're working with are are complex enough that we have to spend, you know A couple different months just wrapping our heads around everything. Research is really important. It's a bunch of different things that you need to do to set up a project for success. It's also a really good opportunity to understand the nouns and the verbs of your CMS.
Speaker 1: Are you editing products? Um are you building a shop? Are you building pages? Um, you know, is it tags? Is it categories? Um are people People publishing or are they just pushing things live? Like what's what's the language and the nouns and the verbs that you're working with? And and and what are the things that are unique to the client or the project that you're on? Taking the time in the beginning to define those things can go a long way and forcing the process of thinking about what you're doing. One of the most important user types that I think you should talk to is content creators. They're the power users of any CMS. They're the people that are in it most of the time. They're building everything. They're uploading content. They're editing. They're gonna hit the bugs. They're gonna know the defects. They're gonna either fall in love with the CMS or they're gonna hate it
Speaker 1: Yeah, they're your power users. Usually they just aren't that powerful. The people that are usually building the content usually aren't the people that are having to decide uh what the technology uh that it's gonna be built on is. So um it's not uncommon for us to talk to a CTO and the CTO says, yeah, we want to use Django, we're a Python shop. We like Wagtail, we like Django CMS, whatever. Uh and then the intern, the person that, or you know, the junior marketing person that's building out the about us section had no say in that decision. So even though this person's been stuck with this piece of software for the next two or three, four, five years, however long they're with the company , their needs uh vary a lot and their workflow can be pretty complex. Um and usually anybody who's pumping out content is pumping out content.
Speaker 1: They're working pretty hard. They're hitting deadlines. They're I don't know. We have we have folks who are um right now publishing a ton of content around the um Hamas Israeli war. Like they're night and day just like trying to get information out there to help people. It can be high stressful if you're living in a CMS all the time. So what do content creators need to do? I would love to talk for hours about this topic. We are going to be boiling down um content management uh around two CMSs, large CMSs into hopefully 45 minutes if I can do it quick enough. I had to leave a lot of things out What do content creators need to do? This talk is going to primarily focus on content creators. I assume everybody here can go and get a Django project set up, can find the Wagtail documentation and get things moving,
Speaker 1: can successfully build a project. You have plenty of resources in order to make that happen. So what do they need to do? The first thing they need to know is what's important. What do they actually have to get done when they log into the app. None of the options really handle this well. It'd be really great if you could kind of go into the CMS and say, hey, this URL is broken, or Bob needs your help over here, or something like that. What you're probably looking for is a dashboard and really only Wagtail has that and it's pretty minimal. So we're gonna kind of not cover that one so much. Um finding things is a somewhat of a solved problem in both CMSs, but every CMS kind of solves a little bit differently. Both Wagtail and Django CMS have site site tree structures. They have search. They have good labeling, that kind of thing.
Speaker 1: Django CMS has front-end editing, which I'll show you in a minute. You can easily click around your site and then click a button to edit. So it's not too hard to find things, but I will say that this second bullet is kind of an architectural issue if you um if you set up your configuration a weird way or you linked models in a really weird way or you don't configure um the the management experience just right, or you have weird dependencies, it can be hard to find stuff. I do hear people a lot of times when we do these interviews with with uh content creators saying, I don't know how to make a change in a certain spot or I made a change over here and it impacted something over here. What we are going to focus on is simply the editing experience of the two CMSs. I would love to show you demos. I actually have both things running on my computer, but there is no way in heck I'm going to switch over to
Speaker 1: and do a live demo after what just happened. All right, let's talk making changes. Um context is really important and if you if you were really interested in this topic, I would go over to the Lincoln Loop booth and I would bug them because they will geek out about the technicals of all of this and they'll talk to you about context. I'm not as much of a developer these days. My main tool of choice is like Google Docs and like being cheery on a phone call. So um But context is really important. And it's not just who you're working with and where they are and the organization and how they're publishing content, but it is also uh what they're editing. Um data is quite a bit different from content. Um data has a defined shape. Um data can uh fuel multiple applications.
Speaker 1: You may be editing a product that updates a store which is a third-party application. You may be pushing data to a partner. You know, data is a little bit more rigid. Content tells a story. We build content to convert, to engage, to get donations, things like that. So keep that in mind because if you're building something that is very data heavy, that might be one CMS. If you're building something that's very content heavy, that might be another CMS. That might be a completely different experience. All right, so I'm going to very briefly give you the high-level overview of these two CMSs and then we'll talk about the editing experience a little bit more. Um this is a screenshot of Django CMS. At a high level, Django CMS is pretty minimal.
Speaker 1: The way that our team describes it, and we've been talking about this the past few days, is it's basically Django with some CMS, with a CMS editor kind of like attached. So if you are sort of a Django first type of site, if you have a lot of data, a lot of apps, and you just need an editing experience in editing a few pages, a little bit of content, Django CMS is probably for you. It also doesn't have a very heavy-handed user experience with regards to visual uh appearance, which I'll show. It's it's a lot of gray and white. You're not gonna come in and be like, whoa, it's Is what it is. Um it's Django admin with a skin. Um it's component first, and what I mean by that is that you're basically building structure. We'll talk about this a bit more. Um but By and large, you're building content
Speaker 1: out of smaller bits and pieces. And that's really important because not everybody thinks that way. The people that you may be building for, that might be blow their blow their minds out It's also heavy on front-end editing, meaning you're gonna look at a piece of content, you're gonna be staring at it, and then you're gonna be editing it where it is. Um there isn't some separate process where you're editing over here and then you push a button and then you go to another URL and or different tab and see it over here. Truth be told, I think the community is a little bit smaller from what I can tell, just based on numbers. A little bit of slower momentum. They seem to move a little bit. uh more carefully uh with changes to tend to think through them. Um my team tells me that they have more breaking changes than Wagtail, so take that in consideration as a developer. But I will say that they they make very sensible changes and are on the right track.
Speaker 1: They're just not pumping out something every two weeks. One little bit here, they have really good multilingual support. I've we've built a few sites that had multilingual support on Django CMS and it was a lot smoother. And that's just my take on it, but it always went a lot more smoothly than it did in Wagtail. All right, so just to kind of show you uh how minimalist it is, this is what happens. This is what you see when you first log into Django CMS. No direction, just a list of apps, bunch of stuff to get started with. Everybody's seen this, it's a stylized Django admin. Again, Django CMS telling you, hey, I'm just here to help you with Django stuff. You want to add some content? Cool. This is one of the interfaces that we'll talk a little bit. You'll probably see this a few times, but this is the front-end editing experience.
Speaker 1: If you are editing content, you're drilling down to a page, you're clicking a button, you're seeing all of the structure that made that page up As a side note, I don't recommend structuring your project this way. This is using the Bootstrap plugin. I would never give you a spacing plugin. But you know the idea is that you are seeing the uh essentially the tree or the structure of the page and editing it from there. If you were to click one of those blocks, you would get a little pop-up. Or if you were to click something, double-click something on the page, you'd get a little pop-up. This is great if you have, you know, somebody who's constantly making changes on the site. Um and they don't want to have to dig for anything. They can just drill down, double click, and boom. Next thing you know, they um they're editing This is the media manager, and I call this out because
Speaker 1: we'll get into media management a little bit more in a minute. But the media manager is it's it's based off Django Filer. Django CMS is so minimal that most a lot of the extra functionality beyond just basic content management comes from plugins. And there's tons of them and they're great. And anytime you're building a CMS site, you're gonna have some plugins. But Django filer is pretty bare bones. It's uh my my colleague uh described it as a um an abstraction layer for a file system. So it operates that way. It has folders, it has files, it puts everything in a table, just like you would expect kind of in the Django admin. If you're viewing photos, This don't help you much. But if you're viewing lots and lots of stuff and you're just trying to think about the logical ordering everything, this is this is great.
Speaker 1: Again, a little bit more on this in a minute. Wagtail. Wagtail has a much more heavy-handed user experience. Wagtail is very feature-rich. It comes with a more robust media manager, which I'll show. It has some workflow tools, which I haven't really seen many people use, but they're there. You can, you know, you have the approval process, all that sort of stuff. But it can get kind of robust with how far you take it. I believe Django CMS has a version of that coming up later this year. They have their own answer to it. Again, a much more polished user experience. It has commenting, it has in search. It's it's it's all encompassing, um meaning that you can build objects into Wagtail um instead of building objects kind of alongside Wagtail.
Speaker 1: Wagtail almost sort of wants to be the uh I don't know. It kind of wants to be the whole system. I I kind of think of it more like WordPress. If anyone's ever worked with WordPress, um don't raise your hands. I don't want you to be singled out and beaten in the hallway. But WordPress kind of was a blog engine that became a shopping cart that became like a weird, crazy monster thing when really at the end of the day it's just pages and blog posts, right? You can do all types of crazy stuff. And Whitale 's not really on that trajectory, but it kind of reminds me of being this thing where it's it's like kind of all it's like everything. It's this big foundation thing you've built on top of. Whitetail is page focused. It can do components and things like that, which again we'll touch on in a minute, but it is I tend to think about, we tend to think of it as an
Speaker 1: am I building a website with pages or am I building structured content that is that has some data alongside it and the structure of that data really matters? Wagtail has a huge community around it. I think Torchbox is here, CodeRed is here, we're here, Cactus I think does some Wagtail stuff. There's a lot of good agencies and firms and tons of people working around Wagtail. I see lots of progress are doctorally solid. It's just a joy to get involved with that community and to work on it. There's a lot of batteries, kind of going kind of going back to uh being feature rich. Um our experience is that some of the batteries and the features of Wagtail are a little bit hard to turn off if Wagtail is too much or doing something you don't like. Um sometimes depending on what it is, it can be a little tricky. I think the example that I was given is that uh the thumbnailing that Wagtail does is is built in.
Speaker 1: If you wanted to swap it out with something totally custom. You might not be able to do that super easy unless you're a bit more advanced. Django CMS is just like kick it and then put something else in. At least that's what the developers tell me. They could be lying. Just kind of going through the workflow or the UI real fast. Again, this is the dashboard. You get a little bit more information than you did with Django CMS. You can see that there's the workflow down the middle you can see. I don't I don't really get the point of showing the counts of objects, but If you want to feel big and you have a big number there, cool. Um and it has this, you know, nice clean left-hand navigation, which you can do a bunch of cool stuff with. Um the editing experience is uh just I'd love to be able to scroll through it, but um
Speaker 1: is um you know a bunch of fields uh and some some areas where you have some flexibility, preview on the right, and you have some um some other options and controls in the top right. The one thing I say about Wagtail is that it is UI is big, is is big UI, man. It's like um it's hard to fit everything on the screen unless you start shrinking stuff. Um Everyone at Lincoln Loop is getting a little older, so we're always complaining about like having to scroll through Wagtail to like just see everything and to get a feel for what's on a page. If I contrast that with what I showed you with Django CMS where I can kind of quickly at a glance see everything, Wagtail has an option for it, but it, I don't know, there's it's a vibe, man. It's just uh just it feels like it's it's like Got a lot of design to it, which is lovely and probably works if you need a really simple experience, but it's just not very information dense.
Speaker 1: Um the media management is a lot more visible. Um you don't have folders, you do have um tags um and collections. Um This is great if you're searching for a photo and you you need to see what it is. It's a little bit, I'd love to see an advanced view here. But uh you can kind of get the vibe just kind of going through those few screenshots. One is a lot more has a lot more design to it and is a bit more of an all-encompassing experience All right, so um what do editors need to do? What do creators need to do? Um and how are they editing? Um They had a lot of stuff, but I'm going to focus on these four because uh it gets boring and you'll think I'm a nerd if I go too far uh into the other ten
Speaker 1: items I can think of. The first is which is uh composable blocks. Shout out to Lego, had to find uh how to sh uh drop that icon in. Um composable, um this is tricky. Um If you live in the CMS space, uh and your name is Mike and you're a nerd, and this is your job, um You've probably heard the term composable and all composable means is uh modular really. Um a long time ago we used to edit an HTML file and drop it in the FTP and push it up. Um and then we started editing just like uh pages and it was just content. Um and eventually we got to this idea that what you should be editing is is blocks of content and and mixing and matching them and putting them together to build a page.
Speaker 1: And that's that's all that means. And and and in the case of um The CMS trying, folks, I'm sorry. Um Um so both CMSs will do this. They'll give you composable architecture, they'll let you mix and match and and just drop in um content. I think the Django CMS um screenshot showed that. It requires a good design system. The CMS has to know about the components that you're building. You can't just set up a component, um, say it's a uh a card grid. You need styles for a card grid. Usually you have your design and your CMS system a little bit separate. So there's a little bit of upfront planning about and
Speaker 1: thinking around how you build pages. So it offers a lot of flexibility. It's pretty easy in theory. It's hard in practice. It's harder to build something that works in any variable combination. But one of the reasons why clients ask for it and people ask for it in general is you you don't need a developer to come in and make a simple change to a layout. Again, you can mix and match components. You can say here's a hero here and then feature grid here and et cetera, et cetera. And you can just move stuff around. You don't have to go to somebody and say, this is exactly what I want. Go build it and come back to me. A really quick example, just picking on our own website. This is our about page. If I were building this out in a CMS, which is It's not. The top section would be a hero component.
Speaker 1: You can see I have a headline, a background, and a body element. And that's just one piece. Scrolling down, I might have a heading block where you see Link and Loop at a glance. And then I might have a features grid, this really neat looking grid. where I'm I'm gonna say, you know, I have a list of features and then I add feature cards. Um and the feature cards you know have a heading, a body, and a graphic, and I can add any number of those. And ideally what would happen is is the feature grid would know how to handle five, ten , fifteen. 15, 20, or maybe it limits me. Um, but the point is that I'm I'm building this page out of a of a series of blocks. Uh Wagtail allows this with uh stream fields, stream fields, um streamfield blocks, I think it's called. But basically you can go into Wagtail and say this this section
Speaker 1: um This section of this page is allows various different types of components to be added. You get this nice little pop-up when you hit the plus icon. And then off the right you you can see the structure that you have built. It's pretty sh pretty simple and it's pretty easy to customize. Here's the example that I was talking about earlier where I have a paragraph block and an image block. This is pretty tall. Text is pretty thick, pretty, pretty big. If you have a lot of stuff on a page, you can imagine scrolling through it. you might lose your place and and and lose a sense of the uh the structure. Um I I I wish it was a little more more dense when I needed it to be, but as you can see you can
Speaker 1: the little arrows over here, you can collapse and expand stuff if you if you wanted. Django CMS again has this. Again, I'm going to show this like three times because this is Django CMS. You get this structure, you can add components, you're going to get a pop-up. It's kind of the same thing as Wagtail. Pick the component, drop it in. All right, page types. So let's say that you do not want Bob the marketing intern to willy-nilly make any change he wants. And he's only allowed to edit the about page. And the about page has very specific fields that he can edit. That's when you would start talking about page-based. or page type based development. It's a template in essence.
Speaker 1: It's really good for one-off content, like I just said. A homepage is something that might be highly stylized. You probably don't want anybody being able going in and just mucking with the homepage. You might have individual um areas where they can make changes, but maybe the design is really fragile. So you only give someone the option to edit the title, the secondary text, and maybe a few blocks. Maybe the rest of it's automated. You know, maybe it's got a feed. Um And there's a lot of ways to to slice this, but in essence it's a very r it's a it's a more rigid content structure. Um This is where you're going to have a developer needing to come in and make a change. Usually the code is a big HTML file and there's some spots that somebody went in and you know, gave you places to edit, but um you don't have too much control.
Speaker 1: Um and this can be good. Like I said, if you might not want somebody coming in and mucking with certain things, maybe certain pages have logic or are really important. Looking at our link loop example, if I were to take that page again and make it very rigid and do just a page type, an about page type. Similar content, but not as a um as any type of component. And instead of having my features be in a grid, I had feature one, feature two, feature three, et cetera down the line. I'd have a fixed number, so you'd always have to have that number. And if you had less at the UI might not work that well, you couldn't have more. You wouldn't be able to add any more Again, very, very rigid, but there's a place for this. And some CMSs just don't allow this at all.
Speaker 1: Fortunately ours do, but if you were outside of Django land, it's composable and that's it. Sometimes you need some structure. Wagtail has an example. And just a heads up, everything that I'm showing you is from Django CMS's. default demo and Wagtails default demo. So if you wanted to go kind of poke around those, you could pull those projects down, get them up and running and see all the same stuff I'm showing you. I tried not to to go into any of our projects and find stuff that wasn't things you you'd hit in real life. This is a gallery object. It takes a collection down at the bottom. It has a few fields, introduction, and an image. It does have a page body where I have some composable elements so I could just drop in different stream film blocks. And that looks like this, right? I really wouldn't want somebody kind of adding a whole bunch of content to this page.
Speaker 1: It's a really simple list, right? So I don't need a lot of edibility. Django CMS has this. It actually has a little bit more than this, but it's kind of difficult to get a screenshot of it. So in essence, um what Django CMS will let you do is it'll let you define a type. And when you go to add that type, you'll get a page and it'll have some of these things pre-filled for you. And they'll just be set up. So again, Django CMS is pushing you back to this this they call it they call each one of these plugins These uh little things on the right underneath content and header, which is a weird name to me because you also have plugins that like extend features. Um I'm gonna call them components, right? Um you could get a predefined set of components But you're still editing components. You're not editing a page.
Speaker 1: You're not editing a f like one big form. You're editing the individual parts. That's a big thing in Django CMS. Again, they're enforcing that structure, which is a really good thing if you're you know your CMS is powering more than just a website. If it's powering an API or if it's powering, I think we use Django CMS on some projects with Apple News. You know, that content's a little bit different. So we're a little bit more focused on structure there. All right, so data. Content creators edit data a little bit. Data is structured and primitive. It can be very disconnected from design and layout. I could edit a product. That doesn't get displayed on my website on one big page. It could just be something that's in a list. The amount of data that I put into the system might not ever really be reflected in one any one single interface.
Speaker 1: I could upload, I used to use products a lot as an example here, but I could upload 50 product shots, but only one or two of them ever show up. My pricing could be different depending on the layout or the season. Sometimes, again, you know, maybe the data you're entering is just going to show up in JSON. It's not uncommon to be editing some content alongside some data. And usually data is informing content in some capacity. The thing with data is that the changes that you make can impact things elsewhere. So you know, an example might be If I adjust the price on something, uh maybe that causes its product page to maybe I lower the price by
Speaker 1: 20, 30%. All of a sudden the page has flames behind it and it's like buy now, buy now Um it's not uncommon to change a piece of data and have something weird happen somewhere else Data is also a little bit harder to understand. Content's pretty simple. It's text, it's images, it's tables, it's things like that. Not everybody who's managing content. It's always going to be feel super comfortable managing all parts of data. Data can be, again, because it can be tied to other parts of an organization, things can be built on top of it. Um they may be reluctant to change it. It may be acronyms and terms that they aren't super familiar with, but it's sort of in their space, so they kind of have to know a little bit of it This is my really dorky example of a simple data model.
Speaker 1: This is my user profile on linkandloop. com. Uh you can you can go to my zip code and um stalk me. Um you can see my bio. This is just Django admin, um which kind of leads me to my point that if you're you're managing data. Um and you have a data-rich app, sure you can manage it in Wagtail. This is a person example, it's pretty simple. Um, but then you're building your data into Wagtail. And maybe your data is a little bit better suited living inside Django, especially if you're building other things on top of it. Again, this is that WordPress model. Django CMS uh kind of gives you if you're going and editing uh data in around the CMS, it's it's gonna kind of just give you forms or and a skin for for the Django admin, um
Speaker 1: uh trying to be sort of true to form. So this feels a little bit more natural when you're editing data. It doesn't have that whole rich experience. It's a little bit more dense. Uh I most of our bigger clients, I think, that are are deep in data land with a little bit of content or or have a lot of structure seem to connect more with this model, from what I can tell. All right, media. Uh media is hard. Um It's a pain in the butt. Media can be really complex because of different file types. Like for example, an SVG is actually an executable document that can have JavaScript in it. But it's like pictures and stuff.
Speaker 1: Um and that's weird for people. Uh it's also security nightmare. And uh we often have to upload media and then manipulate it for it to display. So both systems, both Django CMS and Wagtail, have really good thumbnailing systems. But again, I'm putting up uh original media and then we're shrinking it down like six different times to show it everywhere. So you're not always doing that with a lot of different types of content types. Um maybe you're doing something with video, maybe you're compressing it. Um media sometimes is often not It's also served somewhere else. It's an S3 or it could be tied to um another service entirely. A lot of times it is most of the time, pretty much every time, right? It's built outside of the CMS. You're not going into Wagtail or Daniel CMS or WordPress and like
Speaker 1: Photoshopping stuff or the equivalent of that, that would be insane. Um, so it is an asset that is heavily built outside of the CMS, and the only interaction it really has is being uploaded and maybe selected for display And media is almost always coupled with a lot of data too. It's got metadata, it's got attribution, it's got an owner, it's got maybe, you know, if it's a photo, it's got like location, things like that. So yeah, media can get really complex, and that's one of the reasons why you'll see so many other services out there. Um, uh digital asset managers, dams. You'll hear there's a lot in CMS land. Um it's it's whole companies where their whole business model is like we just manage photos and like you can run AI through them and like get tags built automatically and all kinds of weird stuff.
Speaker 1: Um Both Django CMS and Wagtail have some really cool plugins around uh um media management. Like you can augment them. Um you can run AI against stuff, you can you know you can enhance sorting. And filtering and things like that. Um, we don't tend to do too much with those, but they are out there if you have a client that it's like got tons of photos. I will say that if you have a client that um or your organization is um doing a whole lot with media, you you you may be looking at maybe doing a third-party solution, but to get you out the door, um I think Django File and White Tail get you pretty far. Again, this is uh Wagtails experience. Um if you were to drill down into one of those, you're gonna get a nice looking um
Speaker 1: details view. Um Uh both Wagtail and Django CMS will give you the option to apply a focal point to a photo, which is really neat because it allows you to crop stuff down. Allows you to crop stuff down if you um if you're if you're cutting thumbnails. You obviously don't want to cut off someone's head if you're resizing. This is, I think, a nice display. If I were designing this, I think I'd probably come up with something somewhat similar. This is a little bit more information dense than the other screens. It's got good information, file size, the usage is really helpful. People always want to see how many times was a photo used. So props to the team for that one. Django CMS.
Speaker 1: Angle CMS has this view again. Um and its detailed view is a little bit similar with regards to information, but not the same display. I have a lot of white space over here that I could be using with something. But it's not. And uh all of the metadata is kind of further down the page. Let me fix this real fast. All right, so uh wrapping up here. Um it's a it's a really complex topic, it's hard to hit on everything. Um You know, Wagtail is an all-encompassing tool. I think if you're you're building something that is page-based, that is maybe web-based, and I'm not saying Wagtail can't do it. And I'll touch on that in a second, but if you're building something where you're it's kind of website first
Speaker 1: and it's content first, um Wagtail is is probably a good fit. Um it is it is The best way I can describe it is that it's all encompassing. It's it's the thing that I would build a site on top of it was content heavy. The one thing that's been really good from the Wagtail side is that it's getting better about tying in with objects that aren't pages their snippet model comes to mind. You can have, I think I I showed a user object earlier where somebody was editing a um a user That's now just a Django model that's been pulled up into the admin. I think there used to be a hook before that. It used to be a little bit harder Whitel has the better user experience most of the time. I think the front-end uh editing aspect of
Speaker 1: um Django CMS is really helpful for quick changes and for folks who aren't living in the CMS. Also, that that view I kept showing with the structured content, while Wagtail has a version of that. Um I've never really seen anybody not be able to figure out the structure of a page in Django CMS. BikeTale is quite a bit simpler just in its overall user experience, which is a pro and a con. As far as I can tell, it's not quite as extensible. That's a little bit harder to kind of hammer it into a a larger user experience or you know a corporate experience. Our team tends to think of Django CMS as being one piece of a larger puzzle.
Speaker 1: Django CMS puts way more emphasis on types of things and the structure of things, which is really good if you're trying to build a system that empowers a lot of different types of interfaces or devices. or you're syndicating a lot of content. Wagtail does have a really solid API, but again, it's it's I I still sort of see it as a page-driven or or page-minded CMS. And then I think I mentioned Django C MS is really, really slick for front-end changes. You don't have, there's no wrong answer here. I think if you're working with a smaller team. And the site, you know, the site's not gonna balloon or they're gonna have lots of data, lots of other apps. Go bagtail. If you're looking at something that's a bit more enterprise.
Speaker 1: And your Django system is going to be powering a bunch of other applications and you just need a little bit of editing, Django CMS is really solid and getting better all the time They both are. But some of the some of the changes that are coming up in Django CMS make it has approval. Well, talk to my team. They'll be able to tell you more of the details. But there's some cool stuff coming up. And that's it. I apologize for the technical difficulties. I'm gonna break my computer over my knee. I think I do have a little bit of time for questions. So feel free to throw them out there. Or again, find me in the hallway or find my Lincoln Loop team. It's these three dudes in the front who shouldn't be here because they know this topic really well and should be giving this talk.
Speaker 1: Alongside me. It's like a team, like five people speaking at once. Um yeah, that's it. Thank you so much.
Speaker 2: Uh you mentioned you looked at a lot of uh commercial options uh kind of over the last few years. I'm curious What features do you see in the commercial options that you feel like we could do better with in the Django space?
Speaker 1: Yeah, so some of those, that's that's a great question. So the question was: uh what features have I seen in other solutions that uh we could do better with? I'd like to see Django CMS. The standard for user experience, amongst other tools, is now really, really high. So right out of the gate, like if you're comparing what any of the two tools we have to anything else, um That's gonna stand out. Like Wagtail is really great, but you know, workflow management and like strappy is a lot better. You know what I mean? Like the information is a lot more dense. There's I 've heard really good things about the design in general.
Speaker 1: So there's just some maturity with regards to user experience overall from a standard feature point of view. It's tough because this talk was more about managing content. I think a lot of the other features that I see are like developer experience, integration with like UI libraries and things like that. Like we we had some trouble with Django necessarily connecting very well with the front end where if you're on a JavaScript stack React and everything just kind of molds in the one and you get this this much more sensible integration. Um you can probably get up and running and building a site a little faster. Some of the features that I've seen in like Contentful, I think it's Contentful, and like Scrappy and some of the other tools is like being able to go in and as a user create your own content types.
Speaker 1: And letting somebody who knows a little bit more about data kind of manage the data a little bit more instead of being so heavily restricted to just like editing content. from from a client, you know, as a as a as a as an agency, I don't know that we've really hit too much of a problem with that, but I could see a larger content team wanting to structure things a little bit differently and not having to go to a development team to talk about that. And it's fine if you want to create like a bagel object or a food object or something stupid, you know, to just make more sense of your content, you should be able to do that without having to go create a Django model around it. So those are the few ones that jump out.
Speaker 3: Anyone else? No? So thank you, Mike. That's awesome.
Speaker 1: Thanks for letting me ramble.
Talk to the CMS users—especially content creators—and clarify their workflows, technology requirements, and the project’s terminology. Defining the nouns and verbs early helps prevent projects from going off track.
Discussed at 3:28Composable content means building pages from reusable blocks or components that editors can mix and match, rather than editing one large page. It gives editors layout flexibility, but it requires a well-planned design system and is harder to implement reliably than it first appears.
Discussed at 18:13Use page types when a page needs a controlled, rigid structure—for example, a highly designed homepage where editors should only change specific fields. This prevents editors from altering important layout or logic, though developers must make structural changes.
Discussed at 22:02Content is designed to tell a story, engage users, or drive actions, while data has a defined structure and may feed multiple applications or interfaces. Data changes can affect other parts of an organization or site, so it often requires more care and context than ordinary text and images.
Discussed at 25:55Media is complex because of file types, security, transformations, metadata, and external storage or delivery services. Django CMS and Wagtail provide useful media management and image cropping, but organizations with very large or sophisticated media libraries may need a dedicated digital asset manager.
Discussed at 29:50Wagtail is generally a feature-rich, page-focused, content-first platform with the stronger overall user experience, making it a good fit for smaller teams building content-heavy websites. Django CMS is more component- and structure-oriented, works well as one part of a larger Django system, and is a strong choice when the site has substantial data, multiple applications, or syndicated content; its front-end editing is also useful for quick changes.
Discussed at 33:43Commercial tools often have more mature user experiences, denser interfaces, stronger workflows, and smoother front-end integrations. They may also let knowledgeable users create and manage their own content types without requiring developers to create Django models.
Discussed at 37:18Note: 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 July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 15, 2026
Published July 14, 2026