← Back to Show Notes

Transcript: Learning Wagtail - Kalob Taulein

Hi welcome to another episode of Django Chat, a weekly podcast on the Django web

framework. I'm Carlton Gibson, joined as ever by Will Vinson. Hello Will, how are you?

I'm good, hi Carlton.

And today we're joined by Caleb Tallinn who's a big contributor on Wagtail. Hi Caleb,

thanks for coming on.

Hello, thank you for having me.

Both of us met you at DjangoCon 2019 for the first time and yeah you've got really

interesting backstory maybe you could just start off with how'd you get into programming and

then we'll talk about django wagtail and all the other hats you wear yeah okay cool uh yeah

definitely did meet both of you at django con that was fantastic by the way it was my first

django con so i uh got the real django experience and that was just community is a different level

when it comes to django yeah and it's intimate it's it's not that big a gathering you get you

do get a chance to meet almost everyone yeah and actually like you know be a person with someone

that's that's really nice uh so how i got into uh programming um yeah interesting story so like

20 ish years ago 1999 y2k ish when everyone was buying batteries and stocking up on canned goods

i had a class project i think i was like 10 years old and they were like make this website which

wasn't really making a website it was like clicking a gif and like dropping it onto this terrible

green background and i hated it it was like the worst thing i could possibly think of as like a

10 year old who just wanted to play outside i was like why would i ever want to be on a computer

and i think that often they made me do it yeah i know right and it's nice being outside especially

when you can't really be outside too often uh so they made me do that a few more times uh and

over time i just really grew to love it um and then i started like playing games and joining

guilds and they needed website work so i got into programming that way mostly php dare i say that

uh but yeah i got into it we all have our secrets yeah yeah we do uh so i got into it uh into

programming that way a long time ago before even wordpress um and i've just sort of stuck with it

throughout the years oh did i was gonna ask if you um if you went to university if you studied

computer science formally or if it was more something you completely self-taught oh i would

love to say i went to university absolutely did not nope self-taught all the way good for you

yeah yeah back in the day it was uh right click view source or file view source and you just read

your html and your css1 or css2 markup and you just sort of figured out how it worked by writing

it yourself yeah well i think at 1999 so high school for me that was before i think everyone

just uh stared at a computer all day long whether or not they knew how to use it um yep so even

though yeah i think we all sometimes feel like i just stare at a screen i mean at least we have

some control over it whereas if you think of i saw some study yesterday that like third you know

35 years of everyone's life is spent staring at screens now which is um wow that's that's

terrifying well if you think about it between your phone and your computer yeah wow yeah anyways so

um when did django and python come on the scene for you yeah uh okay uh sort of two questions in

there um so i was working with a startup in ireland about five ish years ago uh we wrote php

back then but we had a lot of data and i needed to crunch a lot of data and i was like well how

am i going to do this i keep running out of memory and i need a more efficient way turns out people

write this stuff and give it away for free using python so i was like hey let's check this out so

i got into python that way um and then django came into the scene about three and a half almost four

years ago uh where i was like well python's really nice to work with uh but can i make websites out

of it and so django popped into the scene when i started working with another agency uh and just

sort of fell in love with with django and uh and wagtail gone well you say wagtail like so straight

away wagtail that was yeah so i actually learned wagtail before i learned django right okay which

is definitely the backwards way to learn it but it's it's very very possible to do it that way

I think the thing I first knew you for was your learnwagtail.com site, which has all

these video tutorials.

Do you recommend that people just jump in with Wagtail if they're curious with sites

or how do you teach that today?

Maybe can you expand upon if you're going to start from scratch, if someone was interested

in both, because a lot of people do use Wagtail for agency work, what would be the recommended

learning path?

I would have to ask them what their goal is.

So if they really just need like a nice content management system with maintainable code and a nice editor experience, then yeah, definitely just jump straight in, learn Wagtail right away.

But if someone needs something bigger, like, you know, they're thinking of maybe creating like Instagram in the early days or I believe Disqus uses it, that commenting system.

If they want to create something big like that, I would say, yeah, definitely jump into Django first because your content management system is sort of just that layer on top of it.

it's it's interesting though that a lot of people actually what that's exactly what they need they

want to build a website and they need it to be slightly more than just static html files

it's it's interesting that you because the the default choice there is is wordpress right that's

the big elephant in the room is people just everyone just ends up on wordpress.org and

wordpress.com and you sign up and to what extent is wagtail these days as a sort of first entry

point for that person who doesn't necessarily already know python or django to what extent

is it that that option for beginning um i think uh this is very developer focused um

in a sense like if you were into marketing or you're trying to sell a product and you don't

really know how to code and you don't really have that much of interest maybe a little inclination

to code but you're not super interested in it wordpress is a great option for a lot of people

so it was like Squarespace and all these other uh these other content management systems uh but

Wagtail I think really shines with people who want more control uh and you know who don't just want

to install an SEO plugin that ironically makes their site slower exactly you know we I think

we've all been there is it still Yoast is that the one there there's a whole bunch of them but

yep yep yeah there's a whole bunch of them Yoast I think is still the brand name out there and

you know it's good does the job uh but it will never do the job that a developer can do when

a developer can actually get into the code it's sort of like washing your car versus getting a

mechanic to actually maintain your car yeah well i mean at the same time there is um i think this

is still the case with google with their like page speed or lighthouse whatever they call it now

if you follow their recommendations for uh putting the google analytics code like like they want it

they say put it in the footer versus the header or if you put it they want you to put it in the

header but if you put it in the header then it'll complain on like page speed you'll only get a 99

because it's not in the footer so there's yep anyways these ironies are inherent a little bit

to the tech space yeah definitely sorry so you were saying though so yeah so if you want beyond

the wordpress option as a developer is that where you would say like wagtail comes in yeah yeah for

sure um also like code maintainability when we start a website really when anybody starts a

