← Back to Show Notes

Transcript: JustDjango - Matthew Freire

Will Vincent

Hello and welcome to another episode of Django Chat, a weekly podcast on the Django Web Framework.

I'm Will Vincent, joined as ever by Carlton Gibson.

Hi, Carlton.

Hello, Will.

Will Vincent

And this week we're very pleased to have Matthew Freyr of uh Just Django on.

Welcome.

Hi.

Matthew Freire

Thanks for having me.

Thanks for

coming on.

Will Vincent

So I've from afar seen you've been pumping out great Django content for well over a year now.

Um and now you have both on first on YouTube is when I saw you, and then now you have the Just Django.com site.

So really interested to talk about how you got into Django, building that out, and talk about teaching Django since you and I both do a lot of that.

So maybe I'll start with you know what's your quick story?

How did you get into programming and find your way to Django?

Matthew Freire

So uh I I didn't study any kind of uh degree that was really programming based.

I did industrial engineering or otherwise systems engineering.

And in the second year we had a module of Python, which wasn't really too in-depth, but just kind of an introductory module, and after that I was was kind of hooked on the idea.

Um but really at a beginner level I didn't know that you could even build websites with Python and I eventually then found the Django project, saw the 1600 page PDF that came along with it, and uh yeah, though

Will Vincent

I wondered who used that.

I wonder if anyone

Matthew Freire

Well, I can't I won't lie and say I used it, but it definitely it kind of gave me hope.

I was like, wow, this is there's obviously something here.

So so yeah, I started learning it and the rest is history.

Will Vincent

And how long ago was that?

Uh, just so listeners can get a sense of the journey.

Because I mean for me, I'm only I don't know, so several years into my journey, so I don't want everyone to think everyone's like Carlton and you know 20 years into Django.

Carlton Gibson

I'm not twenty like when did I start using Django before?

Let's not talk about Matthew, let's talk about me.

Um I started uh 2009, something like that, 2008.

About one point one point oh, one point one, that kind of yeah

Will Vincent

with Django or with programming?

Not with Dango with Django.

Matthew Freire

No, I I I came in like 1.11.

Yeah, right.

Okay.

Will Vincent

Oh yeah, on LTF.

Matthew Freire

It was late uh late 20s uh yeah, mid 2016 that I started really f yeah, that was the first time I'd seen it, and so yeah, three and a half years going yeah, yeah, going on four years.

Yeah, because

Carlton Gibson

Jang 1.11's just gone end of life, so that had sort of you know.

Matthew Freire

Oh yeah, no, yeah.

Carlton Gibson

That was the the long-term support.

Matthew Freire

Yeah, no.

Um I mean obviously now completely moved off, but that's that's when I came in.

Fine, fantastic.

Will Vincent

And do you recall what resources were helpful back then when you were um starting out?

Because I imagine if you're creating resources now, like me, you weren't always weren't entirely pleased with what was out there.

Matthew Freire

Yeah, uh that that that definitely was it.

So I I basically learned everything from a YouTube channel called Coding for Entrepreneurs.

Will Vincent

And oh from Just Justin's thing.

Matthew Freire

Yeah, yeah.

Uh I I I on I think he was probably the best learning resource at the time.

I used his website for a little bit, uh probably about a month or so, and then I then I kind of got the hang of it and uh was just then started building my own project.

So yeah, mainly him.

He's the the number one thing, uh the number one resource that pops up.

Interesting.

Will Vincent

Yeah, I think for certainly for video, he he has been and he's probably still one of the top.

Um I don't I don't I don't know him at all personally.

I he d I don't think he goes to Django Cons or anything, but he has a bit of content.

He's very into function-based views, as I recall, the things that I saw.

Um maybe maybe you had this.

I had this where I saw his content and I thought I thought his style was good.

There were things I would change and sometimes I got a little bit lost, which is partly why I think it's good to have lots of people teaching Django because everyone learns differently and everyone presents it differently.

So yeah.

He he does a lot of stuff.

That's great.

So then and then do you use it so professionally now, or is like what's what's your day-to-day role?

Because you run just Django, which is a lot of work.

Are you able to use Django professionally or or not?

Matthew Freire

Yeah, so I I started uh using it professionally uh about a a year and a half ago.

Uh, and so that was a mixture of things, whether it was freelancing or uh actual projects that could generate some money, and actually working full-time.

So I've recently uh moved on to now doing just Django full-time uh for the time being and exploring some other options, but yeah, profession professionally in the in the traditional sense of the word for a year and a bit.

Got it.

Carlton Gibson

And is um the is just Django the Just Django site built with Django detail?

Matthew Freire

Wouldn't that be a crime if it wasn't?

Carlton Gibson

Yeah, that's kind of cool.

Will Vincent

Well well it happens, you

Carlton Gibson

know, Django forums run on you know some movie thing.

Yes, yeah, I I think it it just uh it's it's one of those those things.

Matthew Freire

It's like you gotta prove it in some way that you can back up what you what you say.

So at least do the people the courtesy and obviously no one knows, but I mean um if if you were to open source your project, which I have ideas of doing, then at least people can see that.

Oh, okay, so this is what a fairly built-out Django project looks like.

Yeah, yeah.

Carlton Gibson

Also, I mean I guess if you're coming up with tutorials and stuff, to be able to have a you know something real that you can experiment with and see what breaks and see what doesn't, it's much easier than coming up with test projects.

