Django Chat

JustDjango - Matthew Freire

Episode Summary

JustDjango is a popular YouTube channel and website dedicated to Django learning resources. We discuss how Matthew learned Django, building the website itself, payments, mentors, and more.

Episode Notes

Episode Transcription

Will Vincent  0:04  

Hello, and welcome to another episode of Django Chat weekly podcast on the Django web framework. I'm Will Vincent joined as ever by Carlton Gibson. Hi, Carlton Halliwell. And this week, we're very pleased to have Matthew Freire of Django on. Welcome.

 

Matthew Freire  0:18  

Hey, thanks for having me. Thanks for coming on.

 

Will Vincent  0:20  

So I've from afar seen, you've been pumping out great Django content for well over a year now. And now you have both on the first on YouTube is when I saw you, and then now you have to just Django comm site. So I'm 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 a way to Django,

 

Matthew Freire  0:44  

so I didn't study any kind of 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 is Wasn't really too in depth, but just kind of introductory module. And after that I was kind of hooked on the idea. 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. So the 1600 page PDF that came along with it, and

 

yeah,

 

Will Vincent  1:23  

I wonder who use that. I wonder if anyone?

 

Matthew Freire  1:26  

Well, I can't I wouldn't lie and say I used it, but it definitely 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  1:38  

And how long ago was that? Just so listeners can get a sense of the journey? Yeah, I mean, for me, I'm only several years into my journey. So I don't want everyone to think everyone's like Carlton and, you know, 20 years into Jenga.

 

Carlton Gibson  1:51  

I'm not like, when did I start you? Before this? We'll talk about Matthew

 

Matthew Freire  1:54  

so when

 

Carlton Gibson  1:56  

I started in 2009 something I Then they got 1.1 point oh 1.1 that kind of yeah with Django

 

Matthew Freire  2:04  

reprogramming with Django? Django? Django? No, I came in like one point. 11.

 

Will Vincent  2:10  

Yeah. Okay. Oh, yeah. It

 

Matthew Freire  2:12  

was late.

 

Late 20s. Yeah, mid 2016 that I started. Really? Yeah, that was the first time I'd seen it. And so yeah, three and a half years going. Yeah. Yeah. going on for years

 

Carlton Gibson  2:28  

because Django one point 11 Cisco on end of life. So that had sort of, you know,

 

Matthew Freire  2:32  

oh, yeah, no, that was the the long term support. Yeah. I mean, obviously now completely moved off. But that's, that's when I came in. Fantastic.

 

Will Vincent  2:43  

And do you recall what resources were helpful back then when you were starting out? Because I imagine if you're creating resources now like me, you weren't always were entirely pleased with what was out there.

 

Matthew Freire  2:56  

Yeah, that that definitely was at top. I basically Learn everything from a YouTube channel called coding for entrepreneurs.

 

And oh, from just Justin's thing.

 

Yeah, yeah.

 

I think he was probably the best learning resource at the time. I use this website for a little bit probably about a month or so and then I then I kind of got the hang of it and was just then started building mine projects. So yeah, mainly him. He's the number one thing the number one resource that pops up interesting. Yeah,

 

Will Vincent  3:32  

I think for certainly for video he, he has been and he's probably still on the top. I don't I don't know him at all. Personally, 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. 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 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 does a lot of stuff. That's great. So then, and then do you use it so professionally now? Or is like, what's your day to day role? Because you've run Django, which is a lot of work. Are you able to use Django professionally, or, or not?

 

Matthew Freire  4:21  

Yeah, so I started using it professionally, about a year and a half ago. And so that was a mixture of things, whether it was freelancing or actual projects that could generate some money and actually working full time. So I've recently moved on to now doing just Django full time for the time being and exploring some other options but yeah, professionally, professionally in the in the traditional sense of the word for year and a bit

 

God and this is just Django, the Django site built with J.

 

Wouldn't that be a crime? If it wasn't? Yeah, that's kind of cool.

 

Well, well, it happens.

 

Carlton Gibson  5:07  

Django forums run on, you know, anything.

 

Matthew Freire  5:11  