website the idea is to like keep it small maybe i just want to blog and then all of a sudden it's

like i need a gallery and a contact form and then maybe it gets a little bit bigger and sort of

gets into more just jango-y things and then maybe it even expands that and gets into like python

based things where like you're encoding videos directly as soon as you upload them

so that whole chain to me is very related you've got wagtail and then django and then python or

the other way around you got python and then django and then wagtail uh really if you want

maintainable uh maintainable code base i would say yeah wagtail is the way to go otherwise you're

really looking at wordpress um drupal things like that there's tons of other content management

systems out there some of them are great and some of them are known for being less great it sounds

it sounds as if as if then the the wagtail target market is exactly the python target market

exactly the django target market it's those developers who want the perfectionists right

why is it that people use python instead of php it's not because you can't write anything in one

language or the other but python has a certain aesthetic to it which draws people away from php

and there's lots of people who you know don't feel that and so they they don't make that that move

they don't come away from it yeah you know you can build anything in drupal quite easily but

wagtail is going to have that that python aesthetic for you yeah yeah that's exactly

it yeah the the whole having python is just super friendly especially if you're going to

build a larger organization or a larger product and start hiring an engineering team like your

costs are just going to be lower because it's easier to maintain it's easier to write it's

easier to expand on there's a there's a number of large organizations using wagtail what are

the big ones that come to mind as the standard bearers of you can build a huge site with wagtail

Yeah, okay, so there's a lot of them these days. National Health Service. Yes, that's right. Yeah, so that's a really big one. NASA is using it. I've heard internally Apple is even using it as sort of their intranet. I don't have any proof on that one.

Google's been using it, tons and tons of large organizations, governments, municipalities are

using it. So I mean, that sort of gets on the more boring side of things, because it's sort of like

legally kind of municipality stuff. But still, that's a huge feat. Plus, there's all sorts of

other projects, like my projects are all Wagtail, obviously. Yeah. What is the flow for getting a

client to use wagtail because my my sense is a client probably hasn't heard of it and you know

so let's let's maybe let's transition to so you work with torchbox which is a large agency in the

uk that initially created torchbox uh wagtail i assume clients don't request wagtail like i guess

how does that negotiation go because i can obviously we the three of us can see how as a

developer you'd prefer using wagtail to wordpress these other systems but i imagine there's some

education that has to go on to the client because the client just wants a solution that works

that's a really poorly long worded question but do you see what i'm trying to get at like how does

yes so what would you say so most of the time but strangely not every time okay so i've actually had

a few clients be like we specifically want a wagtail site and i'm like interesting how did

you find out about exactly but like 99.5 of the time they're like hey we want a website we heard

about wordpress or drupal can you make that for us we're like well we have to insert some education

here so what exactly does the client need and a lot of the times the client doesn't need control

over all of their templates they don't want to have control over their design things like that

they just want to be able to enter content and have it show up nicely pretty much every single

time and it can automatically generate menus for you and all sorts of stuff because the developer

can go behind the scenes and automate all that stuff so usually there's that form of education

where we say hey client what exactly do you need they say oh actually we don't need

all this internal control we're happy to have a developer look at it or even if we don't we can

hire a developer to maintain it with on a contract or something like that yeah and so a lot of a lot

of times most times actually people are like okay that actually makes sense because you know the

site can be performant uh we have total control over everything and more often than not we can't

break it there's also the separation in wagtail too like in in wordpress you can literally do

everything like you can get in there and you can break your own code if you want to not really the

case with with word with wagtail or really any django site either is what an editor gets is what

they get they can't go and change the design they can't go and change their seo and they can't

install a bunch of extra plugins and that requires them to actually talk to a dev which means they're

likely to make a better decision and keep their site nice performance maintainable and keep their

customers happy or their users happy and so at the end of the day most clients are like that's what

we want we want to be serving our end user the best we possibly can i think the key point for

me there and what you said was that you can't break it it's really yeah because from a developer's

point of view a cms is always like a pair of handcuffs it's like ah why do i need this i just

you know create a template and do exactly what i want and i don't need to define this page model

and not go through all that because i can just create it but that doesn't scale out to a team

of people where you've got folks who aren't technically literate who can't get in there

and edit stuff without it falling apart and that's where the content management system comes in and

you know you need forms that are safe to enter data in and that appear nicely yeah yeah that's

that's exactly it is basically you've got these developers or a single developer behind the scenes

making sure that your site is always doing what it is supposed to do and it it can't break i've

actually had a client who was like hey my co-founder likes to break things and anytime

he touches something picked up his phone and his phone just like shut off it was like magic

and he was like i bet you can't make a website that he can't break and he hasn't been able to

break it yeah okay uh kudos to both uh people who work on django and people who work on wagtail

because it's so far unbreakable to the most breakable person i've worked with i'm just

thinking of past co-founders when you said that statement that's great well the the other thing

about wagtail is you know so wordpress you every time you log in as a non-technical person there's

another plugin that needs to be updated and you can and often do just go okay um so i guess that

gets that so what is there i know there isn't obviously the same size ecosystem for wagtail

that there is for wordpress but are third-party packages as big a deal or is it really just

all wrapped up within the wagtail itself space i would say third-party packages are a big deal

it's not this massive ecosystem like wordpress i don't think anything is that yeah um but yeah

there's there's a lot of third-party packages that really help you get more done um like if

you wanted to add captcha to like a contact form it's third-party package because it doesn't really

need to be in wagtail core the idea with wagtail core is we've got core and contributing packages

and we always want to keep a site nice and performant uh so like if you needed something

extra, you could just go and turn it on or

install a package. The Python ecosystem

and Django ecosystem, that's really, really easy

to do. So we

prefer to keep things nice and lean that way while sort of maintaining the the core aspect where

other people can build plugins and it's it's easy to basically say pip install whatever your plugin

is and add it to your installed apps and it just works and where do you where would one find these