Matthew Freire

That's exactly it.

Yeah.

Will Vincent

So the the two kind of main areas I wanted to talk to you about today was was building just Django, because I think that there's a lot that'd be interesting about how you iterated through that and then um your content, kind of your approach on things like using pipemv, which I use, and we can get into all that.

But maybe what was the earliest stage of just Django?

Like what was that iteration like for you?

Because I think it's helpful for people to hear how someone works through a project and especially solo projects, you actually understand how that all plays out, whereas in a team you you don't as much.

Matthew Freire

Yeah.

Will Vincent

So what did you start with?

What was the prototype?

Matthew Freire

Well the the very, very, very first prototype was probably uh a project I didn't even build.

Uh so just going with something that that already kind of had most of what I was what I was looking for.

And that was more just to understand everything, Chris to really understand everything.

Um so that I think that was also something from coding coding for entrepreneurs uh that I found.

I worked with that for a little bit, and then eventually you you understand it and you realize, oh, but I want it to maybe have this little tweak, and then you add that tweak.

Uh this is uh this is now just a normal uh Django project, so not a not using Django Rest framework or anything, just pure Django, and eventually that just those little tweaks keep happening, uh, which is then what builds on your skills, and then eventually the whole project is unrecognizable from what you kind of started with.

Uh and I mean I I've I I can't count how many times I'd messed up the database on on DigitalOcean and had to restructure everything and had to or rebuild this entire thing from scratch.

Um, but by doing that, then you really learn the basics and it eventually becomes then what it is today, which is then with Django Rest framework, and then the front end is completely built in React, so it's a completely different thing.

But interesting.

Will Vincent

Yeah, because it looks fantastic.

I know you just I think you just did a redesign with Tailwind, is that right?

Yeah, that's something I've played a little bit about, but I really want to uh find the time to do.

How how did you find uh Tailwind since this is a Django podcast?

Matthew Freire

Um No, I I really enjoyed it.

I'm not much of a CSS fan.

Uh or actually I'll say I'm not much of a front-end fan.

Uh I don't think I have great UI design skills.

Where Adam Wayton, the creative of Tailwind, he kind of uh has this has this reinforcement of a theme that you you can build UIs with with logic and with an analysis.

And Tailwind is kind of the way you use it follows a more analytical approach than just kind of than a more creative approach.

At least that's how I I see it in my in my own head.

Um so when you don't work with CSS at all and you're just adding classes to HTML, it removes an entire element of of front-end development.

And yeah, I loved it.

I thought it was amazing.

Uh, and I'm definitely gonna keep using it.

Will Vincent

Yeah, because it's all about uh basically having utility classes that you can reuse instead of you know CSS files that you know if you use Bootstrap, which like I'm currently using, but what what always happens is then you just customize everything, or if you're on a team project, you just make longer and longer names to keep it all custom and then it's a mess.

Yeah.

Will Vincent

And tailwind, I guess the whole idea is that it's from the beginning with this idea of utilities, right?

You kind of avoid that.

It's sort of Lego pieces you can put together.

Yeah, is that right?

Yeah.

Matthew Freire

No, I I I I thoroughly enjoy it.

Uh so yeah, your class names get really long, but you understand it.

I think that's the the point.

It's so it's so readable.

Um everything the as you read it, it does what it says.

So it's it's so easy to understand if you uh if you're starting out with CSS, it's probably not the best because it's abstracted everything away from you.

But as you I don't think you need to be an advanced user at all to move straight to it and just forget about it kind of.

Will Vincent

Right.

Well, and how are you uh and and Carlton, jump in.

I I know I have a lot of questions.

Because I've you I've you I've used your site a bit because I you sent me a link and actually before that I'd I'd taken a look.

Um I'm curious, how do you like what what does the models look like?

Because you have you're hosting videos, you have payments, like what are kind of the main models that you're you know now at with all these iterations if you're willing to talk about that.

Matthew Freire

Yeah, yeah, sure.

Uh yeah, so the main the main model is is the course model for sure.

That's that and the lecture model.

Uh probably probably the lecture model is the biggest now.

Um because that's what

Will Vincent

a lecture within within a course, like a one to many.

Matthew Freire

Sorry, let me I'll explain.

So a course uh being well being a course which has multiple lectures in it, and each lecture can can contain a video.

Uh right now you can't you can't see the other content that's coming soon, but in design it it doesn't have to be a video, it can be a document or it can be uh other kinds of kinds of content.

So like a quiz or uh a project, so something that's gonna have a different form in the front end.

So that's all linked inside a lecture.

It can be different different types, and so there's quite a lot on that.

There's files that you can download, uh links to GitHub, descriptions, all the um basically one of everything.

There's Boolean fields, there's character fields, there's everything on that that's on that.

And uh yeah, so then that's linked to the course, and the course is then where all the general information is, and the course is linked to a roadmap.

Uh, and the roadmap has then got like uh is like the overseer of all the courses, so everything falls under that.

Will Vincent

So that's where like slash courses, that's the roadmap model that you're oh actually you don't have a slash courses, but I assume you have sort of a list view on the

Matthew Freire

yeah, so um so if you right now there's only one roadmap, so I kind of restructured it where there used to be some uh some Python courses and JavaScript courses, but I guess when your site's called just Django, everyone just wants to learn Django, so uh uh that's the more popular.

Carlton Gibson