Yeah, I think it just, it's, it's one of those things. It's like, you got to prove it in some way that you can back up. What What do you say? So, at least do the people that courtesy, and obviously, no one knows. But I mean, if, if you were to open source your project, which I have ideas of doing, then at least people can see that? Okay, so this is what a fairly built out Jenga project looks like. Yeah,

 

Carlton Gibson  5:40  

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

 

Will Vincent  5:51  

yep. So that the two kind of main areas I wanted to talk to you about today was was building just Django. I think there's a lot to be interesting about how you iterated through that. And then your content kind of your approach on things like using PIP M, which I use, and we can get into all that. But maybe what was the earliest stage of 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. Yeah. So why did you start with what was the prototype? Well,

 

Matthew Freire  6:26  

the very, very, very first prototype was probably a project I didn't even build. 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, to understand everything, Chris, to really understand everything. So that I think that was also something from coding, coding for entrepreneurs. That I found I worked with that for a little bit and then eventually you, you understand it and you realize, oh, but I wanted to maybe have this little tweak and then you add that tweak. This is this is now just a normal Django project. So not a not using Django rest framework or anything, just pure Django. And eventually, that just those little tweaks keep happening, which is then what builds on your skills and then eventually, the whole project is unrecognizable from what you kind of started with. And, I mean, I've, I can't count how many times I had messed up the database on on digitalocean and had to restructure everything and had to rebuild this entire thing from scratch. 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.

 

Will Vincent  7:52  

But oh, yeah, testing it because it looks fantastic. I know you just I think you just did a redesign with tailwind. Is that right? That's something I've played a little bit about but I really want to find the time to do How did you find tailwind since this is a Django podcast?

 

Matthew Freire  8:09  

No, I really enjoyed it. I'm not much of a CSS fan. Or actually, I'll say I'm not much of a front end fan. I don't think I have great UI design skills. where Adam wife and the creative of tail Wendy kind of has this as this reinforcement of a theme that you can build us 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, then a more creative approach. At least that's how I see it in my in my own head. So when you don't work with CSS at all, and you're just adding classes to HTML that removes an entire element of front end development. And yeah, I loved it. I think It was amazing. And I'm definitely gonna keep using it.

 

Will Vincent  9:02  

Yeah, cuz it's all about 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 always happens is then you just customize everything on a team project. You just make longer and longer names. Yeah. But all custom and it's a mess. Yeah. entail and I guess the whole idea is that from the beginning, with this idea of utilities, right, you kind of avoid that it's sort of Lego pieces you can put together.

 

Matthew Freire  9:30  

Yeah. Is that right? Yeah. I thoroughly enjoy it.

 

So yeah, your class names get really long, but you understand it. I think that's the point. It's, it's so readable. Everything. The as you read it, it does what it says. So it's so easy to understand. If you 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 in trouble. To use at all to move straight to it and just forget about it kind of

 

Will Vincent  10:04  

right. When How are you, Carlton jump in? I know I have a lot of questions because I've used I've used your site a bit because I, you sent me a link. And actually before that I had taken a look. I'm curious, how do you like what what does the models look like? Because you have your hosting videos, you have payments, like what are kind of the main models that you're, you know, now that with all these iterations, if you're willing to talk about Yeah,

 

Matthew Freire  10:27  

yeah, sure. Yeah. So the main, the main model is, is the cost model for sure. That's that in the lecture model? Probably. Yeah. Probably the lecture models the biggest now

 

Will Vincent  10:40  

because that's what a lecture within within a course like a one yeah.

 

Matthew Freire  10:43  

So I mean, I'll explain so of course, being well, being a course, which has multiple lectures in it, and each lecture can can contain a video right now you can't, you can't see the other content that's coming soon, but InDesign, it doesn't have to be a video, it can be a document or it can be other kinds of kinds of content. So like a quiz or a project. So something that's going to have a different form in the front end. So that's all linked inside a lecture can be different, different types. And so there's quite a lot on that this files that you can download links to get up descriptions, all the basically one of everything there's Boolean fields is character field is everything on that that's on that. And, 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. And the roadmap has then got like, is that the overseer of all the courses? So everything falls under that.

 

Will Vincent  11:48  

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

 