i mean because i'm familiar there's an awesome wagtail repo is there a django package or is it

under django packages like where where would you find and get a look at third-party um packages for

for wagtail yeah uh two places so that awesome wagtail repo is probably the best place most

comprehensive lists i think i've stumbled on so far uh wagtail also has a newsletter called this

week in wagtail um so every week we send out a newsletter and make a new little page with

blog posts and packages and events that are coming up and things we've done to wagtail core and the

packages that the core team maintains um so that's the second place people can sign up for that

newsletter if they wanted to yeah yeah actually i'm remembering that i think wagtail 2.9 came out

recently because someone from wagtail emailed jeff triplett and me about our django news newsletter

saying hey we forgot to mention it to wagtail people but could you mention that 2.9 came out

which is yeah so yeah yeah unfortunately things like that still slip through the cracks we're

all human so yeah well what so so the so spring load which is a new zealand agency runs an awesome

wagtail repo um when we when um when tom dyson was on he talked a little bit about this but it's

it's basically torchbox and springload are the two main agencies contributing to wagtail or

how does that look from from a high level in terms of who's guiding the development because i know

there's quite a bunch of hands in there but there's a sense that those are the people kind

of in charge uh yeah uh okay so i'm not super familiar on this um definitely torchbox is leading

the developments for sure yeah uh i think springload might have moved on but uh springload

if you're listening i'm sorry if i'm wrong about that well that's yeah that's what i recall there

was like torchbox and you know uk and then there was this new zealand place and then there was sort

of a long tail of other stuff but yeah that may have changed yeah i think yeah i think springload

moved on again i could be wrong about that i think they moved uh possibly to drupal i hope i'm wrong

about that anyways and there's a swedish agency called fjord i'm really sorry i know i'm saying

that one um but they have been doing some really really amazing work with wagtail and open sourcing

all sorts of stuff it's been pretty nice yeah well and we should say so you now work for torchbox

right in addition to your educational content yeah yeah that's correct so how'd that come about

besides you having like i think the leading educational site for wagtail uh yeah i i think

it just really came about because of the leading site for for wagtail education um so i made this

learn wagtail site and uh one day tom was just like tom dyson uh from torchbox was like hey do

you want to join the wagtail core team and i was like what i didn't even know that was a thing

um so that happened and then just over time as i got more involved in the team he was like hey

by the way we've got some extra work if you want to maybe get involved and i was like i love wagtail

i love educating people on wagtail i get to work with people who invented wagtail this seems like

a no-brainer so over time i got involved that's cool carlton how did you you've got several core

titles in your bio how did how did it come about for you with with django and and rest framework

well rest well you're not technically with django i guess right or well there's no there is no core

team for django right that's involved yeah um but what's that process of being of being involved

and then you know the other time talk about rest framework because that's how i got into open

source was i was using rest framework in agency work built you know building mobile apps building

the back ends with django and using rest framework to build the api for the mobile apps that was

you know so early 2010s that was how i made my living you know doing that and one day on the

mate the google groups making this tom just posted a thing saying hey look i'm getting a bit

overwhelmed here with all the stack overflow answers or the mailing list answers or the github

and so i got onto stackover and i started answering questions just in my spare time

you know i did that for a little while and then you know on the google group answering questions

there and then somehow or just commenting on the odd issue on github and then tom said hey well

you know when you come in help me maintain um and i was like yeah okay cool super so i remember

clicking that you know a pr i'd been sort of helping to review and tom gave me the the commit

bit the access and he was like you press the button i was like oh the bomb the bomb first time

yeah yeah that was amazing um that was all a long time ago so i wanted to ask you caleb about um

maintaining wagtail and and in relation to django so you know we throw out a new version of django

every nine months so you know we're just um 2.2 is the current lts uh 3.0 is the current major

version 3.1's just hit alpha what's so first of all what's the state of support across that range

for wagtail and then how do you find keeping up and updating it and if i'm a user um can i expect

to be on the latest version of major version of django all the time or should i expect that i'd

have to hang back for the lts uh yeah okay all good questions um so uh our deployment time is

that the right word for it uh is not nine months we try to produce a new version every three-ish

months we try to stick that timeline obviously things come up and we can't quite get to it right

on time when you say a new version that's like a sort of new point release like of new features and

slightly yeah yeah new point release yeah so like uh 2.9 just came out so three months prior was

2.8 three months prior is 2.7 okay so what again what was it what makes the difference between 2.8

and 2.9 uh just features bug fixes contributions things like that we just want to make sure that

we're always working on it and getting the latest changes out there and because like it's a content

management system people are going to try to break it and sometimes people you know they find bugs

and they go oh by the way there's a security issue here and we go okay well this needs to be

addressed now um then other people will be like oh i wanted this new feature and i wrote a pr for

and we go oh cool but it doesn't really need to be in wagtail core right now so we'll merge it

and then we'll put out a new point release within the next three months and it'll be featured then

okay fantastic so you do that every three months and then jango's release that cadence is nine

months for a sort of major version and how does wagtail map onto that with its versions every

three months all right so it uh we do have some lts versions of wagtail and we do try to sort of

sync them up with django lts as well but for the most part whenever django has a new maybe not lts

version necessarily but whenever django has a new point release out and maybe it becomes a little

backwards incompatible for for wagtail we try to make sure that that's always up to date so when

jango 3.0 comes out we want to make sure that wagtail 2.9 can support jango 3 when jango

3.1 comes out we want to make sure that jango 2.9 or wagtail 2.9 and wagtail uh 2.10 will also

support that as well so we try to stay in sync with jango as much as possible because that's

great news because like my my sort of view is unless you've got specific reasons not to you

should be on the latest major version and you should commit to updating every nine months and

if i'm if i want to add wagtail to the mix i want to be able to update to the latest jango with

the latest wagtail and keep that keep that ball rolling yeah yeah definitely yeah so honestly for