Just Django and some Python Discord.

Matthew Freire

Yeah.

No, so it's yeah so that there's only one thing.

Will Vincent

I think that's a great idea having the having the roadmap.

Because certainly like a linear approach is what people need, and it's kind of hard to that's

exactly it.

Matthew Freire

That's exactly it.

Will Vincent

And you're using Vimeo now?

Were you always using Vimeo to host?

Because I think I mean so I'm partly I'm asking because like like I have a Learn Django site, we talked about last week, it's much earlier stage than yours.

Um you know, there's sort of like Wistia and and Vimeo are the two options I see out there, and yeah, Wistia being maybe a bit better, but a lot more expensive.

Matthew Freire

Oh yeah, a lot, yeah.

I remember valuing

a lot more expensive.

Matthew Freire

Yeah, a lot.

Uh no, I I evaluated the options about maybe a year and a half ago, and I had to completely write off Wistia.

It's just it's just way too expensive.

Uh and so I was hosting on AWS, and that I mean that worked pretty well for for a pretty long time.

Uh, and it's it's actually really cheap.

Uh, if you compress your videos and you store them on there, then

Will Vincent

Oh, so yeah, just like an S like an S3 bucket.

Matthew Freire

Yeah.

Carlton Gibson

Uh but then what would you use for controls and things like that?

Because that's where Vimeo comes in, right?

They've got these nice interfaces on your videos.

Matthew Freire

Yeah, you get you get more analytics out of it.

So you actually get to see uh how many how many views a video gets and how many finishes a video gets.

Uh so and impressions.

So it it ties in with Google Analytics as well, which is really nice.

So you can actually start to get a more uh thorough understanding of are people actually watching this video or are they not.

Uh yeah.

So that's that's the main the main reason for switching it over.

As well as I think there's a there's a an attractiveness to uh using a service that's dedicated to one thing.

So not to say that they they're gonna be that they will be amazing, but I I I do have some confidence that oh this is a this is a site that's that their only service is literally just delivering video hosting.

And some part of me really likes that and the pricing is also pretty good.

So yeah.

Carlton Gibson

But like I always uh like imagine uh first not imagine, but like I use Vimeo in past projects for exactly that reason, in that the cost of Vimeo was much less than you know, even the development time of an alternative player by the time you've assessed the open source alternatives and customized.

And ah, you know, I've already paid for six months of video, just think Vimeo just thinking about it.

Like just use Vimeo or use, you know, yeah, AN other service for these particular things, especially if you've got a small team where you just don't have the capacity to allocate human hours to being the video person.

Yeah.

Matthew Freire

Um I I started using an open source video uh video tool, which is called Plier.

I don't know how you pronounce it.

Plyr.

Uh and that that integrates with Vimeo, integrates with YouTube, uh with your own videos as well.

So I did I didn't have to spend a lot of time on on developing that, thankfully.

But yeah, I wish I knew about Vimeo's well, knew about it.

I did I didn't know about it, but I wish I evaluated it sooner because I agree with what you're saying.

Yeah, it's it saves time.

Will Vincent

Well, and I th and some people I've seen also do you can do YouTube, you can do private videos though, which I believe is free, except then you see the ads on there, so it's not quite the same experience.

Matthew Freire

Okay.

Will Vincent

Like you can you can you can there's a way to do it so it's yeah, private videos, or I guess maybe it's private URLs.

Um and I believe the but I find it you know not as good as an experience as you know, Vimeo or Wistia, obviously, because you're you still have like the the ads on there.

Yeah.

But the flip side is it's free for the um the content creator.

Matthew Freire

Yeah, Vimeo Pro is I I'd say the the best option to go with.

Um it's got more than enough storage, more than enough um allowance on on uploading and downloading.

Uh and yeah, so you got no ads, but also the privacy, so you can you can set what domains the videos are allowed to be hosted from.

And that's obviously a huge deal if you're trying to protect those videos.

Will Vincent

Right.

Yeah, I'll I'll resist the urge to get into like a privacy thing with you because I'm sure just as for me, I periodically have to go through and remove PDFs of my stuff from the web and with you as video.

We'll we'll just we'll just note that that exists and if you want people to create content, don't steal it.

So I'll leave it at that.

Um I did have a uh so Tailwind and React, which one did you add first?

I'm curious.

And uh did you React.

Will Vincent

And then just to have so you went server-side Django, DRF, and then React, and then finally Tailwind.

Was that the progression?

Matthew Freire

Yeah.

So the uh when it was server-side Django, uh, there were a couple a couple pages where I would experiment with a React app purely for loading uh just the the course list.

Yeah.

And so I'd build out one literally just one component that fetches all the courses and renders them nicer.

And then eventually you do that for what two pages and and it's really not a great way to go about it, but because you then you're managing so many React projects, but you get the hang of it so quickly, and then it all becomes a React project.

And then after that, tailwind.

Yeah.

Will Vincent

And did you consider using Vue at all, or was it just React from the beginning?

Matthew Freire

Uh no, I I've I've not properly taken a look at Vue.

Uh once I'd learned React, uh I think I was I was so hooked.

I hope you get the pun on it that it it didn't it didn't really make sense.

I wasn't being forced to to learn it for any kind of project, so it was it was meeting all my needs.

Will Vincent

Carlton, you had a question that looks like

Carlton Gibson

yeah, yeah, yeah.

No, like so I'm just interested in that because I've I you know I always um beat the drum for