Matthew Freire  11:56  

Yeah, awesome. So if you right now, there's only one roadmap site, actually Kind of restructured where they used to be some, some Python courses and JavaScript courses, but I guess when your site's called just Django, everyone just wants to learn Django. So that's the more popular and everything but yeah.

 

Just Django and some violent and some JavaScript. And yeah, that's that's

 

sort of, there's

 

Will Vincent  12:22  

no point to having that. So having the roadmap because certainly like a linear approach is what people need. And it's kind of hard to that's exactly.

 

Matthew Freire  12:29  

That's exactly.

 

Will Vincent  12:31  

And you're using Vimeo, now, where you always using Vimeo to host because I think like, I mean, I'm partly I'm asking cuz like, like, I have a learn Django site we talked about last week, it's much earlier stage than yours. You know, there's sort of like Wistia and, and Vimeo are the two options I see up here and yeah, Wistia being maybe a bit better, but a lot more. A lot.

 

Matthew Freire  12:51  

Yeah. I remember evaluating a lot more expensive. Yeah, a lot. Now, I evaluated the options about maybe a year and a half ago, and you I had to completely write off Wistia. It's just it's just way too expensive. And so I was hosting on AWS. And that, I mean, that worked pretty well for for a pretty long time. And it's, it's actually really cheap. If you compress your videos and you store them on there, then so yeah, just like an S, I can s3 in an s3 bucket. And then you can set up your top front just to speed it up a little bit. Yeah.

 

Carlton Gibson  13:29  

Then what would you use for controls and things like that? Because that's where Vimeo comes in. Right? They got these nice

 

Matthew Freire  13:33  

faces on your videos. Yeah, you get to get more more analytics out of it. So you actually get to see how many how many views a video gets and how many finishes a video gets. So an impression so it ties in with Google Analytics as well, which is really nice. So you can actually start to get a more thorough understanding of are people actually watching this video or they're not? Yes. So that's that's the main the main reasons for switching it over. As well as I think there's a there's an attractiveness to using a service that's dedicated to one thing. So not to say that they are going to be that they will be amazing but I do have some confidence that oh, this is a this is a site that's that they only services literally just delivering video hosting. And some part of me really likes that and the pricing is also pretty good. So yeah,

 

Carlton Gibson  14:31  

but like I always like imagine that first not imagine but like, 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,

 

Matthew Freire  14:58  

yeah,

 

Carlton Gibson  14:59  

a another 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,

 

Matthew Freire  15:05  

yep. to being the video person. Yeah. I started using an open source video video tool, which is called playa, I don't know how you pronounce it, pl er. And that that integrates with Vimeo integrates with YouTube with your own videos as well. So I didn't I didn't have to spend a lot of time on on developing that, thankfully. But yeah, I wish I knew about Vimeo Swan 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 saves time. Yeah,

 

Will Vincent  15:42  

well, 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. Okay. Like you can you can, you can, there's a way to do it. It's private videos or I guess maybe it's private URLs. And I believe the but I find it you know, not as good as experiences, you know, Vimeo or Wistia, obviously, because you're you still have like the ads on there yet the flip side is it's free for the content creator,

 

Matthew Freire  16:17  

you have Vimeo pros, I'd say the the best option to go with got more than enough storage more than enough

 

allowance on on uploading and downloading.

 

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 trying to protect those videos.

 

Will Vincent  16:44  

Right? Yeah, 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 us video, we'll just we'll just note that that exists. And yeah, we didn't want people to create content Don't Don't steal it. I'll leave it at that. I did have so tailwind and react. Which one did you add first? I'm curious.

 

Matthew Freire  17:09  

Did you react?

 

Will Vincent  17:12  

And then just to have So you went server side Django DRF, and then react and then finally tailwind? Was that progression?

 

Matthew Freire  17:21  

Yeah. So the winner was suicide Django. There were a couple, a couple of pages where I would experiment with a react app purely for loading. Just the the course list here. And so I pulled out one, literally just one component that fetches all the courses and renders and nicer. And they eventually do that for what two pages and it's really not a great way to go about it, but because then you're managing so many react projects, but you get the hang of it so quickly, and then it all becomes react project. And then after that tailwind,

 