my sites all i do is just pip install wagtail the latest version and because django is a requirement

it just automatically bumps my version of django as well and just as a one follow-up there do you

find it i mean how from a so we we're always trying to make sure that django is as backwardly

compatible as possible as easy to upgrade as it can be how from your perspective as a wagtail

maintainer how do you find that are we doing a good job there is it nice and smooth or

yeah yeah you're doing a really good job uh the hardest part for me uh has always been going from

django 1 to django 2 and it's not really like there's a lot of big changes in there it's like

some pathing changes or we use a different module or something so oh the urls not that big of a deal

yeah yeah yeah the urls that one always gets me too and i always forget about it so i'm like oh

type in stack overflow django to 2.0 urls sure enough there's 30 000 answers for it so find the

solution pretty quickly uh but other than that yeah no it's it's perfect updating there's let

me put it this way there's no reason to never be up to date with django in my opinion super

come on again yeah come on come on anytime um so i want to ask about uh deployment with wagtail

because i mean wordpress like i've been listening recently to um i think it's jason or josh cohen

who has wordpress engine which has like huge site just for wordpress deployments is there a similar

default in the wagtail space or how does that kind of look in practice yeah uh so there's nothing

like that right now um the uh fantastic engineers over at code red cms are working on something like

that uh it's currently in a alpha beta testy phase um so that's not out yet but i would keep an eye

out for that for sure otherwise most of us i think we default to just using heroku uh personally i

don't uh i'll spend the extra few minutes and set it up on like digital ocean or linode or ec2 or

something like that just because you're for the most part yeah heroku okay okay i think when when

tom was on i think he he mentioned heroku was his sort of default choice but um yeah yeah less

devops to have to deal with and you can spend more time writing application code yeah well

it seems like that space someone you know as wagtail grows it makes sense especially if it's

agency work where you can just build a client you know it's one less thing to worry about if

if there's a tightly coupled solution there yeah exactly as with django itself heroku is great but

it could be simpler so perhaps there'll be new deployment things in the future for for django

yeah i hope so that's one of the things that i actually really love about wordpress oh did i say

that um is like their famous five minute installation or whatever it is it's like you

click three buttons and it's up and running i absolutely love how that barrier to entry is

so low that literally anybody can get started with it and i hope one day that wagtail and django has

something like that as well where basically it's like start a new django 3 app and boom within a

minute it's up and running yeah i think we'll get there so one of the nice things about wagtail in

particular is it has built-in search with elastic search um which django does not my talk at django

con is actually on search um can you talk a little bit about how that works in practice i mean if

you've implemented something with elastic search like is that would you ever use anything else are

there features that you wish it had that it doesn't like how does what's the developer experience

integrating search on a wagtail site uh search i think is really really easy to implement um

with elastic search or really anything else that's that's supported uh it's really just setting it up

in your configuration and saying hey use elastic search and here's your config settings um it

doesn't use elastic search right out of the box so you do have to set that up um it uses just

regular database search i believe it's been a little while since i've touched that part of the

code but yeah i believe it just uses a regular like postgres database table search you're talking

when you say regular database table search you're just talking about i contains insensitive string

matching right whereas postgres has um full text search capabilities right and and so my

understanding you know i'm not an information retrieval expert but my understanding is that

the kind of information the search quality is just kind of equally as good because they all use the

same underlying algorithms and they're more or less equivalent but the the way where elastic

search shines is through higher ingest rates because you know it will just pull in the data

much quicker than postgres would but for a content management system that's probably not relevant

right how often you know you're not you're not adding articles or re-editing articles anything

like the frequency that indexing issues will become a problem so my sort of question is well

why not postgres full-text search why isn't that the default option because you know most people

this spin-off postgres instance they've already got that instance running and do you know why

i mean elastic why is elastic search the go-to option there rather than the the scale-up option

uh i think it's just really how the uh database is set up with all the different tables uh it can

just make search a little easier because like elastic search like you said just ingests data

so much faster and it's easier to search through all of that than rather rather than making a

database connection um postgres full i don't know full text search is the default but definitely

postgres regular search is the default um i actually don't know too much about that in terms

of uh postgres stuff um but elastic search honestly and this is just my opinion other

developers might feel differently about this but when it comes to using uh wagtail as a content

management system most sites don't need elastic search it's it's overkill i think that's just

engineers wanting to implement something cool there are some cases though where we have some

some wagtail sites where you know they have 100 or 200 or 300 000 pages they've got half a million

images that they want to search through to see like when uh they're copywriting uh the stock

rates sort of expire i've seen that happen so like someone will buy the the rights to a stock image

and they have to search through 500 000 images to see when that date is going to expire and so

that's where elastic search can really come in um and wagtail definitely scales up pretty nicely

uh i alone have a couple websites with about five thousand six thousand pages collectively

all on one database elastic search would probably be a good place to to put that but

i like writing application code um and so i sort of cheat and i just use algolia for the most part

yeah because i'll do all the indexing for me and it's yeah yeah so i'll just let them do all the

the heavy lifting for me instead of me having to maintain more code but as well we're hosting

instances like elastic search is great when you spin up one but immediately start complaining at

you that you need you know parallel redundancies and it's a bit of a pain to manage so again like

you know hosted db server or hosted this or always take it you know pay someone else to

run your elastic search cluster oh yeah

yeah, yeah, I've definitely done that with AWS and DigitalOcean. I'm like, I just want you to

take my money and make sure my database is fast. Just just let me do these queries that I shouldn't

be writing as a developer and make it make it fast. And they do. Yeah, well, I'm glad you say

that that that mimics the advice I gave at least in the talk and my my search tutorial around,

start with basic filtering query sets, then you can add if you need more, you can you can either

switch to Postgres, Postgres stuff. And then if you need more, you can add Algolia and then

elasticsearch is great if you need it but it is quite a step up in complexity and algolia really

