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