Will Vincent  17:58  

yeah. And did you consider using View at all or was it just react from the beginning ah

 

Matthew Freire  18:03  

no i i've not properly taken a look at view once I've learned react i think i was i was so hooked up get on it that it didn't didn't really make sense I wasn't being forced to learn it for any kind of project so it was it was meeting all my needs

 

Will Vincent  18:25  

Carlton you got a question? Oh

 

Carlton Gibson  18:26  

like yeah no like so I'm just interested in that because I you know, I always beat the drum for Carlton like sound yet. Okay, so on the front end side, I love Elm. And that's fine. And that the reason I use on there is it just keeps me out the whole JavaScript world and I build my things and I don't have to worry about JavaScript and then alongside that I use tailwind a lot. I'm big fan of tailwind, enjoying that massively. That's my happy little world and you know, you're welcome to come and join me in that or not, we're not gonna argue about it. On the other side, though, I always kind of try and render as much as I can status. on the server, I can see where a site like yours where you've logged in, and it's an app, you know, when you're in this kind of app environment, there's no reason not to go fully front end of the single page yet, but where you're looking at pages that you want to load up quick and you want, you know, for breadth first search engine, but purposes or for first that first load, I'd always try and render things server side, and then you know, sprinkle on an Elm element or, you know, a JavaScript element and like you were talking about, but you were saying that the, the React components, they kind of ate the rest of the site.

 

Matthew Freire  19:33  

Pretty much. Yeah.

 

One by one.

 

Yeah, no, I actually forgot this is a in between stage where I actually tried next JS for quite a while. You've seen that?

 

Carlton Gibson  19:46  

I've seen that pop up a few times. And people were like, yeah,

 

Matthew Freire  19:49  

it's server side, react, basically. Okay, so that was

 

that was something I was using for probably the better part about four or five years. months. And because of the exact reason you just said for loading for for SEO purposes. So I had, I had a test phase of articles that were being written and put on the site as well. Which I eventually went against which are now removed but during that time I was using next j s because I was using react so it was kind of like how do I use react but get the best of both the next year's for that and that just came with a lot of headaches because of trying to serve it in a in a cost effective way. Because basically the way it's set up is that you use their add on service to next which is the hosting service and it can it 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 attend sure, but for Salah dev it just wasn't worth it and then I decided to go single page app instead. Interesting.

 

Will Vincent  21:03  

And so you're just using I guess, React router. Is that still how you do URLs with Yeah,

 

Matthew Freire  21:07  

React router?

 

Will Vincent  21:09  

Yeah. And I noticed you have so you have you have a sub domain for your it's just Django calm. And then when you log in, it's learned. Yes. Just Django calm. I was curious why that structure? So these are two separate sites. I mean, but you're doing the login. Yes. So

 

Matthew Freire  21:23  

they just changed it to separate sites. The one is a is a landing page. And then the Learn Django has the actual learning app. So the reason the reason I did that was because I had a few ideas for what I wanted to do on the actual landing page itself, 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 a separate thing of Oh, if you will, if you want to learn Django then that's, that's on. That's on its own subdomain. It's

 

Will Vincent  22:01  

okay. Yeah. Because as I think there's a small SEO head if you use a sub domain, I believe, are they? I mean, they're vague about it, but I think these days, Carlton, do you know, I've been I thought there was some giant, giant myth

 

Carlton Gibson  22:20  

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

 

Matthew Freire  22:24  

Yeah,

 

I can agree with that.

 

Will Vincent  22:27  

Um, so identification your your you can log in with Google or with email password email username, I think is right.

 

Matthew Freire  22:35  

email and password. Yeah. Which is

 

Will Vincent  22:37  

email has it sorry, using Django all off there. How are you configured? Django?

 

Matthew Freire  22:39  

Django all? auth and then Django rest auth for singing up and okay.

 

Will Vincent  22:46  

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

 

Carlton Gibson  22:50  

this guy just asked us to learn, like, how does the How do you structure the auth for the subdomain is that shared domain cookie

 

Matthew Freire  22:57  

or not? It's just a authentication will jump to the integration.

 