the only issue is cost i mean i've used it a number of sites and it can get expensive but

it's great and it has all these wonderful like javascript auto completes and it's you know it's

basically like a with your mouse you can click and add the the boosts and um you know what is it

what's the, what's the phrase for like your white, uh, your white label words, or you can do,

you can kind of like make a custom dictionary of like common misspellings people make. There's a

phrase for that, but yeah, I'm a big fan of Algolius. I often would recommend it over elastic

search because you know, if you use elastic search, you probably really need it or you already know

it. I mean, we've had a couple of guests on who were just like, yeah, I did a prototype over a

weekend. Actually the, um, uh, Wenbin who did, um, listen notes.com and he's, it was just like

a search engine for podcasts and he's like yeah i just spun up elastic search and this and that

and we were like have you used elastic search before he's like oh yeah of course you know i

had all my notes so it's like no big deal but not a simple thing oh yeah yeah no big deal just

a cluster of elastic search engines not a big deal yeah um i want to ask you about creating

content because you yeah uh so maybe i'll start with so you have a couple courses on udemy

including your complete 2020 full-stack web developer course with 80 000 students enrolled

something like that yeah is that yeah uh so that's that's php is that is that an older course

that you keep up to date or how'd that come about and then we'll get to your your wagtail stuff

yeah uh so when did that come up seven eight years ago um i don't really know why i just

wanted to start teaching people web development yeah it's not a rational choice like one of those

genes and no it really isn't really isn't but it's just like one day i woke up and i was like

dang i want to teach people uh so i made this this huge full stack php course and like it still

covers things like raw ajax which a lot of people don't really even need to know because we've got

like the fetch api now yeah um it also teaches like jquery which is like super frowned upon so

like this course is definitely old and outdated and people still seem to love it well it says

2020 funny thing is though jquery still works you know jquery admin right the django admin i think

is still yeah well we're slowly slowly slowly teasing bits away but yeah i mean it's still

there and it'll be there for a while yeah i mean this you know they keep updating it we're doing

the same thing with wagtail yeah so unpopular opinion here um and i hope nobody or i hope

anybody who's listening to this uh doesn't hate me for saying this there's nothing wrong with

jQuery in my opinion. I agree. For most cases, it is exactly what someone needs. It's a drop-in

JavaScript library where you can do all of your DOM queries and add your event listeners and it

just works. You don't have to worry about transpiling React or JSX into vanilla JS that

supports IE11 or things like that. It just works. Yeah. So do you recall when you first created that

course and um was so that was a couple years ago that you first created that course did you i mean

did you call it 2020 back when you created it or can you update the title i'm just curious of sort

of oh yeah you can update the title okay okay yeah so i just added some extra stuff in there i think

uh what did i update uh i think i updated all the html content in there and i added uh tips on how

to get a job as a developer as you're learning um and things like that i added that this year so

gets the 2020 label on it yeah well that's good to have that i mean that's i've increasingly being

asked how do i get a job questions from people who've read my books and um i probably should

have a dedicated resource to point people to what do you say i mean well just out of interest what

do i say yeah well i usually say you should have three things you should have a couple open source

projects that you can point to so that people can see what code you've written if you want a job on

Django. That way the interviews will be about existing code rather than white board fun.

You should have a personal site. Really, I guess two things. You should have open source projects

and you should have a personal site documenting your journey, which gives people a sense that

you can communicate, that you can learn. I think people feel that they don't want to document

not knowing stuff. There's a sense of displaying your ignorance when it's really the opposite.

I think it's showing how you've progressed, things you've solved, and it really reinforces

the learning to teach it right i think you'd agree caleb like you don't really know something

until you can teach it to someone simply so it's really those two things is have a couple open

source oh the third thing would be contributing to django that's the third thing um i do make

one of the packages maybe or one of the packages yeah it's true so you know there's all these prs

out there if you if you do that it proves that you can work in a community it's some validation

and so if you have those three things to me if you have a couple open source projects

you have a personal site and you've done a pr on something django related that's top of the heap

i don't really care about formal background or this and that um but those are three things that

are not easy to do but i i think those are a better use of time than acing your whiteboard

tests now if you're going to work at a big company you probably do need to be aware that they'll have

whiteboard interview stuff which is going to be core python things but um you know i prefer talking

about real projects and architectural decisions, regardless of where someone is on their journey

as a developer, rather than, you know, pinging them straight manipulation off the top of their

head. What would you say, Carlton? Well, I'd agree. I think one thing you can say with your

open source project is it doesn't matter if it isn't, you know, 100%. What you should do is say,

you know, I did this on, I do this in my part time, you know, I get a little bit of time to

work on this every so often. And just to be straight up about how much, how much person

power you're able to put into it because then that shows somebody you don't you don't have to

be embarrassed about it because yeah i mean it's only two hours a week i get to do this but you do

that two hours a week for six months and all of a sudden it's quite it's actually quite good

and hey it's only a couple of hours a week and look at it it's brilliant and it totally changes

the dynamic yeah yeah i mean the fourth thing would be if you just go and answer on stack

overflow the Django forum go to a conference you know just put your hand up again regardless of the

level that you're at that will really get you on people's radar and it's a very as we've talked

about a very inclusive community I don't you know it's not a I don't know impressed you know I'm

more people aren't what am I trying to say people don't care where you are in your journey as a

developer um in fact it's even actually I'd say more interesting someone who's starting out rather

than established to kind of hear what where they're at yeah and i think the sort of flip

side of you know saying how much you can give is that if you have only got an hour two hours

if you can just give that and do it for a period of time it does add up to enough and people people

worry that oh i'm not able to you know because of whatever reason you know i got four kids i

personally i've got four kids i can't do more than a couple of hours like it just it just doesn't

exist um but you just got to keep going at that and then you know it's that's what i'd say same

as you well so what would be the wagtail version of that caleb someone when people ask if someone