Carlton likes Elm.

Carlton Gibson

Yeah, no, okay.

So on the front inside I love Elm and that's fine.

And that I the reason I use Elm there is it just keeps me out of the whole JavaScript world and I can go along and build my things, and I don't have to worry about JavaScript.

And then alongside that I use Tailwind.

I love I'm a big fan of Tailwind, enjoying that massively.

That's my happy little world, and you know, you know, you're welcome to come and join me in that or not, and we're not going to argue about it.

On the um sort of other side though, I always kind of try and render as much as I can statically on the server.

Um I can see where a site like yours where you've logged in and it's an app.

You know, when once you're in a kind of app environment, there's no reason not to go fully front-end and single page.

But where you're looking at um pages that you want to load up quick and you want you know, for for search engine purposes or for fur that first load, I'd always try and render things um server-side and then you know sprinkle on a an Elm element or a a you know a JavaScript element like you were talking about.

But you were saying that the um the React components they kind of ate the rest of the site.

Matthew Freire

Yeah, pretty much, yeah.

Carlton Gibson

One by one.

Matthew Freire

Yeah, no, I I I actually forgot there's there's a in-between stage where I actually tried Next.js for quite a while.

Carlton Gibson

I've been seeing that what is Next.js, I've seen that pop up a few times.

So people are like, oh it's

Matthew Freire

it's server-side uh React, basically.

Okay.

Matthew Freire

So that was um that was something I was using for probably the a better part about four or five months.

And because of the exact reason you just said for loading uh for for for SEO purposes, so I had I had a a test phase of articles that were being written and put on the site as well, uh, which I eventually went against, which are now removed.

But during that time I was using NextJS because I was using React.

So it was kind of like how do I use React but get the best of both and Next.js full data.

Uh and that just came with a lot of headaches uh because of trying to serve it in a in a cost-effective way, uh, because basically the way it's set up is that you use their their add-on service to Next, which is their hosting service, and it can sc can get pretty expensive really quickly, but definitely worth it if you can do it, and if you have a if you have the money to do it, then sure.

But for solo dev it just wasn't worth it, and then I decided to go uh single page app instead.

Okay, interesting.

Will Vincent

And so you're just using, I guess, React Router.

Is that still how you do URLs with

Matthew Freire

yeah, React Router?

Will Vincent

Yeah.

Um and I noticed you have so you have um you have a subdomain for your you it's just Django.com, and then when you log in, it's learn yes.just Django.com.

I was curious why that structure is it two separate sites?

I mean, but you're doing the login on just Django.

Matthew Freire

There are two separate sites.

The one is uh is a landing page, and then the learn.just Django is the the actual learning app.

Uh so the reason the reason I did that was because I had future ideas for what I wanted to do on the actual landing page itself, uh, which is stuff I'm gonna be getting to soon.

So that that that could be different services besides learning.

So learn is supposed to be just the separate thing of oh, if you well, if you want to learn Django, then that's that's on that's on its own subdomain, it's its own thing.

Will Vincent

Okay.

Yeah, because as I think there's a small SEO hit if you use a subdomain, I believe, or they I mean they're vague about it, but I think but these days I don't know, Carlton, do you know?

I've been I've thought that there was some

Carlton Gibson

giant giant meh at that point.

Like if they're gonna penalize your content because it's on a subdomain of your uh

Matthew Freire

yeah, okay, I can agree with that.

Will Vincent

Um so authentication, you're you're uh you can log in with um Google or with email password, email username, I think, is right?

Matthew Freire

Uh just email and password, yeah.

Will Vincent

Just email password.

So are you using Django all auth or how are you configuring it?

Matthew Freire

Dang Django all auth and then Django Rest auth for setting it up in the API.

Will Vincent

Nice.

Yeah, that's those are the ones I recommend or I like using as well.

Carlton Gibson

And did so does the gonna just ask, does the learn like how does the how do you structure the auth for the subdomain?

Is that a shared domain cookie or so

Matthew Freire

right now it's it's uh just token authentication, well jot authentication, uh with uh API which is on another subdomain.

Will Vincent

Okay, okay, okay.

Matthew Freire

Yeah, that's right.

Yeah.

Will Vincent

Okay, yeah, we're gonna have um David, I think, is the author.

We're gonna have him on podcast a little bit later.

Because that's like the new yeah way to do it.

Jose had the older REST framework JWT.

Matthew Freire

Yes, yes.

Will Vincent

Very cool.

So um payments.

This is one I'm curious about personally because I have thoughts.

But how are you what what are you doing now and how did you get to that point?

Because I have I I find it challenging to do payments on these kind of sites.

Matthew Freire

Yeah, so uh well structure-wise, it's a subscription model.

So you pay to have access for every month, or you can now get access to a yearly membership and get access get a discount with that.

Um so I'm using Stripe and

Will Vincent

Are you using the new S the new um was it SLA, SLC, the EU thing?

Matthew Freire

Oh the SCA ready SCA?

Yeah.

Yeah, I'm using I'm using that.

Uh it's so there there wasn't really much of a decision.

So because I'm living in in South Africa, the there's even more of a challenge for how you can get payments online.

Uh especially if you try and do that in a React front end.

So uh lucky enough, I'm I'm actually Portuguese.

So with the Portuguese passport, it gives me a little bit more flexibility because Stripe is supported in in Portugal, so uh like that.