Right with API, which is on another subdomain. Okay, okay. Okay. are

 

Will Vincent  23:07  

using the simple JW t pack? Yeah, that's right. Yeah. Yeah, we're gonna have David I think cuz we're gonna have him on podcasts. Oh, that's like the new Yeah, way to do it. Jose had the older rest framework JW T.

 

Matthew Freire  23:21  

Yes. Yes.

 

Will Vincent  23:22  

Very cool. So and payments. This is what 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 find it challenging to do payments on these kind of sites.

 

Matthew Freire  23:36  

Yeah, so all 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.

 

So I'm using stripe and

 

Will Vincent  23:55  

are using the new s the new was SLA Soc. The You know, the FCA

 

Matthew Freire  24:01  

ready. FCA? Yeah, yeah. Okay, yeah, so I'm using that it's so there wasn't really much of a decision so because I'm living in South Africa the this even more of a challenge for how you can get payments online especially if you try and do that in a react front end. So lucky enough I'm actually Portuguese. So with the Portuguese passport, it gives me a little bit more flexibility because stripe is supported in Portugal so like that, it was kind of I want to say only option but also like a no brainer in a way that I had to go stripe.

 

Will Vincent  24:43  

So you running it through Portuguese bank and they don't know South African support

 

Matthew Freire  24:47  

no South African support

 

Will Vincent  24:49  

Oh, wow. Yeah, it's it's crazy how they seem ubiquitous, but there's still so many countries are not in and then of course, you may have you know, those countries like Iran and stuff. There's lots of developers, 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 Yeah,

 

Matthew Freire  25:09  

it's tough if also with because a lot of the people that watch the videos on YouTube, also from Africa and then and you can't eat well, people living in Africa can use stripe as a payment gateway, your average person, not everyone has a bank account. So it's not that simple. But yeah, but yeah, so now I know all about the technicalities of setting up payments and, and all the options. But I'm definitely interested in PayPal as well. Because I think that's a little bit more international.

 

Will Vincent  25:46  

Yes. So I mean, that would be the ultimate right is to have stripe plus PayPal, but not have some crafty company with changing API taking a huge cut sitting Oh, yes,

 

Matthew Freire  25:56  

yes, exactly.

 

Will Vincent  25:59  

Well, then, there's We don't 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 frickin nightmare. 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 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,

 

Matthew Freire  26:36  

No, no, no,

 

yes.

 

Will Vincent  26:39  

Which is terrible, right? Because it's like, I want to do the right thing. But it's just like impossible to do. So I mean, because there's services like, like tax jar and stuff that will calculate different taxes. Yeah, roll into your things, but it's like, I just curious if you had an answer to that. Because I don't

 

Matthew Freire  26:57  

know. I don't know either. I mean, pardon me, just wants to say wait for them to come knocking, but the

 

Will Vincent  27:05  

Yeah, exactly like, I'm not the biggest fish here.

 

Matthew Freire  27:08  

Yeah. So that's but obviously, now you want you want to know as much as possible before you do something like that, especially in my case where the money is actually, because I'm sitting in South Africa, so I'm earning it here. But it's going through different country into a different bank account. How does that end the taxes involved with that as well? So,

 

Will Vincent  27:30  

but yeah, have you thought at all about purchasing power parity, or changing the price based on where someone? I mean, it's something I've looked at because, obviously, right, you probably get people saying, I'm in Africa. Yeah. You know, hundred dollars a lot. Yeah. Have you? What are your thoughts on that?

 

Matthew Freire  27:46  

No, I'm definitely proud of the idea. So I, I do understand that that situation. I haven't set it up yet. But yeah, if there's, if there's a doable way to implement it, then yeah, I'm also It

 

Will Vincent  28:00  

Yeah, I haven't. I mean, conceptually I understand how you do it you can West 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. And I guess using I think he uses CloudFlare so he can have confidence that someone is where younger they actually are.

 

Matthew Freire  28:21  

Yeah, that's that's such a small game.

 

Will Vincent  28:25  