asked you for wagtail specifically i want to get a job as you know at an agency or something what

would be your advice uh so definitely everything uh both of you guys have mentioned uh for sure

all of that is top of the list i would also add try to expand your network uh the reason i say

that is because i'm thinking about this from a business perspective so if you were running a

business and you asked all your employees hey does anyone know anyone that could fit this particular

position and they go kind of but no not really not anyone i can vouch for then they have to go

and look for quote unquote a stranger to the company yeah and that's a risk right strangers

are always a risk it's it's a risk to like our personal lives it's a risk to pretty much

everything because you don't know what that person's going to be like yeah chances are

the person's going to be a great person because most people are but from a business perspective

like you still have to realize that you don't know this person uh onboarding is very very expensive

yeah and you want to make sure this person's going to stay around for as long as possible

so that they can it sounds very businessy but they can uh increase their return on their investment

and so i always say like if you know someone on the inside that person can at least say hey i know

this person i might not be able to vouch for them but i know this person i know they can write

django or wagtail code and you know i have some form of a relationship so you have that little

extra step on the inside at least so is that like go to a meetup or join a you know slack group or

you know these kind of yep that's exactly it yeah uh so you know prior to these last few months i

would have said yeah definitely go to meetups and just hang out with people be friends with them

don't have an agenda or anything just like you know ask people about the the knowledge that

they've acquired about django or wagtail or python and just have an interesting conversation uh and

again don't try to get anything out of them because humans are really good at picking up on

that yeah i was so i'm i just googled how to get hired as a django developer and i actually wrote

a post on this in january that popped up so maybe that's just because that's how i would phrase it

but it also shows how brain dead i am but i'm glad that we hit the five points i had is open

source you work have a personal site go to meetups four is contribute to django and five is

believe in yourself hashtag like contribute on the forum and google group so it's amazing

how you can you know it's like walking and talking half brain dead i should put that on

the learn django site but sorry yes carlton well i was just going to say like um what is the what

does the wagtail version of that look like the wagtail community is that is it do you hang it

is there a slack channel is there a oh yeah is there a forum is there oh yeah like if i want to

get involved in the way we used we used to have uh google forums or whatever that is i came in

after that uh now it's all slack so wagtail.io slash slack will bring you to the right url where

you can just hop on slack and have conversations with people ask for help ask really any sort of

questions maybe bring up an idea for a feature anything like that that's great well well django

has switched or has added recently there's a forum.djangoproject.com which is a discourse

hosted site which uh to me actually i prefer that format to to slack because i find slack hard to

search uh but it's and i'm constantly referring people there but it hasn't really taken off yet

even though there's all sorts of heavy hitters on there um so that's great if there's a active

slack wagtail community though so it doesn't really matter what the platform is as long as

everyone agrees to show up there i mean i know like reddit there's a huge django reddit group

um that i am not a part of but there's a lot of action there too so django is kind of all over

the place i don't know if you'd agree with that carlton there's sort of like the the you know

that i don't know that what used to be core hangs out in one place and then the broader discussion

happens all over the place yeah i don't i don't hang out on the reddit thing i've always avoided

reddit for fear of my productivity slipping dramatically um but same here but i do like

the forum i try i try and check in on the forum and the mailing list as well the forum's more

old school it's like you can it's not as it's more async i guess i would which is nice there's

a discord uh sorry go ahead i guess i struggle with slacks in that if you i always feel with

slack that if you're not there at the moment the conversation happens you've missed it i never know

how to catch up with slack so it's a problem it's like it's like a never-ending meeting without an

agenda that's how i've heard slack discussed that's a good way to describe it yeah yeah i

honestly there's so much conversation in there uh i used to be a part of 11 different uh company

slacks and different groups and stuff i cut that down to five and now i'm only active in three of

them uh and even then i don't like go and scan every single channel in there just whenever i

get like at caleb'd or something i'll be like oh okay i'll check the thread yeah um so you do a lot

of video content i want to ask how is that for you like how do you what's your workflow now that

you've been doing it for a while how do you how do you keep things up to date you know because you

have i mean the learn wagtail site the wagtail keeps progressing like what so i guess a twofer

how do you find creating video content as opposed to text which i'm more familiar with and then

how do you do updates uh yeah okay good questions uh video content versus text um really if you

write a good blog post you can really just like record yourself going through your own tutorial

and boom you got a video this is what people tell me i should do like don't you know don't

create new stuff just talk through your existing stuff i refuse to take that advice yeah patrick

stewart doing shakespeare's sonnets during the confinement right yeah you could just sit down

with a glass of glass of wine or something like that and read your blog posts me and sir patrick

it's uh it's pretty impressive though how much content one person can create and then like if

it's a blog post you can just turn it into a video if it's a video you can turn it into a blog post

and how like even just having that extra piece of content somewhere on the internet that points to

the original one is really helpful in sort of funneling more people towards your content yeah

yeah i mean there's there's literally youtube channels with people walking through

parts of my book that have you know six-figure traffic and i'm like huh that's but but you know

the part i struggle with is the updates like because maybe whack has more stats hard i mean

django is just i spend so much time just updating my books like that's what i'm doing this week

it's not even a major release there's just one thing or another changes um and i don't that's

what i wonder like is it possible to do up-to-date video stuff for a framework uh i mean i think there

is but i i haven't cracked that nut that's kind of why i pose it to you um or maybe you just sort

of say like you know this is pinned to this major release and you're kind of disciplined on you know

i'll revisit it you know a certain schedule but i'm not gonna drive myself crazy the way i do

keeping things up to date yeah keeping things up to date in video format is really hard uh depending

on your platform though, like Udemy or Skillshare or any of these education-based

websites, you can just replace an entire video, just like what Vimeo lets you do.

So you don't change your URL, you can just upload a new video. So updating that content is...

pretty easy there the the big problem uh is youtube actually because you can't just go and