It was kind of uh I want to say only option, but also like no-brainer in a way that I had to go with Stripe.

Will Vincent

So are you running it through a Portuguese bank then?

They don't have South African support?

Matthew Freire

No, no South African support.

Will Vincent

Oh wow.

Yeah, it's it's it's crazy how they seem ubiquitous, but there's still so many countries they're not in.

And then of course, uh you you may have, you know, there's countries like Iran and stuff where there's lots of developers and they're frozen out of the normal system, and they email you and say, I want access, and it's you know, it's hard to

Matthew Freire

Yeah, it's tough if if also with um because a lot of the people that watch the videos on YouTube uh also from Africa, and then and you can't you well people living in Africa can't use Stripe as a payment gateway.

Uh your average person, like not everyone has a Portuguese bank account, so it's not that simple.

Um but yeah, but yeah, so no, I know all about the technicalities of um of setting up payments and and all the options, uh, but I I'm definitely interested in in PayPal as well.

Uh because I think that's a little bit more international.

Uh yes.

Will Vincent

So I mean that would be the ultimate, right?

Is to have Stripe plus PayPal but not have some crufty company with changing API taking a huge cut sitting over it.

Matthew Freire

Yes, yes, exactly.

Will Vincent

Well, and then there's we don't I you know I don't even know how it is in South Africa, but in the US, the whole taxes piece is just like a total freaking nightmare.

Um basically my take is it's impossible to do legally because no one even knows what the legal situation is.

But you're supposed to, you know, collect tax in every state and then every country is different, and where's your nexus?

And it's just like, you know, I on some level, I think most of the laws are like unless you're at seven figures, you're exempt.

But um it's I've spent so much time and talked to so many lawyers, and I don't even know how you would do it.

And most people I talk to, you know, anecdotally who run much more popular sites with much more money, they're kind of like, I don't know.

Matthew Freire

Not a nut.

Yep.

Will Vincent

Which is terrible, right?

Because it's like I want to do the right thing, but it's just like impossible to do.

Um so I mean, because there's services like like tax jar and stuff that will calculate different taxes and roll into your things, but it's like I was just curious if you had an answer to that.

Matthew Freire

Uh no, I I don't either.

I mean, uh part of me just wants to say wait for them to come knocking, but um

Will Vincent

the Yeah, exactly.

Like I'm not the biggest fish here.

Matthew Freire

Yeah, so that that's but obviously no, you want you want to know as much as possible before you you do something like that, especially in my case where the money's actually because now I'm I'm sitting in South Africa, so I'm I'm earning it here, but it's going through a different country into a different bank account.

How does that and the taxes involved with that as well?

So but yeah.

Will Vincent

Have you thought at all about uh purchasing power parity or or changing the price based on where someone I mean this is something I've looked at because obviously, right, you probably get people saying I'm in Africa and I you know $100 is a lot.

Yeah.

Um have you what are your thoughts on that?

Matthew Freire

No, I'm I'm definitely pro the idea.

Uh so I I I do understand that that situation.

Uh I haven't set it up yet, but yeah, if there's if there's a a a doable way to implement it, then yeah, I'm I'm all for it.

Will Vincent

Yeah, I I haven't I mean conceptually I understand how you do it.

You can um Wes Boss implements this and actually I think they just on his podcast he just talked a little bit a little bit about how he implements it.

Uh and I guess using I think he uses Cloudflare so he can have confidence that someone is where they actually are.

Matthew Freire

Yeah, that's in a T T game.

Will Vincent

Uh but it's it would be nice if there's a little package that Stripe provided that made that happen.

But um I guess Stripe's got other things to worry about.

Yeah, yeah.

I mean I've been because I I I use Gumroad for my books, and Gumroad, I'm happy with the service, but I've you know talked directly to the CEO saying this would be really important to have and it's not on the roadmap for them.

Um so it is.

Will Vincent

So the way you've structured your your content, I had uh just some notes going because I I've gone through some of your videos, like PipEnv, you still use it, I still use it.

What are your thoughts on it's just got a new release?

Did that come out?

They said they were gonna do it.

Will Vincent

Did it actually come out?

Carlton Gibson

Whoa, oh, whoa, okay, I believe it got a new release.

I don't know.

Will Vincent

I mean selfishly, I hope they fix it just so I don't have to switch everything over.

Um, but there's issues with it.

But you're you're you're still using it?

I guess that's the question.

Matthew Freire

So so uh okay, well, I definitely have to put a disclaimer before saying something stupid that I'm definitely no technical expert when it comes to this stuff.

So I'm not uh no one is it for me it's it's kind of always an experiment.

So you read about it, you see, okay, well, this is what it says it can do, so let's just let's test it out and see.

And right, I haven't had any issues with it, so I don't see why I would why I'd move off of it.

And integrating Django and Vyron specifically with it works really well for me in um in editors like PyCharms.

The development flow is just it's too good.

I w I yeah, so there's no no reason for me to move off of it.

Will Vincent

Do you use Docker?

I assume not, if you're happy with Pit and V.

Matthew Freire

I I've played around with it a lot, and actually the site is well the API technically is using Docker under the hood.

Oh, but it's using uh an open source project called Cap Rover.

Oh, I don't know that.

Yeah, it's it's basically uh this guy that made a platform as a service that mimics like how Heroku works.

Uh it's probably one of the coolest things I've I've ever so