But it's would be nice if there's a little package that stripe provided that made that happen, but I guess stripes got other things to worry about. Sure. I mean, I've been because I use gumroad for my books, and remember, I'm happy with the service. But I've talked directly to the CEO saying this would be really important to have and it's not on the roadmap for them. So

 

Matthew Freire  28:52  

it's interesting,

 

Will Vincent  28:53  

such as it is, so the way you've structured your your content, I had just some notes going because I've gone through so many videos like PIP Have you still use it? I still use it. What are your thoughts on it's just got a new release that come out? They said they're gonna do it? No, actually,

 

Carlton Gibson  29:08  

whoa, okay, I believe we've got a new release

 

Will Vincent  29:12  

just so I don't have to switch everything over because that the promise of it is nice is like, you know being like yarn or NPM but there's issues with it. But you're still using it. I guess that's the question.

 

Matthew Freire  29:25  

So So, 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 no one is that 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 I haven't had any issues with it. So I don't see why I would wide move off of it. And integrating Django environ specifically with it works. really well for me in, in editors like pi charms, that development flow is just too good I yeah. So there's no reason for me to move off of it. Do you use Docker?

 

Will Vincent  30:13  

I assume not. So you're happy with that. And

 

Matthew Freire  30:16  

I, I've played around with it a lot. And actually the site is all the API technically is using Docker under the hood. But it's using an open source project called cap rover. Where Yeah, it's it's basically a this guy that made a platform as a service that mimics like how Heroku works.

 

It's probably one of the coolest thing I've

 

Will Vincent  30:42  

I've ever so it's like a Django hosting site. That's cool.

 

Matthew Freire  30:45  

All anything hosting is there's all these different apps that you can host and under the hood, it's it's Docker. So it's, that's what I'm using. How do you spell that?

 

c AP AR VR. It used to be called Captain Duck Duck.

 

Will Vincent  31:03  

That's way simpler.

 

Matthew Freire  31:04  

Yeah. I don't know why they changed the name of that. I think SEO is brilliant on that.

 

Will Vincent  31:08  

Oh, here it is. Okay, we'll put it. We'll put it in the link. The VC was like, No, you know, I haven't kept

 

Matthew Freire  31:13  

Duck Duck.

 

Will Vincent  31:14  

Yeah, well, maybe we can start deployment. I've, you've covered you cover several ways. I think you've covered AWS and digitalocean. And maybe that

 

Matthew Freire  31:24  

is Heroku digitalocean. Python anyway. And,

 

Will Vincent  31:31  

and Oh, wow.

 

Matthew Freire  31:32  

Yeah. And Capra, which is, which is technically any server digitalocean linode.

 

Will Vincent  31:38  

What are your thoughts on deployment? I mean, because from you know, for me, I, we've talked 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. So I'm impressed that you have, you know, video tutorials, either They have these headings, it does provide a challenge, because then I would need to go and update them.

 

Matthew Freire  32:05  

So I'm a huge fan of Digital Ocean. I, I'm kind of that over anything else at the moment? purely because of the while starting with AWS, it's just so much to take in. they've they've cleaned up the UI a little bit.

 

Will Vincent  32:26  

It's very enterprise.

 

Matthew Freire  32:28  

Yeah. But really, when I was getting into it, it's just a nightmare for beginner. I mean, you click the services button, and 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 So yeah, digitalocean is simple. It's, there's, I think, one one guide on the on the like documentation or community side of things, which is just how to deploy Django with ingenix. 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 serve actually works. So it's like the best of both worlds.

 

Will Vincent  33:15  

And they, they they do hosted databases, or they still don't just add recent feature. Yeah, right. Because that's a big to me, that was the biggest hurdle, especially in teaching it or even using it myself was like, just like, I don't want to have to, once you've used to manage that

 

Carlton Gibson  33:31  

question, right? Because, you know, if you go to I know, as your that you can, they've got the app service there. And it's really easy to bring your Django app, but what you're gonna do for database Well, there, okay, so they've got a hosted Postgres and you can spin up one of those and Oh, hang on, I can easily spend a lot of money there. So I've got to start young, the pricing or pay console. And the same on AWS, you've got a free tier, you can get a micro instance, you can stick up, you know, your Django app, but then you're not going to run a database on it. That one little instance. And so you could look at RDS and you've got the same issue. How do I spin? And you know, Heroku they've got the Postgres going on there. So you can spin up one of those. It's it's always the database lady much. Yeah. Or, you know, the droplet. Yeah, the grid job. That's great. And you can get your free droplet, you put your app on it free, but I need a database.

 