upload a new video yeah you can only you do that right change the title in the description but

nothing else yeah and that gets really hard to update so usually in my videos you'd be like oh

i'm using wagtail 2.7 or django 2.1 and even if it does get a little bit old there's still going

to be people using wagtail 2.7 or django 2.1 or there's still a lot of people using django 1.8

yeah and so even if you just tell them that you're you're likely to actually help someone out in that

regard because they're maybe a little behind or they're trying to upgrade and they're stuck on

something that's your video or your blog post or anything your book could help them with and then

i just create new content on top of that so like if search got an overhaul in wagtail i would just

make a new video on how search now works well excuse me for the ignorance but so learn wagtail

is is it um how do you pay for stuff or is it still all free uh so there's two parts there's

a premium course there's a a beginner friendly learn wagtail course on that yeah uh which people

can pay for it's a one-time payment no subscription needed okay uh and then there's also all the the

free videos the original learn wagtail content which has i don't know 60 or 65 videos that's

when i saw it it was like all maybe that's back at jangle con it was like almost all free and i

was like wow that's amazing yep okay sorry yeah yeah so i produced a new premium course um the

idea behind that was to uh just sort of get more uh income based on that so i can spend more time

making the free videos yeah um and that's actually turned out pretty well uh i would definitely say

you know if you can give that a shot trial uh trial it of course i mean it always depends on

your audience and what people are willing to pay for and what kind of knowledge they're seeking

and things like that but i personally like giving things away for free as much as i possibly can

just i like to overwhelm the end user with too much value is how i think about it so you have

your your free tutorials then you have this wide deal for beginners course and then what's the

what's the advanced course i don't actually see it on your site but i'm not looking maybe in the

right place yeah there no it's not on there yet there's no advanced course yet i've got it all

planned out i got the curriculum and everything uh i just haven't got around to recording it

fair enough so the finite tune of human powers

yeah exactly exactly if if i had the ability to work longer without burning out i would

yeah well i think i i think there is there is a benefit to having a sequential progressive

flow to things even if there's kind of repeat of content because probably like you on some

level i'm like i've already kind of covered a lot of this stuff in one way or another

but still there's a value to just going like do this do this do this do this do this

and you know just it saves people time you just kind of go boom i'm gonna hold your hand and walk

you through through this in a progressive way as opposed to just searching around and you know

airdropping in solving something but not really getting that bigger context yeah uh so the way i

grew up uh learning how to code was like you learn from trial and error you see someone's code you

paste it into your your editor or whatever you're using and then you edit that code and see what

works and what doesn't yeah these days that's not the case anymore uh people want to see exactly how

to do things they want to feel more comfortable from a to z and then they'll go and experiment

afterwards that's interesting but you still but people still probably find you how do people find

you initially is it youtube or do they go directly to this to this learn wagtail site and find a

video how do you think what's that funnel look like yeah uh that's a really good question i don't

have an answer to uh just because i'm on so many places on the internet now like i've got a facebook

group with like 40 i think we just broke 49 000 members called learning to code and people just

show up from facebook in there and then they go to one of the courses or they find a video on

youtube that i linked to at 1.2 years ago or something so it's sort of this this big cluster

of all these different um these different streams that people are coming in from and i actually

don't really know the best one because i don't get like all the metrics from facebook or i don't have

all the metrics from youtube or udemy i have a slight idea uh but without the the formal knowledge

and the whole data set for all of them i don't know in my opinion it's impossible to tell it's

how long have you been working on it would you say over the in total because like what sounds

like you've got is that critical mass of content where it starts to just feed off itself it has a

kind of organic life you know you're saying oh i posted this link to a youtube video on facebook

group two years ago and then i've clicked that and that leads in here that kind of critical mass

you can't build that in a day you how so how how long would you say that process has been yeah oh

uh the length of that process is a long time uh it started like seven or eight years ago um i did

take a couple years off of teaching because i got a little burnt out from it um now that i got my

process down um i can produce 10 to 30 high quality videos a week oh wow a week yeah it's

yeah a week and they're not super long they're not like hour-long workshops rest of it well

youtube will caption it yeah youtube will caption it uh udemy will try to caption it i do go through

the udemy ones though because there have been some pretty bad ones that could have gotten me

in trouble that i'm very happy i caught uh just for whatever reason it thinks that you say one

thing when clearly you did not yeah um i try to do that but honestly for the most part captions

get left behind unless it's a bigger more important course um but if it's like a small course like

how to make a calculator with uh html css and javascript i'm not going to caption that because

it's only like 62 minutes. Adding text. I mean, so on, on this podcast, we've, we've added the

transcripts, um, which helps mainly for search actually, uh, which makes sense because if you

type something related into, into Google, it isn't as good at knowing the audio content. Um,

so it's helpful for search the video. I know, I mean, there was an argument I heard made back

when Google bought YouTube that just the data and being able to improve its own algorithms for,

on the content was worth it for google way back when and if you think about how much content they

have on there they can just process it's they should have pretty good algorithms yeah uh so

i've done a little bit of video encoding transcoding kind of stuff uh before and i'm

pretty certain that i don't think they can do it like real time because there's just so much

youtube content but i'm pretty certain that once your video hits a certain number of views or gets

a certain number of interactions that they go okay we're going to process that content and

then we're going to actually throw that into how we perform our search behind the scenes

makes sense yeah well we're we're close to time uh anything else you want to mention or what you

know what uh what future content can people expect from you i mean you're so prolific

oh future content hmm i would love to give you an answer i don't really know

i've just been sort of making it as it comes up uh i monitor like my my

giant facebook group uh so i monitor that for common questions and ways that i can help people

so you know if someone or i guess not someone but if like 50 people in the span of a week are

asking like how do i get started with coding i i don't know literally anything about coding yeah

okay well that's probably a good idea to make a video or write a blog post or something

related to that subject so i sort of have a little finger on the pulse there