Will Vincent

it's like a Django hosting site that's cool?

Matthew Freire

Well anything hosting.

There's there's all these different apps that you can host.

Um and under the hood it's it's Docker.

So it's that's what I'm using.

Will Vincent

How do you spell that?

Matthew Freire

Uh C-A-P-R-O-V-E-R.

It used to be called Captain Duck Duck.

Will Vincent

That's way simpler.

Matthew Freire

Yeah, I don't know why they changed the name.

I've still looked at it at that.

Matthew Freire

I think SEO is brilliant on that.

Will Vincent

Oh, here it is.

Okay, we'll put it, we'll put it in the links.

Carlton Gibson

The VC was like, no, you're not having Captain Duck Duck.

Will Vincent

Yeah, well maybe we can uh so deployment.

I've uh I you've covered you cover uh uh several ways.

I think you cover AWS and DigitalOcean, and maybe is that

Matthew Freire

the AWS, uh Heroku, DigitalOcean, uh Python Anyway, and and oh wow, yeah.

And Caprova, which is which is technically any server, DigitalOcean, Linode.

Will Vincent

What are your thoughts on deployment?

I mean, because for m you know, for me, I we talk about this in the podcast.

Usually someone has one that works for them and they just use it.

And I'm often asked to do tutorials on all these different things, and the problem is they change so often that I don't know how I would keep up to date with them.

Um so I'm impressed that you have you know video tutorials even on

Matthew Freire

of these things.

It does provide a challenge because then uh I would need to go and update them.

Uh so I'm I'm a huge fan of DigitalOcean.

I I'm kind of that over anything else at the moment.

Uh purely because of the well, starting with AWS, it's just so much to take in.

They've they've cleaned up the the UI a little bit.

Will Vincent

It's very enterprise.

Uh yeah.

Matthew Freire

But really, when I was getting into it, it it's just a nightmare for a beginner.

I mean, you you click the services button and it it's just too much.

So yeah, so and even with all the resources, I mean if you're getting lost within the resources, that's a problem.

So yeah, DigitalOcean is simple.

It's um there's I think one one guide on their on their like documentation or community side of things, which is just how to deploy Django with Nginx.

Um and I mean if you follow that that's it, that's all you need.

And you get a really good understanding of all the pieces that fit together for how a server actually works.

So it's like the best of both worlds.

Will Vincent

And do they they do they do hosted databases or they still don't?

Yeah, just

Matthew Freire

a recent feature, yeah.

Will Vincent

Because that's a big to me, that was the biggest hurdle, especially when teaching it or even using it myself, was like, uh, it's just like I don't want to have to once you've used a managed database.

Carlton Gibson

Because you know, if you go to um I know um Azure, that you can they've got the app service there, and it's really easy to bang your Django app.

But what you're gonna do for a database?

Well, then okay, so they've got a hosted Postgres and you can spin up one of those, and oh hang on, but I can easily spend a lot of money there, so I've got to start thinking and the pricing's opaque, and it's and the same on AWS, you've they've got a free tier, you can get a micro instance, you can stick up, you know, your Django app, but then you you're not gonna run a database on that one little instance, and so you could look at RDS and you've got the same issue.

How do I spin up?

And you know, Heroku, they've got the the Postgres going on there, so you can spin up one of those.

But it's it's always the database, like pretty much, yeah.

All all you know, the droplet.

Yeah, the droplet's great, and you can get your free droplet, you put your app on it free, but I need a database.

Yes.

Matthew Freire

Yeah, that's true.

Uh so so with with the managed database that DigitalOcean provides, I find uh the because the lowest price is $15 per month, so that is not too bad.

Um if you just need to get something up and running.

And it's super simple, it makes a lot of sense how they've designed everything.

Uh, but the the pricing on AWS and Azure that I've experienced escalates ridiculously fast.

Carlton Gibson

And if you're not careful,

Matthew Freire

yeah, yeah, if you're not if you're not careful, but even still, I mean, I would say that most people who start using it don't fully understand, I I definitely don't fully understand uh how they decide when things need to scale up, like what the criteria is, because if they scale it up when they think that that the requests are starting to get a bit high, what does high mean?

Because that could if that's just 10 people and they think that everyone needs to have the best experience, then your costs are gonna be insane.

So that's why I prefer to just manage it with a fixed price.

Carlton Gibson

Yeah, no, I mean the auto-scaling is massively dangerous, right?

Yeah, it's if you're starting up a like a small project and we're talking about you know solo projects here, you've built some scratch, you you want to spin up a server, a database thing, you know, maybe a load balancer, maybe a a bucket for you know blob files.

You know, that's nice and containable, it's gonna cost you 20, 30, 40 a month, it's gonna be, you know, that's doable.

And then you all of a sudden click a button, it's like, oh no, we've scaled up, we've got three of these now.

And hang on, but that's 120, and then you know, I'm not serving that much traffic.

Yep.

Will Vincent

That's my actually that and that's it's the opacity rather than the price that I think is the issue, which is what you're getting at, which I have with actually Netlify now, which I use for my static sites, and I really like and I don't begrudge them getting a lot more aggressive on charging the last couple of months, but the way they do it is not clear at all to me.

They do it anyways, that's a separate thing, but so it's the not understanding it, right?

It's like I don't mind paying for something if I understand what it's coming from and I can evaluate that trade-off, but when it's unclear,

Matthew Freire