Matthew Freire  34:17  

Yes. Yeah, that's true.

 

So so with what's the Manage database that digitalocean provides? I find the because the lowest price is $15 per month, so that is not too bad. 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 but the the pricing on AWS and that I've experienced escalates, ridiculously fast. And if you don't care if Yeah, if you're not if you're not careful, but even still, I mean, I would say that most people who stopped using it don't fully under And I definitely don't fully understand 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 if that's just 10 people and they think that everyone needs to have the best experience, then your costs are going to be insane. So that's why I prefer to just manage it with a fixed price. Yeah, no, I mean, the auto scaling is massively dangerous,

 

Carlton Gibson  35:30  

right? Yeah. It's, if you're starting up like a small project, and we're talking about, you know, solo projects here built from scratch, you want to spin up a server, a database thing, you know, maybe a load balancer, maybe a bucket for, you know, blob files. You know, that's nice and containable. It's gonna cost you 2030 $40 a month, it's gonna be, you know, that's doable. And then you all 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, not serving that much.

 

Will Vincent  36:00  

Yeah, that's my actually 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 natla phi 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 where it's coming from, and I can evaluate that trade off, but when it's unclear,

 

Matthew Freire  36:32  

yeah, yeah, exactly. I do that.

 

Carlton Gibson  36:34  

The AWS there was a story came past that, you know, when the when you go and log in, it's like, the choice button is this for production? And you're like, Well, yeah, this is for production. And if you click that button, your automatic multiple availability zones

 

Matthew Freire  36:50  

region,

 

Carlton Gibson  36:51  

you know, and that's, that's 1000 bucks a month just to start

 

Will Vincent  36:54  

up, but like I said, you're paying for it. You probably shouldn't be using any of us anyway. right if it's actually here.

 

Matthew Freire  37:02  

Yeah, that's a that's a great card. dariya Yeah.

 

Will Vincent  37:07  

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 packages where you're going through some popular packages. Yeah. on YouTube. Yeah. And tasty pie is one of them. Yes. And you're. So tell me what I'm missing on tasty pie. Because my sense is it's a bit out of date, but you're quite keen on it, right? Yeah, I don't think it I didn't because Carlton used it quite quite a bit back in the day as well.

 

Matthew Freire  37:31  

Yeah, I, I liked it. 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 this, you know, it just never ends. It never ends. Yeah, that it's just a huge hole. where some of these packages they they say, this is the promise and they deliver on that and that's it. So you know what you're getting. But I really like the, the kind of resource. So basically, the whole idea is that you have a resource, which you plug into your model into, and it's same syntaxes, like a serializer, and a form and all that. 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 find it to be if you have a really just a handful of models, and you need to make that an API. And 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 And I mean, the the Jenga restaurant mix of monster so I don't know if there's much of to compare, but But yeah, it's still really, I really enjoyed it. It's really good.

 

Will Vincent  39:11  

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,

 

Carlton Gibson  39:18  

I was like, Oh, she's kind of curious because, you know, rest frameworks origin story as well. There was tasty pie. And you know, it came along and bit not me, but like most framework came along and had these Yeah, you know, this different way of doing it the view, the generic view sets, or the generic views view sets were much later generic views and serializers. And that was rest framework story. And it's nice, you know, what, eight years later or something to hear? Yeah, no, actually tasty bites got it. Right. The way it's doing this for some cases.

 

Will Vincent  39:48  

Well, either. I'm just throwing questions at you the whole time. Are there any things you want to discuss or share projects, things you've been working on? Well,

 

Matthew Freire  39:57  