and that can change from week to week too that's probably not the greatest way to do it i know

other people they'll they'll structure out like their next five months of courses yeah or content

and they'll just like stick to it but uh i just don't have that kind of focus well and can i ask

what's the or how does the mix between uh contracting and content creation work for you

like how do you do you keep that at a standard level does that you know wax and wane it waxes

and wanes quite a bit um it also it depends on how much work there is in in contracting but it

also depends on like how amped up i am or how fired up i am about certain content because sometimes

you'll make content like about jango stuff and if you're passionate about it that's all you want to

do is you just like you're like i'm just gonna finish this book i'm gonna put everything else

on hold i'm gonna finish this book and then the client starts knocking says where are you and you

go ah there's five hours left in my day okay i'll power through that real quick just you're just

throwing fuel on the burnout fire yeah yeah no so yeah it's come out a few times so let me ask you

that how do you manage energy levels how do you detect the symptoms of burnouts how do you how do

you kind of keep going because it's not it's not this week it's not this month it's an ongoing

process right yeah um oh burnout is i'm pretty open about burnout i've made a few videos about

uh burnout and how to deal with it and imposter syndrome and things like that so i think it's

different for most people but there are some common symptoms when it comes to burnout uh so

imposter syndrome always flares up for whatever reason like two weeks before i start to burn out

my brain just says i don't know anything about wagtail why am i on the core team like just gets

like super negative right like i forget this one import from django and i'm like what am i even

doing here i'm like oh no that's probably because i'm burning out uh for energy levels uh i really

hope that they'll throw us some money for this but red bull is a great way uh to right but

give it 10 or 20 years like me and carlton yeah it's red bull sustainable is my question there

because okay yeah i see that in that that hour the red bull helps and for the next two or three

it's it's doing its job but then is there not a cost the next day or the next week or the next

month for pushing to that limit there is definitely a cost so for me uh it's great for about three or

four hours and then after that it's just terrible my eyes hurt my brain hurts my muscles hurt i'm

like is this worth the four hours and it's sort of my my go-to like i don't have the energy today

because i've been working on this content for the last two weeks yeah i just need a quick little

pick-me-up and every time i regret it it's just but when you when you're so bad the other sort of

so let's say you're you're pushing yourself on because you've got some content to finish a book

to finish or client work to finish do you recuperate do you give yourself a recuperation

period afterwards or something like that you know the the book's finished i really really try to um

i try to reward myself for all the work that i do even if it's just like something dumb like you

make a list of five things you got to do for a client and they're all small things today it only

takes an hour make that list check it off pat yourself on the back say i did a good job right

that seems to help me with with burnout quite a bit um having hobbies that you love very very

important i for a long time in my life i i didn't really believe in like the whole work-life balance

i was like just work what's why do you need a balance right and now that i'm getting older i'm

like it is so important uh so i have uh an indoor garden um and i do a bunch of hydroponic stuff

so that's a nice little hobby for me i literally get nothing out of it i just get to care for

plants and that's that's what keeps me going i love doing things like that super yeah well i i'm

going to mention i just recently saw it uh so jason cohen of wp engine the wordpress hosting

he had a talk i really liked on talking about his burnout and he talked about the venn diagram of

wants skills and needs and if you find yourself repeatedly in the skills and needs or it needs

to get done and you have the skills to do it but you don't want to do it that you know so you have

this excess sense of agency about like only i can do something or other like i couldn't possibly

have someone else you know handle it that kind of exacerbates burnout and you're really just

completely wrong about it um so i found that helpful but yeah your point about hobbies is

great i mean i found out about you carlton as i as i age the hard thing is that it's hard to have

100 like relaxation recuperation time because there are other demands on our life whereas when

when i was younger i could just take a day off you know on a sunday or something but what my

sunday looks like in the absence of work is if anything more mentally and physically draining

than sitting at my computer and coding or creating content so there's i find that a little bit of the

the challenge yeah yeah so i face that exact same challenge i honestly don't really have a good

answer for how to deal with that i think we all sort of have our own ways like if you have family

and you love spending time with your kids i would say just spend more time with your kids

if you just need to veg out in front of netflix for a few hours and that makes you feel relaxed

or you need to go see some friends you know got to do what you got to do to get away from the

the computer drop the screen time and just be a human for a little bit well there's you know

they're supervising your kids online school and then there's sitting and watching shira with them

like speaking of what i did this morning before we recorded this so i did both those things

well you did their school work while they watched shira well no we t up my my first grader has like

an hour of um of videos and exercises she's got her online math game she's got uh youtube videos

of reading stuff um but you know so anyway so when i'm supervising that it's maybe not peak

relaxing parenting time along with two other kids um but when we're just sitting around watching

shira like you know that's a little more you don't you don't watch shira carlton i used to

watch shira but um they're more into uh what do they like at the moment they don't even know that

he-man is a thing which is great yeah no they don't they're watching some star wars clone wars

series it's like seven oh there's so many of those there's so many of those oh clone wars

they're loving that so you know half an hour sat down watch an episode that yeah feed up lovely

oh how do they only watch half an hour of it i turned it on i was like i'm gonna watch this

entire season yeah yeah we don't let them do that yeah yeah kids would that's healthy okay

thank you everyone for listening um caleb how can people get in touch or where would you direct

people obviously learn wagtail.com um other other ways if people have questions around your content

or wagtail yeah uh learnwagtail.com if you're interested in learning wagtail um i've got

another sort of website that i half maintain but looks pretty nice codingforeverybody.com

you can contact me through there or just through standard twitter at caleb tolleen um or if you

want to join a facebook group and you know either help people learn how to code or ask questions

about coding this facebook group called learning to code it's got almost 50 000 members in it and

i'm very active in there as the only admin wow good for you speaking of burnout yeah yeah okay

everyone thanks for listening we'll see you all next week join us next time thanks for having me