Transcript: Wagtail, React, & Gatsby - Dawn Wages
Hi, welcome to Django Chats, Fortnite Podcast on the Django Web Framework.
I'm Carlton Gibson, joined as ever by Will Vincent.
Hello, Will.
Hi, Carlton.
Hello.
And today we've got Dawn Wages with us.
Hello, Dawn.
Thank you for coming on the show.
Hi.
I just wanted to say, am I the first person to make the Fresh Prince of Bel Air reference here?
Oh, yeah, on this show.
I mean, I haven't heard that since I've got to be a little bit more.
Okay, good.
I mean, I'm sitting in Philadelphia talking to Will and Carlton.
I had to make it.
This Philadelphia board about that.
Well, welcome.
We're very excited to talk to you about a number of things.
Um, Wagtail, React, Django, Django Girls, your own journey.
Uh, so maybe we can start with just briefly about yourself and how you got into programming and Django in particular.
Yeah, sure.
Okay.
So I started out with a business degree and thought I was going to go into business analytics uh after I graduated from North Carolina.
After I graduated, I came up to Philly and got involved with the Philly Python Users Group.
This is also after a failed attempt at going into finance.
Uh really glad I didn't make that work.
Um so the Philly Python Users Group was great.
Also happened to be that year DjangoCon was in Philadelphia.
Um, and I attended Django Girls, but not much else of the conference, but just really got like a a a great energy.
I was hanging out in Wharton um and uh Tim Allen was just one of the main people leading the group and is the you know also is a uh part of the entertainment committee or uh so he's he's great.
He's just a let's go find some good food.
Um so it was really, really nice, welcoming community, and I just kept going back, and so I've been to uh 16, 17, 18, 19, and 20.
Um and um yeah, and so then since then I've been really getting um in I I consider myself community taught, and so I can speak more about my consulting journey as well.
Um, but it took me a couple of years to get started and get paid uh to be a Django developer, and then took uh another year or so still before I could do it full-time.
Okay, but it's d I mean so you're s you're kind of self-taught as a programmer, right?
Yeah, yeah.
So you come from a business background and yeah.
I've never um uh I do not have a computer science degree.
Um, and I did a boot camp in JavaScript that I have complicated feelings about boot camps myself, but I don't really talk about it much because I have complicated feelings about them myself.
Um yeah, uh yeah, I'm self-taught.
Yeah, cool.
I mean could it's something we always like to pick up because some people go through the CS route and then you know I didn't do I did philosophy and then it's like right, I'm gonna learn programming.
It's like, you know, I'm just working out the basics, and people are like, you've you've got you've got to learn algorithms.
Yes, exactly.
Yes, yes.
Um we and I don't know if this will be full circle, but I also have um uh I'm I've gotten to the place where I I started learning and I was very pragmatic about the the things that I would learn.
I love Django because you're uh uh the documentation's great.
Um getting started is really easy.
I would like to say that being becoming an intermediate Django knot is a little difficult.
And so more resources are coming out literally every day.
Um so it's really, really awesome to see it's such a buzzing community.
Um and then um so it's just I wanted to be able to make money very quickly.
Um, I mean I I did not come with a safety net.
I do not have a nest egg or a family with a with a with a basement for me to just code in passionately.
So um that was really helpful.
Um, and I was able to feel like really impactful and build something really quick.
And that's also something designed by the Django Girls um tutorial.
So I kind of modeled that.
And then I've gotten circles, went back around.
I'm part of uh Trey uh Trey Gunner's uh um uh Python tricks uh or oh uh Python bytes.
Morsels I've
been great.
Yes, Python morsels want to plug it right because it is very, very good.
I really like their emails.
Um and I've been doing some more Python things and some JavaScript uh tricks and things like that, trying to get, you know, into the deep end.
It's fun.
Yeah, for sure.
Well, I think one of the things I think about is that Django is you need a little bit of Python, but I find myself doing very little actual Python when I'm doing Django.
So having something like Trays Resource or others, it's it's a sort of a small amount of Python that I actually use.
Um so I often find resources to sharpen up my Python because I feel like I don't use raw Python that much actually, unless I'm dealing with big data sets or doing something separate from Django itself.
100%.
I mean, I've I've heard from other people and I I agree as I'm learning what Pythonic means that Django is written incredibly Pythonically.
Um and I I really appreciate that.
And you know, I'd love to entertain conversations about it too.
Um and then um yeah, when I first was applying, I would say, yeah, well, I'm not I don't know if I'm a Python dev, I am a Django dev.
Um and I've gotten a little bit more confident in that too.
Just also with the ability to learn and just to navigate those kind of conversations, knowing what I don't know and being comfortable saying that I don't know something, um, truly makes people more confident in when I can say I do know something.
A little bit of an evolution, trying to grow.
For me, that that that's the journey though, right?
Like, you know, why program?
Well, because every day there's like a new experience, a new thing.
It's you know the exact opposite of standing on a production line.
Yeah, I mean that's the fun part.
Making things, building things, watching it work.
Um, I had a friend who wants to go into algorithms, and I'm like, that doesn't sound like fun.
Are you gonna do dataviz too?
No, I'm like, oh, that doesn't sound fun.
So I I I I agree, that definitely scratches the itch for me.
Can you talk about so was Django your first web framework that you dove into?
Yeah, it was.
Uh if we really want to be specific, I started coding with MySpace.
Um, but I I came back around and after they said Jake, we gotta stop use I started learning jQuery when it came out, and then we had to stop using it by the time I I mean it's everywhere still, but yes, that's where my circle was.
You just about get the hang of it, and then everyone's like, no, no, no,
no, that's not here for you, right?
So well I I was gonna I was gonna ask because so Django is my first web framework, and it was only when I was on my third or fourth different framework that I started to have a s a big picture sense of how frameworks work.
And so a lot of my personal difficulty with Django was just learning how web stuff works.
And so I assigned it to Django initially, and now I sort of realize you know, Django can only do so much, but you sort of need to come at it from a bunch of different angles before you can just have a big picture view of what you need for a website and then what a web framework can do.
So I wonder if that was a similar journey for you.
It was interesting.
I didn't really even understand what like the server was or like how it I mean the Django girls will go through it and they've also expanded some of their documentation, but I I didn't understand uh what like Gunicorn or Nginx would do and like how that all kind of worked and what is Redis and how, and so I did feel like I was learning almost backwards, like what does this package do in Django versus like here is this area of web
development or um you know web engineering, and like now fill in backwards with tools that may cover some of those areas for you.
Yeah, totally.
I totally I agree with that.
Well, I think the way you learned is the way most people learn.
I mean, because part of it, I think about this as a as an educator is you know, any one of us could tell someone, okay, here's how web service works, and list, you know, G Unicorn and all sorts of phrases.
But I feel like unless someone has struggled and gotten stuck, that's all just gonna go in one ear and out the other.
So I always try to wonder, you know, show and tell, how do you balance, you know, at the one hand you want people to actually be able to build something, but if you hit them with everything, it's just gonna overwhelm them.
I mean, even Nginx, like Carlton's pretty pro at that.
I have a very, very basic knowledge of Nginx because usually I'm using a uh platform as a service, and I've I've done it a couple times, it was fun, but I just you know I could figure it out, I guess, but I certainly don't do it all the time.
In a way, it's but it's kind of backwards.
It's like the the we're we're solving the web problem.
Well, Nginx is the web server, or Apache, you know, is the web server.
And then Django's a kind of plug-in for that, but we don't learn it that way.
We land Django, and then we're like, oh, and I need to, you know, do and we so we try and do all these things in Django, which maybe the web server's better at.
But we don't like you know, how how do you how do you learn this other than time on the coal face?
You know, this is familiarity.
Yes, it's true.
What was that phrase?
Time on the coal face?
Yeah, like so you're at the you're at the the fo the face, the face in the mine where you dig dig the coal and you get the coal face.
Okay.
It's a it's a mining reference.
Okay.
All right.
Um, well, maybe we can dive into um I'll just pick one of the things we want to talk about.
Um so React.
So you have some talks and you've you've done a bunch with Django and React.
Can you talk about how well maybe talk about React?
Where is React at these days?
Because as a non-JavaScript person, you know, there's Vue, there's Angular.
What is your sense of you know, React?
They're still dealing with hooks.
Yes, like what's the state of React?
Yes.
So I would not be the definitive source.
Um, I would direct you to the mini, the many, many podcasts that are already going, um, that are can like can continuing all the time.
I learned a lot from those.
Um, and I try to stay more uh solidified in the Django community, and I like to be a JavaScript person for uh for Python people.
One of my friends, uh Jean Underleigh, is uh releasing a series um called JavaScript for Python Developers.
Um I think it's in um the beta phase right now, but he is accepting emails and newsletters, and he's really, really bright and um one of the people who really brought me in to Django in in a very formal mentorship way as well.
Um but back to React um and and the things that I do.
Um I enjoy it.
It does seem like the community and what is the best practice in the newest waves um change very, very frequently.
But I do think that hooks are really fun um and it's more declarative um and easy to um easier to understand what's happening.
And when I switch back and forth between them, because I'll do it within the day, I try to I may do it within the day, um it's whether or not I'm thinking in the mind space of Django models or truly in a stateful component.
And when I think about like how there are people going through a user journey that are going to experience several states in a row, and is this going to go step one, step two, step three?
Maybe not even that cleanly, but if I kind of put my mind in like a linear path or like a journey, then I can get my brain into the mode of working and React, which is very different when you're doing um Django.
It's very focused on the models and the information you're serving or the information you're capturing, what are you gonna do with that and then transpose it and move it somewhere else?
Um so yeah, it's a little bit of a a mind doing.
Well, that that's you, Carlton, right?
You're doing that with Swift these days for your button project.
Yeah, I mean, uh it's the same problem, right?
So if you've got a back end which is Django powered and you're you're consuming it with a a rich JavaScript client like React, with React based or you know, some a native app, bit Swift or something else, then this the the app has state where the web server where the Django app kind of doesn't, right?
It's it's a series of totally disconnected requests to the to the Django app, but then you've got to string them together exactly as you say in this jerk user journey or something.
What I wanted to ask you about, Dorm is like you every month it seems that comes up on Django developers, can we have a better story for front-end integration in Django?
And every month we struggle with, well, you know, well, what would that integration look like?
Because we've got contrib static files and collect static, and that gets it all in the right place.
But you're working there every day.
Um how do you deal with the integration with Django and React?
Yeah, so um I wrestle with it myself.
So most of the projects, so I am working with it every day, but I don't know if I'm setting up projects myself every day.
So um I can also speak a little bit more to my consulting journey as well.
Um, so I really enjoy being uh in the team augmentation role.
Um, I do work on some proof of concept sometimes, um, solo.
I have um deployed solid um Django and you know um normal fluff JavaScript um HTML CSS on the front end um myself and I do that with um Rugby Street Consulting.
Um but I also spent a lot of time with T Rock Software, a consulting agency in in um in the Chapel Hill area.
Really awesome humans.
Um and I met them through a very similar story of being community taught, and I met them through through the Django sphere.
Um so I mean I don't know if I would really find a co uh find a I could suggest or explain a solution that really works best for me.
I'm I'm looking to continue to refine and then create a boilerplate code code for myself, um, and I find some out in the sphere, but it it feels so proprietary these days in that it's not uh everyone has a little bit different flavor and no one if it's no one knows if they're doing it right, and everyone's too scared to say that they're doing what they're doing exactly.
Sort of.
That's exactly it.
I was gonna say, I think also as a consultant, you often join projects midway, so you don't have the luxury or the burden of setting it up from scratch, and um most people don't, actually.
I know Carlton and I often talk about a greenfield project, but that's not the reality for most programmers.
But yes, Gatsky, I uh Gatsby, I know you've um your personal site is written in that and you have a a talk on it or two talks on it.
Um full circle though, it's so Gatsby is um so it's like a static site generator plus.
So you're writing it in React, it distills down and then rehydrates into a progressive web app.
It still is a has a lot of the progressive feelings and stateful components and whatnot when you're doing it right now.
I'm not quite an expert in Gatsby, but um I do see a similarity in the Wagtail community and in the Gatsby community.
Um it is very, very developer focused, it's focused on the developer experience and does the kind of the plug-in architecture, very accessibility forward.
Um uh Wagtail um frequently has uh accessibility sprints, um, and there's a Wagtail accessibility um package out there um um available if you're if people are interested in um accessibility in their in their frameworks.
Um and so that is one of the ways in um experimenting with that um stack uh has been really interesting.
It comes with GraphQL, um, and so then you're using uh Django Rust framework with GraphQL on top, and it does feel like there's two engines in a car.
Um but um it it is cool how GraphQL will just kind of catch things for you.
You you describe what you want and then it'll say, here it is, um, sort of.
Uh and I say sort of so often because that's you know syntactical sugar.
Well we say it depends for us.
Yeah, it depends on it.
Yeah.
Right.
So we should cut into Wagtail there, because you're you're in the core core team now, uh, for Wagtail, right?
Yeah, yeah.
Part of the Wagtail community.
So how did you tell tell us how you got involved and how how that how that came to be?
Okay, great.
Uh so uh two 2018, well Tom is truly just one of the nicest people on the planet.
Anywhere he goes, I I think he makes friends.
So uh d Tom Dyson in 2017 was giving a talk at DjangoCon, a tutorial, I think, and I did that.
Um I you know interacted with him through several um events and then uh gave a talk at uh Django Space in Philadelphia.
Uh it was my first talk ever.
Um, so that was exciting.
And it was very cute.
I did um I described the landscape or the types of people who involve in themselves in the open source community by archetypes of land before time.
Um, and so there was like Ducky and all of them, and I might even dust that one off and make it a little bit more sophisticated with some actual number numbers back there.
Um I have a little bit more um maintain maintainer.
I do air quotes.
This is a podcast, um, maintain experience.
But being on the core team really does make me feel close to the action.
It's really exciting.
We meet, um, they meet every week, but US time is uh every other week, and I catch those.
Um, and we do have like several suggested re um responsibilities, but um it's really just a bunch of people who spend as much time as they can working on and and contributing to Wagtail, and it's really invigorating, really nice.
Fantastic, fantastic.
And so for for the list, where what's new in Wagtail at the moment?
What's the state of play with Wagtail?
What's what are the exciting new things?
Yeah, we just hit 10k stars, uh, which is huge.
We had a couple tweets about it.
I uh so in my notes here it says, yes, okay, so we are in the top um 1900 repositories of 15 million on GitHub.
It's just really exciting.
Um we just released the uh 2.12 release candidate, um, and that's still uh pending.
I don't know when 2.12 is like uh staples getting dropped, but um it does support Python 3.9 and there's other lists of things that are um associated with that list, uh with that release.
Uh the documentation sprint is coming up, and so that's uh February 4th and 5th.
I want to make sure people would join that when if they're interested.
Okay, and what so what could could I how would I find out about that if I wanted to go on.
Yeah, so there's um it's on the Wagtail um blog, Wagtail.o uh backslash blog.
Um and one of the most recent posts is the documentation sprint twenty twenty one.
And there's a sign-up form and everything.
Now there's also um packages.
There's um a dedicated packages section to Wagtail, right?
That's a pretty recent thing.
Yes, yeah.
So there's uh Wagtail's packages, and then also they are now um both in uh Django packages as well.
I love the Django packages interface and the way that it's comparative and has all the lists.
I mean, it it's really, really great.
So um, but so all of the pack wagtail packages are also in Django packages, and you can also do Wagtail.o backslash packages.
I think it's a big thing that have how Wagtails come on.
It's got its own packages ecosystem.
Mm-hmm.
Yeah, it's like two layers of turtles or something.
You know, it's like oh yeah, what what's right?
Oh, it's this Django CMS.
No, it's it's this whole thing on its own.
It's like, you know, okay, it's built with Django, but it's it's it's got its own life, it's got its own ecosystem.
Yeah, it's really exciting.
So we have like um several partners.
Uh I mean we work with Motley Fool, I know, a lot.
Um gosh, I'm gonna do a disservice to to the people that we work with.
Um, but it they're big organizations that are propelling some of these Wagtail features, um, and it's been really ex exciting to be witness to it.
I haven't done a um nearly as much code contribution as I'd like to with Wagtail, but that's definitely in my 2020 goal, 2021 goals.
Yeah.
Well community counts too.
I mean
It does, thank you.
Yeah, this week in Wagtail, yes, that's an that's that's the we yeah, the newsletter, right?
I think.
Yeah, and I see you have got Jang Django news on there too that Jeff uh Jeff and I run, which also sometimes has stuff.
Yes, oh wait, I I see Jeff push posting about it all the time and I I keep forgetting that this is yes, of course, you do that as well.
I'm everywhere, yeah.
Yeah, everywhere is that.
Um but yeah, if you use the hashtag This Week in Wagtail, it works for um on Twitter and other channels, and there's also a um a channel in the uh Slack in the Wagtail Slack for This Week in Wagtail.
What I wanted to ask then, so you're you're busy um uh consulting, trying you know, freelancing, whatever, you know, doing your your work, and then you're also contributing to open source, and it's not like you've got bucket loads of free time and a you know custody bank role to sit on while you're doing all that.
So, how do you find time for contributing to open source?
Because this is the big thing.
Like, how is it?
Like, open source can really help boost your profile.
But how do you possibly justify that time if you're working and you you know you've got other commitments?
And uh how do you f how do you find that time?
How do you find the time to contribute to open source?
Uh things I think about all the time, like top of the list.
I um I have I'm a huge note-taker, um, and a lot of times I write out all of my goals, and as as they converge on things that have some certain similarities, I'll use um I'll I'll try to like kind of group them together.
I have um uh I have a uh another side project that's more about open source and ethic um ethical source uh licenses and and contributing good clothes um code to a altruistic future.
Um and I am building that in Gatsby and Wagtail because these are the the the tools of of other parts of my life, and then also hope to add features that I know that may need a little love in the Wagtail community as well.
And I really just try to like converge these some of these ideas.
Um for example, there's a potential client that might want an e-commerce solution.
Um, and um I've been looking at the um e-commerce packages that are available with um Wagtail, um, and some of them need love, some of them have a lot of uh work put into them.
I'm completely new to this uh to the e-commerce wagtail landscape.
So let's check it out and see what I can contribute.
Where does uh where does it need some help?
And if if you're searching at the top of the funnel as you're like planning some of your stack and your things, sometimes you can uh kill two birds with one stone, for example.
Yeah, right.
Okay, try and work it into the to the work.
That's the plan, hopefully.
I mean, I think there's a lot of people doing really great things out there that are already in sync with things that they can contribute.
Yeah, okay.
On consulting, I we have in the notes, can you talk about making the leap to consulting?
Because because I believe you were you started doing that while you were working full time.
Yeah.
Like what was that transition transition like?
Because that's you know, one that I think a lot of people go through, but it's a it's a hard one.
I would I would not recommend my transition.
It was incredibly retsy.
Um, I had been consulting for about a year um at the same time as working full-time as a project manager at Lenovo.
Um, and so I'm I'm probably doing 60, 70 hours a week, maybe 40-50 with my full time.
And it was just exhausting.
Um, and so I just really wanted to um get into code and code every day and most of the day.
And so at the end of Lenovo, I was moved over to their um UX um team and I was working in React, but I, you know, missed Django and just didn't feel like I was learning fast enough.
I was just getting anxious.
Um, and so I just left.
And it was, I mean, I really enjoyed Lenovo, but I was just like, okay, I guess I'm just gonna I think I'm just gonna leave.
I'm gonna take my savings and just go and try.
And then I'm gonna do it in Europe.
I'm gonna do it in Europe with my dog.
And I did it, and it was really it was a cool year.
Um yeah, um I would consider it.
You had a blog post on this, I saw.
So why we was it Amsterdam?
Where were you I forget, were you in the same place mainly, or did you bounce around?
I did uh two places mainly.
I did four months in Amsterdam and um three months in uh The Hague and three months in London.
Um and so it wasn't it wasn't quite a full year.
Um I came back and I would love to write another post about like why I came back.
It wasn't quite a couldn't hack it, but it was being 2,000 miles away from all of the people that I care about, and then not having anything that tied me to a particular place like a job, not being able being able to really develop a routine quite yet, and then not really knowing where I was gonna settle roots.
So it was either Philadelphia or Berlin next after London, because Brexit was about to happen, I couldn't stay.
Um, and um so um and we didn't know what vac and it was it was only there like just kind of popping around.
So it was definitely within my like US visa to be able to stay for six months and I only stay for three.
Um, but we didn't know what what Brexit was gonna do.
So then um but I I chose Philadelphia because I really missed a sense of community and miss Europe still all the time.
Um so there's definitely a chance that I would go back for uh the right set of circumstances, but it would be I'd like something a little bit more grounding that would just keep me a little more sane.
Yeah, that sounds right.
Speaking of um community and east of here, um so DjangoCon Africa, you were an organ organizer, the inaugural one was gonna be last year.
Um can you talk a little bit a little bit about that conference and organizing it and all of that?
Because right now there's currently the US, Europe, and Australia.
So this is gonna be the fourth major Django Con.
Yep.
So I've helped small ways organize for the US one.
I've helped organize in a uh more substantial way in 2019 for DjangoCon Europe in Copenhagen.
Um and we I I'm really just taking um um listening to what they need and and for for just help and taking directions.
I'm not much of a uh in a leadership position in this one, but I'm um gonna be in the sponsorship team um for DjangoCon Africa, and it is happening.
Um, and I got confirmation of that um the other day, but we're gonna start moving a little faster in the beginning of this year.
Um that's exciting.
That's gonna be in Ethiopia.
Um, and um just just really excited.
So I've never been to the continent of Africa before, so that'll be really nice.
Super.
And when when is it?
Sorry, I mean you say it's going it it is going ahead even with the pandemic.
Yeah, it's it was supposed to be November of last year, and I believe it should still be in that same time frame.
It'll definitely
be after it's gonna US.
Okay.
Can that so can I cut back to um you said you're um you you're building um a project, you didn't talk about the project, but you said you were building it on Wagtail and Gatsby.
So is that are you using this the sort of Wagtail in the headless mode that I said?
Yeah, headless.
Let's get that.
So what what on earth is going on there?
Tell us about that.
Because like I've I've heard this thrown away around.
I may have even seen like a workshop going on in a in a room that I didn't I wasn't in.
But like what is what is a headless CMS and then what does Wagtail bring to the party?
Right, right.
So um Wagtail in particular, I love that leans into the the CMS-likeness for for those uh where it it relies a lot on page hierarchy and and um and patterns that are com uncommon with having another user come in, create their own pages um very heavily.
It it leans into that.
Django does it very well.
Wagtail just wants to uh be more opinionated about it and and helpful.
Um and so Headless Wagtail um really allows for other integration um quickly.
And um Caleb Tullian um on with uh learnwagtail.com has so many resources on it.
It's really, really helpful.
Um and so then I am experimenting with having Gatsby on top.
Um it's currently not in production, so what I have up now um at theroot.com uh excuse me at theroot.dev um is just gatsby right now.
Um and I'm using NetLify CMS, but that's being changed out very quickly because I'm I'm not I'm not happy with that solution.
Um but it does deploy very quickly and to just get something out um fast is great.
Why Gatsby versus React?
What does Gatsby give you that React doesn't, right?
Or how do you think about combine because you could combine either with headless um Wagtail?
Yeah, so I have the way that I've justified the the investment in this, I mean I I do l also like new shiny things.
So then I try to justify my addiction to shiny new things.
Um so I have about two special.
That's why you're friends with Jeff.
Right, yeah.
Um I have two speeds uh in my and what's really stable is when I'm I'm team augmenting and I spend mostly at this point it's probably 70% of my time with that.
Um, but usually it's like 50-50.
And then the other 50% I'm I'm doing kind of smaller projects or I'm able to um I also have so many ideas.
So I can buy a domain and just like push it out really quickly.
And I um love that experience, but also being a developer, I want to be able to um to upgrade as much as possible.
I don't want to be at the behest of uh somewhere else, like a square space or things like that.
Um, so I enjoy the fact that Gatsby has starters um and it can get my brain moving on what's possible.
It gives me somewhere to truly start with.
Uh Wagtail starts up very, very quickly, um, but like ha is a developer's tool um and is not made to be a codeless solution.
Um and then hooking those together, leaning into those developer experiences and trying to make something scalable but deploy very quickly is my goal.
And I I feel like we're getting really close there.
There's a Wagtail Netlify solution uh package that uh just was released recently.
Um I'm hoping to include that um and kind of just figure out what this rapid prototyping or this uh rapid development kind of thing could look like.
Um it's more of a experiment and we'll see how it goes.
Okay.
So you mentioned starters.
I had to Google that, but it looks like there's like 500 sort of pre-built templates just for Gatsby with common, which is um, you know, it'd be great if there was that for Django.
I mean, there sort of is, but it's not as unified, I guess.
Yeah, yep, yep.
It's it's really, really cool.
And it curates a gallery of a lot of different plugins and things that are already in existence with Gatsby.
Um, so that makes it fun.
I know, Carlton, I know you have a question.
I want to ask one.
So if you have a how do you deploy a um Wagtail Gatsby site?
Do you have Gatsby on Netlify and Wagtail on Heroku, or what do you use for the API part?
Currently I'm using DigitalOcean.
Um, and with my deploy, I couldn't get the Wagtail uh Netlify to work um exactly yet, but that's a feature plan that I I mean there's a Netlify Wagtail, or excuse me, there's a Netlify uh Gatsby and there's definitely and there's Netlify Wagtail.
And so one of my future plans is to have a starter and a deploy um and a boilerplate code to be able to explore doing that regularly.
Um and there's a little bit on it, but not much out there.
Yeah, I see Tom uh Dyson has has this Wagtail Netlify package.
I guess I'll have to look at that.
How I where where's the database, right?
Because Netlify do they do database hosted databases now?
Um I think what they would do is they serve it as a static site.
Yeah, but I mean, isn't there a thing as well, there's a w wagtail bakery or something where you can um perhaps that's not the right term, but you perhaps that's not the right name of the package, but you you can get a static site out of your Wagtail site.
So you use the CMS for generating it, and then you run this command and it gives you a static site, which they I guess you can then put on Netflix.
Yes.
And at that point, at this point it is currently magic to me.
But yes, I am yeah.
Yeah, no, this is a little bit like um I'll date myself back in the day with Flask, there was a way to, was it Flask Freeze, where you could essentially I think have something very similar.
You'd have a server and um have dynamic templates, and then you could run a command and it would output a static site that you could then in its entirety put online, which seems like that's what these ones do with Wagtail, which m makes a lot of sense.
You know I'm talking about Carlton, right?
Yeah, yeah, yeah.
No, well I was I was just thinking I I used to do it with um Webget with Wget and you know, Wget million command line flags and you'd mirror it and then there's your static site and it's
I I feel like there's there's a lot of static site, Python static site ones.
Um there's even I think I finally got myself off of being a a core member of uh Armin uh who did Flask has has his own um static site generator.
But I I guess I haven't fully dived into Python-based ones recently.
I'm still using Jekyll, and with the big Sur update, I had to do a whole bunch of stuff, and I'm always like, uh, Jekyll, but you know.
It's just for my personal sites.
Yeah, it was very easy, but I think uh DjangoCon US does uses, or was it Hugo?
But it was it was not really easy.
Yeah.
I've used both.
The problem is Ruby, not Jekyll, but ah, yeah.
Okay.
Anyway.
I'm willing to say it, Carlton.
I'm willing to say it.
People can comment on that.
And it's not Ruby the language, it's just getting Ruby installed is just a pain for me.
It's getting
the w the right gems installed.
So you recently wrote a blog post about um from Martin Luther King Day about decolonizing tech.
Can you talk a little bit about that post and what that involves?
Yeah, so I may have mentioned previously um one of the side projects that I have um is at the root.
It's really taking up um more of my time lately because I'm so passionate about it, and it just feels like a very viable way to um address um open source tools, um, capital O, capital S, um, that are uh that continue a system of inequality and racism in tech.
Um so I've so there's an absolutely amazing um talk from Py uh PyCon AU this year.
It's about uh biometrics um in in technology, and it goes through so many scenarios of how um because we are creating this because we live in a system that is inherent by Korea, yes.
Um uh we live in this system that is inherently racist and that has inherent disadvantages to people and doesn't analyze the ramifications of our of our tools, of our frameworks, of our algorithms on people um that we are continuing to um propagate the system and propel this system.
Um and so having ethical source, um many people may have heard of the first um or do no harm, um, which is the Hippocratic license that uh Coraline created.
And in the same vein, there are other ones um for the environment, and we have an actively anti-racist one at theroot.dev.
Um and um we're still in the stages of our first release.
Um we're talking with IP lawyers and um intellectuals in our community who are at the intersection of ethics and open source, uh, capital O, capital S, um, in order to see what ethical source licenses can do and and really what that legal tension means currently.
Um an ethical source license would would make it your open source lowercase O, lowercase S.
Um, but we're we're we're just discussing those nuances, what they do for the community, um, and how to propel us forward.
And so then the context of the blog post, um, decolonizing technology, um, I really wanted to just think of the convergence of all of the Bing words and all of the big things that we're talking about right now.
Um, the US has had a really tumultuous year, um, and we've it's raised a lot of tensions on race uh out across the world, um, and the ramifications of which.
Um, and how can we be actionable in fixing that?
And so I talk about what it means, how this um ideology in the system is perpetuated, um, come up with actual examples, I mean, um, in there, and then uh propose the two products that At the Root is doing as a solution.
The first of which is the ethical source license, and the second of which I haven't mentioned is the um is the to-do list.
And so as we gain more support, I'm hoping to get subject matter experts to provide uh suggestions on depending on what your project entails, on how to be actively anti-racist.
Things that would help all sorts of communities, like if you're doing a social platform, there should always be a block feature.
Um and that protects people in um underrepresented communities.
Um or if you're doing you know, training algorithms, what is your data input?
Are you are you getting it from places where people have consented?
Um, what um what are you saying about the the the the data sources or the what is is essentially people, the rows are people that you may be training data on um and what does that mean?
That's great.
That makes a lot of sense.
That you know, sort of the the dark humor of the United States, one of the things I enjoyed was people noting that um in terms of identifying the writers, um, most of them were white, and most of the AI algorithms for facial stuff are key to that.
So one unintended benefit, I suppose.
Right, right.
And even in the wake of parlor and everything like that, and just what does that mean?
And um Jack Dorsey finally kind of came to terms and spoke about things in a long Twitter thread that you can you can believe or not believe, but regardless, there is a groundswell of of of thought and consideration on what the role technology has in uh morality or keeping people safe at the very least.
Yeah.
Yeah, that's great.
We'll we'll have that in the the show links for sure.
I mean, just on that topic, there's one thing that's constantly on my mind, and perhaps you can comment as a um a a contributor to the Django community, a contributor to software in the Django, a soft a com a contributor to the community, a a contributor to the ad to the code as well in the Django community and a person of colour, is like how how do we widen the contributor pool to Django itself?
Because we have the code of conduct, we have a an open um and welcoming community.
It's it's you know radically different from other communities in other in tech.
And yet, if you look at the contributor base, you know, to Django core, like the people making commits, they're still all white and they're still all men.
Yeah, not all, but you know, most mostly.
And so it ties back to what we were talking about before when I was like, well, how do you find time to contribute?
Because that's one thing, right?
It's you know, economic privilege is is a is a a big step up.
Exactly.
But like what so if I if I just lay that topic there, how would you what sort of thoughts might you have?
Um how do how do we make it easier?
You've definitely hit on one of the first things that I was gonna say, which is uh kind of in many ways outside of Django's hands, but then it maybe not.
I think there could be some creative ways to address it, um, is economic privilege, having the time um and the bandwidth to do so.
Um as a consultant, it's really not easy to contribute as a consultant because I really have to just justify how my hours, the the day, my daily rate, um, while in your in a salary position, not so much.
Um, you are able to, there's more of a global perspective um in order to give back.
And I I really enjoy the companies um that are participating in the Django community and then give back, and then also um have some of their employees um give back to the community as well and and are continually active.
And I think the more diverse um companies like that are, the more opportunities there are for to get closer to the code.
Uh, we're also developing a lot of resources for first-time contributors, um, and um hopefully with several different approaches like representation and seeing more people like them, and just even understanding how um how the open source community works.
I will never begrudge uh a a person of color engineer saying, um, no, I'm going for the money.
I want to make six figures, I want a fat salary and a Maserati.
Personally, that's not for me.
Um, and I really have getting gotten a lot of it's not for me yet.
I don't know.
But um I'm just the things that I've done in my career.
Yeah, I don't know.
We'll see.
We can we could dip in and out.
I don't know, but I I I definitely scratch the altruistic itch right now, and that's really important to me.
And I think that it other people recognizing that you can give back, you can feel like a good person, you can um be intellectually uh curious and motivated and work with brilliant people who treat you like a human and it's possible.
Um and it it it it'll take time, but it'll take diligence and it'll take repeated effort.
It will never be one quick um one shot.
It'll be continually doing the right thing.
And I and I I think the tides will will be in our favor.
I have to be optimistic.
Well, I mean, Carlton's given a bunch of talks on this.
I would just add, uh one thing we've tried to talk about in this podcast is it's not just altruistic, it's also very self-interested to contribute because if you, for example, you're a consultant, it does come out of your billable times.
But if you're a consultant who's contributed to Django or who works in, you know, you're a core wagtail person, that certainly helps get client work.
So when people ask me, because of my books, they're starting out in Django, how do I get hired?
Um, which is a really hard question to to answer.
Yeah.
I often say we should have some projects on GitHub if you can.
You should, you know, if you can do any sort of blog or writing about your journey, and then if you can contribute anything, whether it's the docs at a conference, you know, code is great.
Just to be part of the community, that proves that you know how to work with others, that you're in the community, and someone who's applying who has already contributed to Django in some some way, code or otherwise, that goes to the top of the list.
So that's sort of a interviewing expense in a way.
Um so it's not I guess it's it altruism isn't the only reason.
Though of course it feels good and it's nice to work with smart people, not doing it for the money, but you can get a lot of side benefits while doing the right while doing altruistic stuff.
Definitely.
I I actually I just tweeted about it I this morning, um looking up for a looking up a package that I need to solve a problem for a potential client.
Um, I'm seeing the comparison, looking at the contributors, seeing if I know anyone, seeing one of my friends up there, and then slacking my friend directly.
And when I first started, the the world just seems so vast.
I sent an email, thank you for your having your blog in existence, and I was so surprised I even got an email back.
So it was it was just very big and being part of the community makes it smaller and truly um helps me solve problems a lot faster.
Well, it seems like you've always been good about reaching out because I would say mo you know, I have a blog and sites and I get a decent number of emails, but it's a tiny, tiny, tiny number given the number of people who look at stuff.
So on the one hand, I'm not surprised that someone responds because you don't actually get many emails, certainly not one saying, Hey, thanks.
I think most people don't take that first step.
They don't think about the fact that you know there's a person there, and beyond obviously it's nice to just s say good things about someone, um, you know, then they sort of get to know you, you know, or maybe you have a question about something they can help.
You know, it's a way to build relationships.
Most of my Django relationships are purely online.
Um you know, similar to I think how it seems like it is for you.
Though of course you went, you've been to way more Django cons than we have.
I mean, I met Carlton at the first my first Django Con, and you know, that worked out.
So going to events if you can is a great thing.
Truly, I I attribute my career to the the quote unquote networking I've done in in Django, but it always feels so disingenuous when I say networking because it's I just make really smart friends and thank goodness we're in the same career.
Uh I'm I meet them at career events, so and i i and it's how I I navigated Europe, it's how I got gigs when I first was starting out.
I mean, you really wouldn't think that someone just kind of jumps into it and uh, you know, knock on wood, things have gone really, really well in the two and some change years I've consulted um because of the I I'm also pretty earnest, and people are kind of put ab put aback by it.
So I'm just I'm like, oh, you're a good person, I'm a good person.
Let's be friends, code together, and I'm like, sure.
And it's yeah, it's it works out.
Yeah, no, it does.
It does.
Is there anything else that we haven't mentioned that you want to plug or or say on on the way out?
We're we're close to time now.
I've talked about so much, and I think I also was a little repetitive.
So I'm I'm great.
This was really a great experience.
I'm appreciative to be on the on the platform.
Um yeah, so yeah, you guys are doing great things in the community.
It's really great that just exists.
Thank you.
Well, we we have links to everything we discussed um in the show.
And Carlton, can you read us out?
You read us in.
Where can people find out more about the show?
DjangoChat.com is our website, and we've got a um uh a Chat Django Twitter um handle as well.
And uh I think that's it really.
Yeah, that's it.
Well, Dawn, thank you for coming on.
Join us next time, folks.
Thank you, Dawn.
Bye bye, bye everyone.