yeah, yeah, exactly.

Carlton Gibson

The the AWS, there was a story came past that you know, when the when you go and log in, it's like the a a choice button.

Is this for production?

And you're like, well, yeah, this is for production.

And if you click that button, you're automatically in like multiple availability zones or regions, you know, and that's that's a thousand bucks a month just to start up.

Will Vincent

Well, I guess if you're paying for it, you probably shouldn't be using AWS anyways, right?

If it's actually your money.

Yeah, that's

Matthew Freire

a that's a great criteria, yeah.

Will Vincent

Uh well, we're we're coming a little bit up on time.

I did want to ask you about you've got a new series on um packages where you're going through some popular packages on YouTube.

Yeah.

And TastyPie is one of them.

Yes.

Will Vincent

And you you you're so so tell me what I'm missing on TastyPie, because my sense is it it's a bit out of date, but you're quite keen on it, right?

Yeah, Carlton can add in, because Carlton used it quite quite a bit back in the day as well.

Matthew Freire

Yeah, I I I liked it.

I I have this thing for really simple packages.

I think there's a lot of packages that do so much, and it's like, well, I just had to learn Django, now I need to learn a package in Django.

Like there's you know, it just It never ends, it never ends, yeah.

That it's just a huge hole.

Uh, where some of these packages they they say this is the promise and they deliver on that, and that's it.

Uh, so you know what you're getting.

But I really like the the kind of resource.

So basically, the whole the whole idea is that you have a resource which you plug into your model into, and it's the same syntax as like a serializer and a form and all that.

Uh, so you'll have a model resource, and then it gives you all the URLs that you need for your CRUD operations, and it's in a uniform format, so everything's the same you can decide how you want to nest your relationships so if you have foreign keys you can decide how you want to embed that into the data that's coming back.

And yeah I just I found it to be if you have a real a really just a handful of models and you need to make that an API I'm I'm pretty confident that that would be your best bet sometimes.

But a lot of people have been saying do a comparison with the Django Rest framework and Tasty Pie and I mean yeah the the Django Rest framework's a monster so it's I don't know if there's much of to compare but but yeah it's it's still really I I really enjoyed it.

It's really good.

Will Vincent

I love that you put that on there because it definitely challenged my assumption that it was just out of date so that's kind of why I asked not yeah I was like oh I should

Carlton Gibson

it's kind of curious because you know uh Rest Framework's origin story is well there was Tasty Pie and you know it came along and but not me but like Res Framework came along and I and had these yeah you know this different way of doing it the view the generic viewsets oh the generic views view sets were much later generic views and serializers and that was Rest Framework's story and it's nice you know what

eight years later or something to hear.

Yeah no actually Tasty Pie's got it right the way it's doing this for some cases.

Will Vincent

Well are there I've just thrown questions at you the whole time are there any things you want to discuss or share projects or things you've been working on?

Matthew Freire

Well yeah uh I'm I've been really bad on on other projects at the moment I it's too many ideas and not enough execution.

Uh but no there there's I I think maybe I can I can throw this idea and and get some feedback on that.

So there's in my mind there's a there's a little bit of a gap between being someone who just got a job or just got into a position where they can they can actually use uh software development to to have a to make a living and the and the learning phase which is kind of this in-between phase which is like I'm trying to build an online presence I'm trying to build like an online portfolio I'm trying to get involved in the right projects I

'm trying to find people to work with or find projects to work on but there's just no real centered place for that.

I mean I I googled how to find other developers and it was like go on Twitter and I was I was like no that's that's not a a solution I mean that's Twitter's for everybody.

There's nothing like that for developers.

So I think uh that's something that's been playing on my mind as a as a side project uh that I think would be would be interesting to see how that how that would go out.

So I don't know what your thoughts are on that.

Carlton Gibson

My initial thought is that the thing that I recommend people to do is go to the meetups if you can.

If you live in the city and there's a meetup on Django and you're into Django go to the Django meetup because you know that's where you'll meet other people and then you'll get connections and that will be a way into a job and that kind of thing.

So in a if you can get some sort of face-to-face thing then super do it other than that yeah some kind of online where is that it's not LinkedIn is it like

Will Vincent

well there's Django I mean there's Django itself we've talked about that that it is intimidating but there's a lot of if you put the time in there's a whole bunch of low-lying tickets even documentation things that beginners can contribute to and if you've contributed to Django itself in whatever capacity that's certainly

Carlton Gibson

and to go to a jang to go to a Django con if you can you know if you

can get to one then you know go to DjangoCon because that's where you'll meet the community and it's just amazing and you know all those kind of

Matthew Freire

just got to quick quickly mention that in there

Carlton Gibson

I mean look DjangoCon's super gum

Will Vincent

that's how Carl that's how Carlton and I met I mean I do think it is that I mean it's it's that gap from junior dev to regular dev and it's just that gap of you know copying projects to what next.

I mean so I advise people to you know and because we can I can tell people that you know if you've built a blog or you've built you know a crud thing you've kind of already built everything but that's because I we understand the patterns and we we built those things.

So I try to tell people like you should build five to ten projects and you should take the time to think and look at exactly how similar they are because you have CRUD you have auth you have foreign keys and that's 90% of it but you just have to build it.

So don't just copy me like take the blog and turn it into I don't know to-do list or you know just kind of do the reps but I get that the problem is beginners get stuck and then they get really stuck and they don't know how to unstuck themselves and that's an unproductive space of time.