yeah, I've been really bad on on other projects at the moment, it's too many ideas and not enough execution. But know that there's, I think maybe I can, I can throw this idea and get some feedback on that. So this in my mind is that there's a little bit of a gap between being someone who just got a job or just got into position where they can, they can actually use software development to, to have a to make a living. And, 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 there isn't. I mean, I googled how to find other developers. And it was like, go on Twitter. And I was like, No, that's that's not A solution. I mean, that's Twitter's for everybody. There's nothing like that for developers. So I think that's something that's been playing on my mind as a as a side project that I think would be, would be interesting to see how that would go on. So I don't know what your thoughts on on that.

 

Carlton Gibson  41:19  

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 a city and as 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 if you can get some sort of face to face thing, then super do it. Other than that, yes, some kind of online. Where is that? It's not LinkedIn is it like

 

Will Vincent  41:48  

others 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 and 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

 

Carlton Gibson  42:04  

to go to a jack to go to Django around, if you can, you know, if you can get to one, then, you know, go to Django calm because that's where you'll meet the community. And it's just amazing. All those kind of I

 

Matthew Freire  42:15  

just got to quickly mention that in the I mean,

 

Carlton Gibson  42:18  

the consumer come

 

Will Vincent  42:21  

to South Carlton 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, 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 we understand that, yes, yes. So those things so I try to tell people like you should build five to 10 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 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 it. 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 actually the other day I was seeing this may sound random, but to me it made sense. So there's so this is martial art code 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 so I think it's a 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, 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 checkmark. I mean, people ask the Django Software Foundation. How did 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, I don't know exactly. I don't know how you would scale that because the reality is our time is valuable. And I don't necessarily want to look at 100 different spins on a blog, but someone needs that. So yeah, it's like any person piece and you know, they're they people have tried ways we 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 in the name. The 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 this stuff. And then that 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 this forum or estimating this.

 

Carlton Gibson  45:22  

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  45:28  

one and you may have this I mean, I have people pretty regularly asked 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 it's just not worth it. I mean, I sort of would like to do it, but it's the logistics of it doesn't scale for me personally. What do you what are your thoughts are on that right, because 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 teaching resource. There's only so much I can Kind of give?

 

Matthew Freire  46:00  

Yeah, I think it's

 

no, 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 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, I think is actually more than enough. If you can just provide connection, an easy way of connecting. The rest will sort itself out.

 

Will Vincent  46:43  

Yeah. And yeah, and I, you know, my quick take, I tell people, as 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 blow Don't just contribute your time one contribute to one of the projects in the Django ecosystem, right? If you don't want to contribute exactly self contribute to I don't know, I in Django, extra projects that 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 and toss whiteboard questions. Oh, for sure. 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. But you know, it's hard to do all those when you're starting out and you don't have confidence. And what do I set up my personal site with? Yeah, I build it with Django and I would say that's overkill. Just use Jekyll or you can use Squarespace. Just use Django because like you're trying

 

Carlton Gibson  47:49  

to get again. Yeah, well, it's true. I mean, you know, and then you've got little, you're busy. And you know how to run it. You know how to deploy it and you can show that to us. And it was a It was more work than using Jekyll, but you're eating your own dog food. Yeah. You know?

 

Matthew Freire  48:05  

Yeah. Yeah. I agree with that.

 

Will Vincent  48:07  

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

 

Matthew Freire  48:14  

you can you can send an email to Matt at just Django calm or just go to the contact page on on the website. Or if, if necessary, can also go LinkedIn. I'll send the link for that. But I mean,

 

you're brave. The contact page.

 

Will Vincent  48:35  

I just updated my LinkedIn thing to like literally say like, I don't check this. Here's my email, like, send me an email if you want me to engage. Yeah. But I admire if you're willing to wade through the pool of LinkedIn recruiter emails,

 

Matthew Freire  48:51  

yeah, I guess. depends on the person. But yeah, definitely emails, emails gonna be better.

 

Will Vincent  48:55  

Well, thank you so much for coming on. I've been a fan of your resources. So I think it's great to Likewise, you need to do them. And I've been impressed by seeing your evolution of content and layout and all the rest.

 

Matthew Freire  49:06  

Thanks so much. I appreciate that. Thanks for coming. Yeah. Thanks for having me on guys. It was awesome.

 

Will Vincent  49:11  

All right. We'll see everyone next time. Bye. Bye bye bye