So I I actually the other day I was seeing this may sound random but to me it made sense so there's so there's this martial art card called Brazilian Jiu Jitsu and these brothers who teach it Gracie brothers they have an online thing called Gracie University where they have videos and they teach in a linear way the classes that they give and the way they've melded the two together is they say take the video classes practice on your own or wherever then you can go to a Gracie affiliated studio for your belt tests to prove in

person that you know the moves but you're basically not limited by lack of access.

And this so I think it's that combination of digital and in person.

So I often think of really what someone needs is they need one of us to look at their project and evaluate it and give feedback on it.

But it's really hard to scale that.

Yeah.

And if there was a way to do that if there's a way to scale that or a way to have a crew of people who you know got paid who could validate and do some sort of check mark.

I mean people ask the Django Software Foundation how do you know can I is there an accreditation course for Django the way there is for Microsoft things.

It's really hard to do well but I think that's kind of what you need is you need some sort of mentorship and you need so I don't know so I don't know exactly I I I don't know how you would scale that because the the reality is our time is valuable and I don't necessarily want to look at a hundred different spins on a blog but someone needs that so yeah it's that in person piece.

And you know there's they people have tried ways where you do an internship or something you take someone on and they commit to two years and you say I'll mentor you for a year.

I think there's actually quite a bit to that but that's you know people who've done it kind of get burned out on that because they train someone and then they

Carlton Gibson

difficulty we have as well is that say for instance we've got the Django forum or the Django users mailing list where you know there are people who know their stuff there and then that but they've only got so much energy and time and you know so you've kind of got to be at a certain level to be able to ask the question in a way that will get a suitable response.

But if you're not at that level and you just kind of you need help, you need a bit more mentoring a bit more guidance quite often the people who are active and they you know they're giving a lot of their time to to this forum or to this mailing list.

They just haven't got the energy to respond to you in a way that will get you to your solution that's where the gap is I think

Will Vincent

well and you may have this I mean I have people pretty regularly ask me to you know hourly get help with things and in general I don't because the time it takes to set up and this and that is just not worth it.

I mean I I sort of would like to do it but the logistics of it it doesn't scale for me personally.

What is what are your thoughts are on that right?

Because I I feel bad to charge someone kind of what my hourly rate would be if they're a beginner but the reality is you know that is what it is like if I can't directly turn it into a project or a teaching resource there's only so much I can kind of give.

Matthew Freire

Yeah I think it's um no I I agree with that I mean you can't you can't charge them that rate and you can't help every single person that says help your video didn't work or your article didn't work.

But yeah I I think there's there's room there not not so much to make it that that someone needs to mentor someone because yeah like you say it's it that just can't scale but the ability to connect people um I think is is actually more than enough if you can just provide connection an easy way of of connecting the rest will sort itself out.

Will Vincent

Yeah I mean yeah and I you know my quick take I tell people is I say okay you want to get hired with Django have at least three projects up on GitHub that are they can be really basic but just build them well and be able to back up your choices.

Contribute to Django and have a personal blog

Carlton Gibson

or like your top one person contribute to one of the projects in the Django ecosystem right if if you don't want to contribute to Django itself contribute to I don't know AN Django extra projects that

Will Vincent

because that proves you know how to work with people and you're actually part of the community having the three projects is something that you know I can just I want to look at code before I talk to someone in person probably and you know we can quickly get a sense of stuff and I'd rather talk about code than toss whiteboard questions.

Matthew Freire

Oh yeah for sure for sure

Will Vincent

yeah and then a personal blog just to share your story and give a sense of who you are those are kind of the three that's the three things I give people's advice.

Um but you know, and then it's hard to do all those when you're starting out and you don't have confidence in what do I set up my personal site with, you know, do I build it with Django and I would say that's overkill.

Just use Jekyll or you could use Squarespace.

It doesn't work.

Just use Django because like you're trying to get a gigantic Django, you know.

Carlton Gibson

And then you've got a little you're you're busy h hosting Django alert and you you know how to run it, you know how to deploy it, and you can show that to a person.

And it was it was more work than using Jekyll, but you're eating your own dog food.

Yeah, you probably know.

Matthew Freire

Yeah, yeah.

I agree with that.

Will Vincent

So if someone wants to connect with you or your work, what are the best ways to to do that online?

Matthew Freire

I would say uh you can you can send an email to mat at just django.com or just go to the contact page on on the website.

Uh or if if necessary, you can also go to LinkedIn.

I'll also send the link for that.

But I mean You're brave.

Will Vincent

I l I just updated my LinkedIn thing to like literally say, like, I don't check this.

Here's my email.

Like send me a real email if you want me to engage.

Yeah.

Will Vincent

But I admire if you're willing to wade through the pool of LinkedIn recruiter emails.

Matthew Freire

Yeah, I guess it depends on the person, but yeah, definitely emails emails gonna be better.

Will Vincent

Well, thank you so much for coming on.

Um, I've been a fan of your resources, so I think it's great that you're continuing to do them, and I've been impressed by seeing your evolution of content and layout and all the rest.

Matthew Freire

Oh, thanks so much.

I appreciate that.

Thanks for coming.

Matthew Freire

Yeah, thanks for having me on, guys.

It was awesome.

Will Vincent

All right, we'll see everyone next time.

Bye bye.

Bye bye.

Bye.