Transcript: SaaS Pegasus - Cory Zue
Hi, welcome to another episode of Django Chat, a podcast on the Django Web Framework.
I'm Will Vincent, joined by Carlton Gibson.
Hi, Carlton.
Hello, Will.
And this week we're joined by Corey Zoo, who has a long history with Django, does SAS Pegasus, works at Tamagi, has a JavaScript series.
So we're gonna dive into all that.
Welcome, Corey.
Hello.
Happy to be here.
Thank you.
Thanks for going on.
So maybe we could quickly start what's your backstory getting into Django, and then we'd love to talk about these projects and a lot of the modern Django that you you've been doing and teaching others.
Yeah, sure.
So uh yeah, so I uh I studied computer science in uh in university, um, but didn't actually touch Python or Django uh until I sort of entered the workforce and um around maybe uh yeah, I don't know when it was, maybe like two 20, 2009 is maybe when I started using Django for the first time.
Do you recall what was the impetus for Python and Django?
Was it something work-related or was it on on your own sort of projects you you thought it might be a good solution?
Yeah, it was it was work-related.
So um, so my company, Demagi, we we do like healthcare-ish solutions primarily for emerging markets.
So we did like a lot of work in in Africa and and other places.
Um at the time we were doing a lot of.NET development um and building these actual like clinical systems uh for uh health record systems for the country of Zambia was was the thing that I was working on a lot.
Um and when we moved to more web applications, uh we were kind of evaluating the landscape and we're we're really torn about uh whether to choose Django or Rails, which was the other sort of like popular thing that people were using.
And Django was a little newer and it was a little bit uh sort of unproven.
Uh, but we had a few people in the team who were really bullish on it and uh and were kind of you know preaching the Python gospel, and they were like, this is you know, this is this is the right decision.
And so it was it was actually sort of like a relatively snap, you know, you know, we we we debated it for for a few days or or maybe a few weeks, but a relatively quick decision that sort of like you know drastically changed the course of of my professional development, I suppose, or or my career.
It's nice that Django's there in that story is the new hotness, you know, because Django now is the old stage.
You know, oh we'll oh well, you know, are we gonna use XYZ?
No, we'll use Django, but you know,
yeah, yeah.
Now it's the boring technology.
Yeah.
But I think web frameworks are a little bit boring these days, right?
Uh and just which is a good thing.
I mean, it's a lot of it is data science, and there there hasn't been, I mean, there's there's fast API, there's there's Falcon, like there's still some stuff, or was it not Falcon Phoenix?
I've been watching that Marvel show.
Um but there's less excitement on uh web frameworks, I think, in general, as opposed to like the link Python itself and um the ecosystem.
Yeah.
But in any case, I wonder I was gonna say maybe except
in the JavaScript world, I feel like things are still I I still feel like I have a hard time keeping up with with you know everything that's continues to happen in the JavaScript world.
Uh yeah,
but that's that's the overwhelming thing.
It's still kind
of pre-Cambrian, right?
Like there's not you're saying there's not sort of like a Django of JavaScript yet or uh or a Rails.
I don't think so.
I don't think there's a battery.
I mean it's a whole bunch of micro frameworks and there's Express, but I don't think there's a Rails Django equivalent um at any point.
No, agreed.
Not that I've not that I've found, or or at least not one that everybody agrees on.
Yeah, right.
Right.
Well, so I I wonder how much Python, because you're you went to MIT and you know, being based in Boston as I am, Python seems pretty common here.
Whereas when I was out in San Francisco around 2010, it was all Rails, all Ruby, all JavaScript.
So I don't know if there I wonder how much is Python was already kind of embedded and MIT, I think was one of the first to switch over to it um for undergraduate teaching.
It was maybe it was after you left though.
Yeah, it was it was after my time.
I yourself I did the whole uh intro CS class and scheme and Lisp, which uh you know, we when they switched to Python, we were like, oh these these guys, they they have it easy now.
We you know we were the ones went uphill, you know, to school both directions and and matching our brackets all the time.
And but um but yeah, no, I didn't actually I mean I I learned Python and Django at the same time.
Uh and so Django was really my first exposure to Python and and for a long time I didn't even really know the difference that well.
Like I didn't know when I was using a Django thing versus versus using a Python thing because it was all it was all new to me.
Um yeah, I had I had a similar experience that you know I was I had the Django book and I was you know using that and then but you know what's this Python?
You know, I mean what what are the deeper bits?
And then there was a book, um what was it called, pro-Django development or something like that.
Um, and it was awesome because the first chapter was like this kind of um from a Django perspective, this tour through the Python data model and through descriptors and you know, all these bits and bobs of how Python works.
And it's like, ah, yeah, that's uh Python, you know, it's that was a real eye up.
I should I should add that.
I keep I'm work I'm still working on the updates to my my bit Django books, and that's one of the big things is thinking like, should I should I have a chapter on just the basics that you need for Django?
Probably, because I mean you kind of need to know classes and mix-ins, and even if it's a little bit of a flyby, just sort of saying, instead of saying like you should know a little bit, saying, like, let me just show you some stuff, and as long as that's good, we can continue.
But otherwise you might want to go brush up on your Python.
Yeah, that makes that makes sense to me.
More work.
As someone who who learned a lot on the job and and often kind of followed patterns that I didn't really understand, and then sometimes they got me into trouble.
I think having that that small amount of foundation to just sort of orient you is often really useful and and like under underdone sometimes if you're just trying to trying to ship something or you know, get something out the door.
All right, maybe I'll add that chapter after all based on this.
But um, so Demaggi is really interesting.
We were we were talking about this before we went on the air.
So I've uh visited there for a Django Boston talk, and it's been, I mean, as you say, it's doing healthcare, but enabling, you know, digital healthcare in countries that don't that are using paper or what or whatever before.
So it's making huge advancements in public health.
But it's been around since 2000, you know, before 2006, right?
Because healthcare is kind of hot now, but Demagi's been there the whole time, right?
So I guess I'm curious what was that, what was it like in you know, 2006, 7 and um because that whole landscape feels very different than what it is today.
Yeah, in a way we were like way, way ahead of our time.
And like I our our founder, one of our founders, uh his basically basic idea was, you know, there were these rural health workers in, you know, in places like India who uh who were he thought that they could have a job aid that would, you know, help them uh you know, triage patients, ask questions, do checklists, and and sort of like make make the quality of those care visits better and and serve as like a data, a data system.
Um, but at the time, like even smartphones didn't really exist, uh, and and even sort of like those candy bar Nokia phones were like you know not that common in in places like that.
And so we we started on this these PDAs, like like uh, if you remember, like a palm tilet type of thing.
Uh and and anyway, so that was one of the very early projects that we did.
Um, and it they didn't really work that well be just because the hardware and and the ecosystem wasn't uh up to speed.
And then um we diverged into doing sort of medical record systems and and stuff in clinics for for a while, and then sort of once once the technology landscape had uh had matured enough and and the hardware had caught up and and uh feature feature phones, I guess is what we called them, but like those those like old Nokia candy bar type phones and then smartphones came in, then it became possible to to really like equip those those rural health workers with a device that could handle everything that they wanted to do.
And so that's you know, sort of five to seven years after we started was when we really started seeing uh successful projects and and starting to scale up uh kind of around the world.
That's really interesting because a lot of the um infrastructure that we had in you know Europe say, Western Europe, is just not there.
And so you read a lot about the jump straight to mobile technology in developing countries.
Yeah.
Yeah, and um and connectivity also uh, you know, is uh as as Will asked, uh is is an issue there.
And so we we built the whole thing to be able to be fully offline whenever uh whenever you didn't have a connection, um, and then sort of do sort of like a like a best effort synchronization whenever it whenever it was able to get data.
And so in the early days, especially, and even today in many parts of the world, it was common for someone to sort of like, you know, do their use use their phone, use their app for a week, uh, you know, visit a bunch of patients, and then and then go stand on top of a hill, you know, the the one place within, you know, 10 miles that actually get service and and sync up all their data and everything else and then and then you know come back and do it for another week.
Um, but so that would that was certainly a big and and and continues to be a big uh design constraint and a and a challenge uh with the applications that we build.
So that so I guess so the back end has been Django from the beginning, but then the front ends switch you know, switching and the different local storages, that's obviously changed a lot more as phones have developed.
Is that fair to say?
Yeah, that's right.
Um and and uh it's but it's it's actually only really been two big uh well I guess three.
There's a there used to be uh an old like Nokia backend, and then there was an Android backend, which is the most common one, and then and now there's a web version uh which also serves as like an online only iPhone client.
Can I ask about that client?
Because I I'm interested in this, but the the how do you deal if it's web-based, if it's in the browser, how do you deal with um storage being kind of trying?
Because you've got local storage, but that kind of gets deleted behind your back without you really knowing about it or being able to do anything about it.
Yeah, the the browser version is is online only.
Uh so we we assume if you've got a laptop, if you've got a browser, then then you've probably got an internet connection.
And are you um is it Postgres?
Like just you know, this is a technical podcast, so we can dive in a little deeper than most folks do.
Mostly Postgres these days.
Um we um so so the we we make this product platform called Comcare.
And it's actually sort of it's an application builder for these mobile apps.
And so you can you can kind of think of it like a like a web flow or like a Squarespace, um, but for like mobile applications that that end up on a phone.
Um and so because our uh our users are defining their own schemas, like they can, you know, they can pick whatever uh questions they want to ask, they can you know choose whatever data models, how they want to like update the fields and validation all.
So it's basically all of our data is completely schemaless.
And again, uh going back to 2008 or whenever when we were first designing and building this thing, um NoSQL was was all the rage and Postgres JSON support wasn't really there yet.
Um so we actually uh made probably one of the biggest technology missed decisions, uh probably maybe the biggest one, which which ultimately is on my shoulders.
But but so a lot of our data was in CouchDB and and some of it still is in CouchDB.
Uh but we are doing our best to move away from CouchDB and into Postgres.
But that's kind of sad because CouchDB was cool, right?
I mean, you know, it did all the schemeless thing, it would it had the REST API just sort of just there.
It you know, it did the sync, like you know, you had CouchDB, which would work in the browser and would sync to it, like which got to suit your use case, one would think.
Like, why was it disaster?
No, it was it was super cool.
And it worked really well for that sync thing.
Uh worked really well for um certain types of applications that we built, um, where it would just kind of magically handle the the syncing for us.
But um, but at scale it it has really become a problem.
I mean, at the our current app, I don't I don't know the numbers off the top of my head, but like, you know, our we've got order of magnitude, like, you know, hundreds of of servers, including like, you know, like certainly two-digit numbers of of database servers.
And at that scale, um we've had some issues with couch db, and like when something goes wrong with couch db, it's just it's not as easy to sort of fix it and troubleshoot it and everything else, just because it's you know the adoption isn't there.
Okay.
And so is this is the solution now Postgres?
Is that the the way you go, or do you favor something else?
Pretty much, yeah.
Um, for any sort of structured data.
Got it.
So you were at Demagi for quite a while, and then 2017, right?
You made the leap into um self em self-employment, right?
You're you're sort of at a hybrid situation now, but yeah, I'm curious what was the motivation for that, and then let's talk about your various projects because you you've been doing the you know out in the wilderness thing for not as long as I have, but almost as long.
How long have you been doing it?
Well, if I if I'm honest about it, seven, eight years at this point.
I mean, I worked at some startups along the way, but nothing that either got traction or I was an integral part of.
So um yeah, the last five years it's been my own show.
Okay.
Nice.
So um I so I'm sort of like so.
I I've I I said also before we we got on that you you you have a newsletter writing about kind of your journey, and so many of those things resonate with me, you know, the the up months, the down months, you know, trying to find reason to equate why sales are up or down, and um you know all that rings so true, right?
Is I find just the highs are higher and the lows are so much lower doing your own thing because um it's just you.
Yeah, yeah, totally.
I don't even look at sales on any regular basis.
I don't look at my analytics more than every month or two.
So that's a uh because it just as you
that's an impressive level of Zen.
Yeah, Zen or being overwhelmed by you know little kids.
But it's it doesn't change anything, is what I realize, right?
As long as there isn't a massive spike, there's very little of my day-to-day input that changes the output.
And um but it's irresistible when you go to do your own thing to see, you know, day by day, minute by minute, you know, sales at sales or analytics, right?
It feels it feels so good, it but the problem is you sort of attach yourself to the good and the bad, or at least I can't.
Yeah, for sure.
No, I think that's uh I think everyone everyone struggles with that.
And um yeah.
But anyway, so so uh yeah, so basically going back to your question, like I so I was I don't know if I said this, but so I I was the CTO of of Demagi during the during sort of this period 20 2007 to 2017 or so.
Um and by the time I decided to step down, you know, the technology part of the org was like 30 people.
Um at one point I probably had 15 direct reports, and it was like uh, so there were I was both burnt out and doing a bunch of sort of like work that I didn't love.
Like I I think of myself as a builder or a maker, um, and I I found myself doing lots of you know HRE managementy type things.
Uh and so I was I was just like, okay, I'm I I I need a break.
And then it was so I so I decided to go on a like on a six-month sabbatical.
And then uh in the first couple weeks, I was like, well, like what am I gonna do?
Because I'm not the type of person who who just like sits on a beach either, you know, like I like to stay busy and and and so I was like, well, and it was right around the same time that the um like I started reading articles on indie hackers uh about these people who were sort of like running these small businesses and you know making you know tens of thousands of dollars or or hundreds of thousands of dollars, like you know, working and living on a beach.
Living on a beach, yeah.
Like uh and and doing crazy stuff too, like you know, like selling candies from Japan or like like I don't know.
There was there was a ton of cool stories, and I was like, well, like I'm you know, I I can build apps, like maybe I'll maybe I'll try to figure this out.
And so um, but I I was very uh unambitious in my plan.
So I was like, well, let's just see if I can make a dollar just like selling something online.
Um and so I tried to pick something that was you know quite easy and and likely to to be able to make a dollar.
Um and so the first thing I I tried was this it was a product called Place Card Me, which is it's I I I still feel silly to this day talking about it, and and the fact that I still uh run it and it's it's made me like you know, fifty thousand dollars is is crazy.
But um, but it it's basically like you just upload a spreadsheet of of uh of names and table numbers for like a wedding, and then it creates a PDF file that like lays them out in um the layout of like place cards, uh, which are these things that you can like put on tables to tell people where they're sitting.
Um and then you know, people can download them, they can print them out, they can cut them up and and put them uh on tables for for weddings and events.
Uh that's that's you know, that's a real problem.
That's a that's a that's a a dollar to do that.
Um it was free for a very long time.
Oh charge more, charge more.
Yeah, it's still free if you if you are willing to tolerate uh a little bit of branding on the cards.
Okay.
Um but uh but yeah, now it's eight dollars uh for for sort of like a set of cards, uh, as as many as you want.
But that's brilliant, right?
Now, is that something that I mean I think I guess all three of us have been are married.
So is that something that the other there's all there's like this wedding industrial complex and there's all these like squarespace for wedding um sites?
Is that something that they didn't have at the time or have they built that in?
Because I seems like a great good idea.
They might come to you and say, we'd like to buy that, or else they just copy it.
Yeah, it's it's not something that I had seen in the wedding industrial complex.
It's more common in print shops, like like uh like a company that you know prints photos and photo books or something like that.
They they might have the ability to do something like this.
Um but uh but yeah, like uh I I wanted something that was super quick and easy and and like we we would have used it for our own wedding uh if we had found it.
And so that was that was like the seed of the idea, was like I was uh you know, I was like sitting there, um like well actually my uh my wife ended up uh on the night before our wedding or two nights before our wedding, like sitting around with a bunch of her friends and writing these things by hand.
Um but uh you know I uh I I saw other people just kind of typing typing the names into uh to like a Microsoft Word document or something like that.
And I was like, it's you know it's crazy that this is not a salt, a salt problem.
Well there's yeah, there's two extremes, right?
I've seen some weddings where they hire a calligrapher to do, you know, everyone's name, and then there's more of DYI.
Or in my wedding, we just had um like a buffet because we saw we'd been to enough weddings and seen, you know, it's like you get married, you're like, I'm gonna keep it simple, I'm gonna keep it small.
And it just is so much more complex and so much bigger than you think it is.
Like, even things like I didn't think about the fact that everyone is a plus one or just like cousins and stuff, right?
So I was like, well, I only know 20 people, right?
But you know, 20 plus 20 is 40.
But like, nope, it's like pretty hard to keep it under 100 for most people.
And the entire industry is designed to make you feel bad about not being extravagant enough, you know?
And so, like, there's all like everyone's just trying to one up at each other, and usually all your friends are getting married at the same time, and so you're going to these weddings, and everybody's kind of like, ooh, did you see the centerpieces?
And like, um, it's a it's a vicious thing.
Yeah.
Well, that's a great idea.
That I mean, that reminds me, and maybe you're inspired by uh what's his name?
Is it Patrick, who's at Stripe now, who has the like the Jeopardy game for teachers?
Bingo card maker, yeah.
Is that what um I I wasn't I I actually didn't find out about him until until later on after I'd already um kind of gone down the road of the place card thing, but but I do sometimes fashion my myself as like oddly sort of following his career in in sort of like you know on a on a much smaller scale.
Um but starting with like the paper printable thing and then and then you know sort of stair stepping into products that make more money.
And I wonder if I'll eventually end up at Stripe.
I wouldn't I wouldn't entirely rule it out, although I don't think it's likely.
So I worked at this company called Quizlet in the education space, and of the initial 10 people, four are at Stripe.
Um so and they're four of the best people.
So um Yeah.
Yeah.
Part partly because we were like our founder was roommates with uh one of the early Stripe engineers, and their office was next door, and you know, it's like if there's this hundred billion dollar juggernaut next door, um it's not a bad place to go when you're looking to switch things up.
Yeah, makes sense.
But anyway, so those next things, because you've you have what you've got so uh Sas Pegasus, what's the Jenko boiler plate?
You have this modern JavaScript series.
Carlton looks like you've got to be a lot of things.
This is what I want to hit you up about because I saw you um bl uh tweeting about uh your SAS Pegasus, which is just uh it's great, and the way you do it and the way you you you blog about how it's going and you know, I love that.
So can you talk about the those products and uh
yeah, yeah, sure.
Um and so yeah, so the place card thing, uh like after I did that and and I kind of started to get bored of it, and I was like, okay, I should do a new thing.
Um and then I was like, I like it's like all this code that I have to like redo, and so I kind of like copied the placecard repository into like a new thing and then started editing stuff.
Um and and I kind of realized like, oh, there's like this should be like there should be a product that gives you a clean starting point to like build sort of like a generic web application or SaaS application that's like you know, Django's Django's an incredible foundation.
I love it.
I think we all probably love it on this conversation.
Um, but it's uh I think of it as like a like it's it's it's not being opinionated about your your own model, like how how you uh do users and and that stuff, how you structure your project, how you uh do like UI stuff.
Um and so I wanted I wanted to produce something that would provide uh a more fully featured version of Django that that has a lot more, even more batteries included, I suppose.
Um and uh and then sell that as a a template for other people to to you know use to to build and launch their own product ideas uh super quickly.
Um so that was kind of the that was the genesis of the idea.
And I I will say like it wasn't it wasn't a completely like novel idea, like there were other products in other frameworks.
There's something called Laravel Spark for Laravel PHP, and then um there's a handful in the Rails ecosystem.
Uh and so, but I you know I looked around.
I think, and I I feel a little weird um talking about this, but like I think something about the Python Django community is they're so sort of like pro-open source and in in some ways like not like great business people.
Or like I I don't know if that's right, but like I I feel like the the type of person who uses Python and Django is often like you know an open source developer who's who's um you know, I like like the idea of making money, like even it's sort of even built into like some of the Django um code of uh I forget uh William what you were what you were calling it, but like some of the Django terms is like, you know, we don't we don't want people to like you know,
yeah, the Django trademark.
Yeah.
Um but yeah, so so anyway, so like there there just wasn't there was absolutely nothing in the space for um for Django as as like a commercial product.
And and so it seemed like uh a clear gap that um that was worth filling.
And how long have you been working on it now?
The like a year, two years, three years?
Like how how long has it been going?
It's yeah, it's a it's a little hard to measure exactly, but I I would say I probably broke around on the code base uh let's see, three years ago?
Okay.
About three years ago.
Um and it's it's basically been my full-time side gig, which is so it's it's getting half my half my full time uh for the last two years.
Uh okay, super.
And then you seem to have everything.
You've got like a bit of you've got a bit of bootstrap, you've got a bit of um Did you put Tailwind or not?
I saw you
the tailwind is uh experimental.
Okay, and but you've got like Stripe in there, you've got I don't know, you know, tell us the bit.
Yeah, yeah, exactly.
So so the idea is like kind of all the pieces that um hopefully you need to build a business.
So it's got Stripe for either like one-off payments or for subscriptions.
It it ships with either uh Bootstrap or Bulma or experimentally uh Tailwind.
Um so you can kind of pick your CSS framework.
I'm working right now, it's I'm working right now on kind of two versions, one which is sort of like a classic React uh Django REST API architecture where um you sort of have like the decoupled client server because a lot of people are interested in using that, um, versus one that's sort of vanilla Django models and forms, that type of thing.
Uh at the moment it's got uh it's kind of a hybrid version.
Um and we we might talk about that more if we talk about the modern JavaScript series.
But um so so at the moment it's kind of got uh it's a it's a Django server-side rendered application uh that also uh sprinkles in React in in a few different places.
Um if you want to use React, uh it's I like that architecture for uh as a solo developer, and I think it works really well as a solo developer.
Although I think for for teams it's often the case that people want uh you know, they want to have their front end devs and their back end devs and they only talk to each other through APIs, and so um, so now I'm working on on figuring out how to how to offer that version as well.
I think, yeah, I think in a kind of agency or small startup environment, they very much have this these these silos of those are the back-end people over there and they're locked in that cupboard, and here are the front front end people and they're sitting on gym balls and you know they're out here socializing with everyone else.
Which is interesting because I I've I've never actually worked at an organization that was structured that way, but but maybe it's just I mean I've I've I've basically mostly worked for Demagi and and maybe people didn't have a sense of how to split things up like that back when we were sort of breaking ground on architecture.
Because so I I guess the the the follow-up then is you know, how how much of your time do you spend on building you know features for the for the boilerplate versus you know promoting it and marketing and telling people that you know you you build it, no one buys it.
Well, that's because they didn't know about it.
Yeah, no, totally.
Uh you know, I I try to spend half and half.
Um, that's kind of my target.
Uh and I there's a book by um Gabe Weinberg, I think the creator of DuckDuckGo, and and somebody else whose name I've forgotten, called Traction, um, where they talk a lot about this, and they one of the things they say is like you should probably spend about half your time trying to get traction for your thing, and the other half um building it and making it better.
I think it probably as as you could guess, and maybe as as you guys could relate to, it it probably skews substantially more towards building.
Uh just because I find the building part to be a lot more fun um and a lot more interesting.
But um, but yeah, it's probably it's probably closer to like maybe maybe one-third, two-thirds.
Okay.
One third traction, one two thirds.
Because I've seen you, I'm sure I've seen you at the top of the orange site a couple of times, you know.
Um Yeah, like I I do, I I I have gotten lucky and and and managed to get a couple articles on uh on Hacker News, I think is what what you're referring to.
Um it's funny because those that's
to put a dollar in the pot if you say its name though.
So but I think it's just the JavaScript articles, right?
Where it's like, oh yeah, it's always like Django exists, and here's JavaScript.
That's my sense of Hacker News.
Like I always tease Carlton when he launches a new version of Django.
It's like, you know, for like a morning, it's on Hacker News, and it's like all these comments being like, is this still here?
You know, and then it's you know, whatever.
Yeah, people are still using Django.
Yeah, more
nothing I've written about Django has ever made it on Hacker News.
It's uh it's uh it's all my sort of like that that's my point.
Yeah, yeah.
So I I try I I am you know maybe too transparent about all the stuff that I'm doing and and how much money I'm making and sort of like like chronicling.
I do these monthly uh retrospectives where I sort of like say how much money I made and what I was working on and how the month went and and and stuff like that.
And and occasionally I will take some learnings from this uh sort of like solopreneuring journey and and try and distill them into something more general.
And and every once in a while that makes it on hacker news.
Um but it's the it's the business stuff, not the not the um technical stuff.
Okay, but okay, so then one more question on this and then I'll let Will jump in.
But um, if you do get a post on Hacker News, it goes really well, and you know you you get that, does that actually r translate into an increase in signups or increase in sales?
Or is it like they come, they see, they crush the server, they go?
Yeah, it's um it does, it not a lot.
Right.
Like I think I think I had one article I that I published around shortly after Black Friday where I talked about like kind of how I ran a Black Friday sale and uh my lessons learned from that and stuff.
And uh that did really well on Hacker News and I think led to two or three sales, which is I mean, you know, it's like that.
So the current sale price is is three hundred dollars.
So like you know, nine hundred dollars is is not nothing for uh for an article, although the article probably took me like 20 hours to write and edit.
So, you know, it's like not, you know, I I could be, you know, selling my time to to big corporations and and earning more than that.
Well, I guess at that at that kind of price range you are targeting um sort of agencies or companies or you know, people not necessarily check targeting the loan developer.
Uh I
I think I'm targeting the loan.
I don't know.
Like if I were targeting companies, I'd probably charge at least five times that.
Uh and I I've yeah, I've often thought about experimenting with with really big price increases, but um but I I I also like having lots of people using it and giving me feedback and stuff.
So it's uh yeah, it's a bit of a trade-off.
I that's always the the the who it's the the base camp folks.
What is it, 99?
I for I'm forgetting their their name, but they they always talk about this about sort of like the appeal of enterprise.
They talk about how they deliberately keep their price low enough so they can tell big companies to go away because they don't want to become custom.
But like the reality is, you know, yeah, you have one or two mega users, and the it's so much you know nicer to have one or two users who drive 60% of your sales or whatever.
But there's this like Death Star pull of then you do what they want versus what your general customers do, but it is where all the money is.
So it's on any product.
I think it's really, really hard to avoid that.
I mean, even I remember even Slack when it went public was like 60% of the revenue was 10 companies, even for Slack.
And I think that's probably not uncommon actually for a lot of things is that even a lot of things that seem like they're very customer focused.
The reality is you have a couple big fish who drive, you know, so much.
So it's it's really hard to resist that temptation.
And maybe, you know, it's not a bad thing to do, but uh I I've felt the same way on some things where I kind of want to do what I think the community wants, but if one or two people are using it and driving a lot of the sales, it's like, well,
yeah, it's a tough
judgment on what the right call is.
Totally.
I remember the the the one thing, the one the one moments I have had where I was just like, oh, I should be charging more.
It's like what there's there's been maybe two times where someone's email address was like, you know, like you know, Alice at like very big company that I'm and I'm like, oh they just paid like 300 bucks and they probably would have paid you know many thousands of dollars for this, and you know, but um but apart from that, it's but
they they kind of need the handholding though, right?
Like that's the thing is that at the at that price range, they expect and normally get a bespoke experience, a dedicated person, and when you're it's just you, it's hard enough to do marketing, let alone to you know adequately give the time to someone spending thousands of dollars on something.
Yeah.
Right.
I mean, just to make you feel better.
It's sort of like even if they have you know fifty thousand dollars to pay for a starter project, there's all this paperwork and all these things involved that you know you're probably not set up to deal with.
I mean, for f you know, for whatever amount, you probably could figure it out.
But like, I mean, we have the same, so the Django Software Foundation has this issue with grants, like especially we just recently we talked to um the head of the Python Software Foundation.
There's a lot of grants out there for open source, but most of them require like a detailed financial audit and all this extra stuff, you know, rightly so, that the DSF doesn't have the infrastructure to do.
So we sort of can't really get a five-figure grant because it comes with all these other things.
That's true.
So I think there's some analogy there.
Yeah.
I've been watching SaaS Pegasus and really happy that there is a paid product finally, because I share your thoughts that there's something about Python, Django, and maybe it's I've always thought it's make people are a little more advanced in their career.
Like a lot of times, people who want to build a startup, they go to JavaScript or Rails because they kind of want to make money.
Whereas Django and Python is a little either purer or someone's later in their career or they're at a bigger company where they're not as focused on the financials, from my experience.
So it does make the ecosystem around educational content, starter projects hard.
Um, I also think that uh, you know, because I've I have some a good friend who's a Laravel developer, and so he's always telling me about all the things they're doing there, where he's like, Yeah, for $100 or whatever it is, he's like, he just buys the starter project because he has a lot of clients, and it's just he builds it to the client, saves him time.
But my sense is Django is generally maybe with Wagtail, it's a little different, but it's used for more complicated things, or it's an agency that already kind of has their internal template.
So they're not um, there isn't that like churn.
It's not like kind of WordPress with batteries.
It's like you go to Django because you want a little bit more.
So I've always thought if you couldn't sell into the agencies, you'd have a hard time making it work.
So that's why I've been pleased to see that you know your project has worked pretty well because I always just like I have this project Django X, which is a much more basic Django starter project, and it has a thousand stars, but I didn't really bother doing more with it because I didn't think there was a market there.
So I'm glad that there's a market.
Like there should be hopefully multiple, you know, successful boilerplates out there.
Yeah, well, I'll I'll begrudgingly accept that, although I I won't mind if there's one.
Yeah, no, no.
That's a that's I I mean that's seriously though.
I think it's good for Django that there is a paid one, and yeah, if there's just one, all the better.
You know, Laravel is interesting because it's just um Taylor, the creator, like he owns the ecosystem of stuff, right?
So if you you know that if you buy the starter project, it contributes to Laravel.
Same thing with hosting.
Like he's it's I sort of look somewhat enviously that he's a he's a it's a dictatorship, he can just do stuff and it directly benefits Laravel.
You know, Django is open source community, so I'd say it's it's a little more complicated to add features in the same way as he's able to do.
Yeah.
Right, Carlton?
Like, you know, there could be an official Django template, but like who's gonna support it, who's gonna do it, right?
I mean, that's the thing, is like it's one thing to do the code, like all the rest that you have to deal with, like doing the updates, marketing it.
Okay, but like okay, so
we discussed in you know the past like things like um uh for security releases.
There is a pre-notification list, and you can you can apply to get on that if you're you're you know, we try and discourage it, and you know, you've got to have a real reason why you need to be on that list.
Um, but you know, there are some big companies on that list, and one thought is well, you know, perhaps we could charge for that.
But no, we we wouldn't do that because that's charging for access to security that's important that affects everybody, and it's just not you know, but why couldn't that company pay?
That's a giant megacord, they could pay for that, they wouldn't even that wouldn't be a problem, but that's just not how it goes, that's just not how Django is.
And you know, once you go down that road, does it does it just not destroy everything that makes Django special?
Because it's not really the frame.
I mean, the framework's great, it's awesome, and it is wonderful, but it's the community and everything that goes with it that makes Django worth hanging around for.
It's I don't know.
I was gonna say in this in this conversation, I've I've both wondered if I'm now the destroyer of Django and wondered if the Django Software Foundation is gonna compete with me.
And both of those are
the things that you're gonna do, no one would do that.
No, I mean I can have Joker.
Yeah, um there isn't capacity for that to be done by Django, you know.
We wouldn't just the thought that somehow the DSF would set up a hosting company, like like you know, um there was that um Rails engine thing that was kind of tied in with Ruby on Rails.
It was like go to the Ruby on Rails site and there was a hosting option, sort of top, front, and center, and back in the day.
Interesting.
Yeah, the DSF, just to assuage any fears, the DSF is so much smaller than maybe if people are even aware of it, then think that it is.
I mean, the Python Software Foundation has eight full-time people and all this stuff, but there's a board of seven, we meet once a month, we have regular emails, but it's basically Anna, who's the president, does quite a lot for free.
I'm the treasurer, I do a bit, and the secretary does some stuff, and then other people help, but you know, there's no capacity there.
Like, you know, even the Django survey.
So last year we and I kind of led this, had a survey on Django usage, which we hadn't had for a number of years.
And um, you know, this year we're gonna um collaborate with JetBrains because JetBrains does it for the Python Software Foundation, and that's great because it's like I I don't have the time I did last year to do that again, you know, because it's all volunteer.
So I I I agree, I think it's part of the specialness though of Django.
Like it no one, very few people are directly getting paid, and even even the fellows that we have, Carlton and Marius, I mean, they're probably making below marketing.
They're definitely making below
market rating.
Don't be a fellow because you think, oh, you know, that's that's that's the highest paid job I can get.
No, it's not.
It's yeah, you do it for other reasons.
But uh, but speaking of your boilerplate, I wanted to ask about Stripe because I've had and actually Carlton, so so we all three of us can talk about Stripe.
So Carlton's almost done with adding it to
the Django.
Some things from the board will oh yeah, we'll talk about that.
Oh god.
Yeah, no, so we're up that we're updating the we're updating the um uh the stripe integration.
So they changed it all for the um for the European, uh, I don't know, whatever it is, SCA rules.
And so we we updated the front end bit, and there's a bit where you manage your subscription where we're still using the old API and we want to use the hosted choke stripe checkout because that will just be so much easier than maintaining the code ourselves and doing all the API hits and you know all that stuff, which it's okay.
We've got the code there, it works, but to maintain that code has a cost, and it would be much better if that code just could be deleted.
Um you're reminding me of that thing, Carlton.
I mean, let me maybe just for for anyone who's listening who's curious how the DSF actually works.
So, for example, for this new thing, we need to have a privacy policy.
Was it the terms of service, which we don't have currently on the Django site because we haven't needed it?
So, okay, how do we do that?
Right?
Like we're Django, we need to do it properly, so we need to have a proper lawyer and have proper thing.
You know, we don't have a regular lawyer and we don't have the money to pay a top flight firm.
So I've been talking to the Python Software Foundation, I've been talking to you know, so someone at Tide Lift, you know, because we want to get someone good, but we want someone who's not gonna charge us a lot, or we'll do it pro bono.
So it's this whole process just to get that, right?
So if you think about what that takes, and that's all in my free time, you know, me and the other board members.
And then the idea that we would have, you know, a job site or a boy, you know, a starter project, it's just like the madness of thinking that would ever happen is
is not gonna happen.
Yeah.
Well, and in a way, that's it's it's also sort of like one of the big reasons why I decided to start going out on my own and and um and sort of like fully owning and controlling everything I do is like I, you know, I it's inevitable, you know, at a at an organization of, you know, more than a handful of people that that you'll just you'll run into consensus building and bureaucracy and and these other things.
And um, and I'm I'm kind of like an impatient person, I suppose.
And so being able to just exactly like be a dictator and and make whichever decisions I want and do whatever I want is is very satisfying and freeing.
Um and so that's that's one of the reasons why I love just having my own businesses and why I haven't even like considered sort of like trying to hire anybody or anything like that.
Yeah, you still have all the scar tissue of of the the cruft of everything else.
Well, I mean, and for for Django, I mean, so at Quizlet, like I did our first terms of service and um copyright, and you know, I basically I can say this now, you know, I basically like looked at YouTube and changed some words around.
That's that's what all the startups did because it was a startup.
So what's the difference?
We we didn't have money to pay a fancy lawyer, but you know, Django, Django is Django, so we have to do and we'll do it right, but in the context of you know, we're not Google where you can just have an in-house council do it.
So um it slows things down rightly so.
Um, but you know, I'm sort of like you, I'm used to just being dictator of my own little world, but um yeah, there's reason things slow down in big places.
Like, but the with Django, things always feel like they're moving slowly, but they're kind of inexorable in that you know you look back a year and it's like, oh wow, we've done all of that, and we've you know, two years, oh that all of that happens, three years, all of that happened.
But any given day, it feels like things are taking a while because it's a big ship, so it takes a long time to turn.
But anyway,
I will say the um the the effort that Django puts into its release processes and the LTSs and the you know the like deprecations and and all of that.
Like I I I can't imagine how much work and planning that all takes, but it's it's incredible.
It's I feel like that's an incredible thing that many other uh frameworks don't don't get right in the in the way that Django does.
Oh, cool.
Well thank it does it, yeah, there's a lot goes in.
I mean we have to the processes have been set in place over time, and that's you know that really helps.
But you know, every month Maris and I are busy, you know, making sure that train stays smooth, you know.
So that's good.
Thank you.
Will what did you want to ask Corey about Stripe about?
Because you mentioned it and then we got distracted.
Oh, we're just having a great fest about changes.
And um as we all know, Stripe, you know, Stripe is constantly making changes, I think which generally improve the product, but it's not always the easiest thing to work with.
Um and and I know one of the selling points of Saspegasis is you have integration, so you probably feel you need to keep up with those changes.
I I I do, although
because they still they they still the old ones still work is the thing, right?
They have a quite a big deprecation period.
Yeah, but they don't work with new cards sometimes.
Um but but like you, I think um I I suspect that in a future release, Pegasus will just move over over to checkout also, just because just like you, it's like I I don't want to continue to be on this this Stripe financial system treadmill.
Um and I think uh more and more companies are using Stripe checkout.
I think even consumers and especially like prosumers, like like business consumers, are sort of they know what Stripe is, they're not freaked out if they get redirected to Stripe when they're checking out on, you know, you know, buying a subscription or something.
So um and I've I've talked to my Pegasus customers, and um there's a there's a handful of them that like that they have like the fully bespoke UI that they can customize however they want.
Um, but most of them are like, no, checkouts fine, that makes sense.
And and some of them actually the majority of them actually prefer checkout just because then they can sort of be instantly up to date with everything uh as it comes out.
To continue on Stripe, so um I had the at for for a while that I think I guess I still have this top stripe Django tutorial, um which I wrote on this um site testdriven.io that my friend Michael Herman does.
Um and so they the Stripe team of like five community people emailed me saying, Hey, you need to update to the new thing, and there's all these emails, and I was like, you know, the amount you all have gotten paid to email me to hassle me about this, you could have just done it.
Um so like I I feel like there's sort of a Stripe is great, but it's like y'all should just have the Django version of how to do this.
You should be like you should have the express version, the Rails version.
Like it's in madness that you're relying on the community to do these things.
Because they still they have, I think they've got the Flask kind of sort of version.
But it's like it's like one one day a month, pick one of your engineers just to maintain, you know, the full you know, integration in like the top four or five frameworks.
But I guess you know, now that they're doing checkout, it that kind of goes away.
And it does, as you I guess as we said, like people are used to that flow because it used to be scary to be redirected somewhere else, even to PayPal for a transaction, but it's such a pain.
Um and it yeah, it slows things down because every developer has to update their stuff, and you you know, you don't want to get the security stuff wrong around um tokens and stuff or financial things.
Yeah.
Anyways, yeah.
I will say like the number of financial edge cases that I'm sure that they understand the way like the different points in the process where a transaction could fail or where an additional authentication stake step could happen.
Like I think that web of that network of like possible states that things could branch out to is just like terrifying to me.
And I'm too big.
Like I think the the root source of the complexity of their API is that they're attempting to design something that is like resilient to failures in in any of those different parts of the process.
And and yeah, but it it does feel weird and complicated if you're just like, well, I just want to like give you a credit card number and like charge it, you know.
Um yeah, we don't want that complexity.
So my my friend from Quizlet, who's a who's a manager at Stripe, um I don't think this is pre I can say this.
Um so they're still a Rails monolith, um, still to this day.
Um, but they're which is kind of you know, to that question of like do monoliths scale, it's like well, Stripe's pulling it off, um, you know, as well as Shopify, but they're switching over to Java because on top of everything else, they're you know, they're basically like Google in terms of size, and they've had a big process around how do we upgrade, and and they're switching over things to Java, but it's still fundamentally just a REST API, is what the company is, right?
So yeah.
So finally at this stage, they're they're hitting a limit on what the what the Rails can do, and also they've got so many engineers, it's kind of like you need them to do stuff, right?
So, like if you can shave some transactions off, it's like I think there is some truth to that, right?
We've all worked on teams, like it's really hard to at some, you know, you want people to be busy, but it's also like it's better to be rebuilding the ship all the time than just working on a side thing.
Like there is that temptation.
But uh okay, that's totally back when I was
back when I was learning, I there was a thing about scaling, and the the the sort of the tip, the advice was this was like first of all, be able to scale it, right?
So be able to go from one server to two to three to four to five, and then when you've got that down, which like clearly have, then start worrying about the cost per server, right?
So if you can trim off 10 cents here, that doesn't matter at the beginning.
Don't bother trimming off 10 cents at the beginning because it's totally pointless.
But when you've when you've scaled out, then that 10 cents obviously becomes a lot because you know you've you've multiplied it so many times.
So, first of all, you know, duplicate your setup or whatever cost, and then cut the cost per thing.
And Striper at that stage now, right?
They're all and have been for ages, but they're they're like, yeah, let's cut the cost here because that will make a massive difference to our bottom line, I would say.
Anyway, Corey, I wanted to uh come swing back to JavaScript and Django.
And like so you've got this Rails thing, right?
Um not Rails thing, this um React thing, and that's one way, and then uh how how would you how do you sort of think you'd write you're writing it yourself, how would you rig up the front end, the the JavaScript to to Django integration?
What would you go for personally?
Oh uh and if I'm running it for myself, I would I would definitely like like I I I have a whole uh you know uh article, series of articles uh that basically talks about my opinions on this, um, although uh I think they're more general than that.
But I like I would want to use modern JavaScript, I would want to use React where it made sense, like where there was gonna be either a stateful or uh you know a complexly interactive user interface.
Um and I would want to use Django for all the boring stuff that um where there isn't.
So like, you know, like your password reset form or your um you know, like your account settings page potentially or something like that.
Um and so I I like having a you know sort of like a like a quote normal Django project um and then a separate JavaScript like build pipeline that is just taking like you know, a like a it's like a standalone JavaScript project, but then the output of that uh ends up in a bundle file that's served like a normal Django static file.
So inside static and then for inside the static root type thing, you get you collect static ones.
Yeah, yeah.
Um and I I don't know, like I've I've been doing like that.
That was when I first just sat down to make placecard me, I was like, okay, this is like I'm gonna do this like placecard builder thing where it's like there's gonna be like a lot of complex interaction, and I wanted to like be modern whenever so I was like, okay, I use I use React for this, that sounds good.
And then like just like figuring out how to do React inside Django was like not at all clear.
Um and so I wrestled with it for a lot and then and then sort of like arrived at this solution of like uh like once once I wrap my head around like oh all this fancy complicated React build stuff, at the end of the day, it still just produces a JavaScript file.
And that JavaScript file can run in a browser.
Yeah.
And then you're like, oh, well, I know how to use JavaScript files in Django.
Uh and and so like once I had that sort of like uh epiphany, then then I realized like, oh, this is really straightforward.
And and I've basically used that architecture for every other project I've worked on to date, and it's it's always worked really well for me.
Um so I can like move super quick on the Django stuff that's that's really easy, and there's you know, there's forms and there's um views and templates, obviously, and and all of that works well, and then and then like reach for React whenever I need to do something complicated, and um and then I have that sort of access to all that that modern JavaScript tooling.
Well well, I think your um so Americ Augustin, who's a longtime Django contributor, he also has a series on this.
And I've the last couple years, I've anyone who has questions on this, I've referred them to your series and to his.
Um his is a little bit shorter, but he
more or less says similar thing.
It's like consider the static file.
Yeah, he says he
says, He says the same thing.
Yes, I think his is maybe a little more of a choose your own adventure, but he I think ad advocates for the same approach because uh yeah, as you say, like and I I went through the exact same thing.
It's like all the build complexity is just local.
It's what you ended up end up serving is a single file.
So it's sort of not really Django's fault that it that all is complicated.
Yeah, exactly.
But it seems like it is.
I think people what people want though is some sort of run ser integration with run server, right?
So you just fire up run server and but no, you've got to have your JavaScript build watcher in a separate terminal.
So you need two tabs for that.
Yeah.
One to watch the JavaScript and one to build.
I don't like I I know that people do try to do fancy stuff to make JavaScript build things happen in the Django world.
And like, you know, you have like we used to use a project like called Django Bower or something, where you like defined your Bower dependencies in Python, and and like it it kind of sounds nice at first, but then you like hit something that doesn't work, and then you're like trying to troubleshoot this like crazy, it's like someone else's implementation of a wrapper around like calling a JavaScript and and like at the end of the day, I found that a lot of those tools that try to make
specifically front-end development, I guess, uh easier in the Django world.
Like they often um they work until they don't, and then once they don't, you're just kind of like in a really tricky situation.
And it like learning the actual like how to use NPM and Webpack and whatever else is like it's not that hard.
And then you're using the same tooling that the entire rest of the world is using, and then when you Google something, it's like you know, like the answer is relevant to you instead of like you know, not really being sure where in the where in the stack the the thing is failing.
Um so I I I generally shy away from the from the type of thing that would try to to make React work in run server.
Amen.
There we go.
Well, I think that's I think that's where everyone gets to at a certain point where you appreciate what a third third party package does, but unless it's unless you really, really need it, it's like I'm gonna end up rebuilding this anyways, so maybe I'll just peek at the source code and see a little bit.
Oh yeah, that's nice.
There there was a moment there was a time where I was like thinking that that Pegasus should have no third party dependencies and and like I would I would be opinionated about about everything, but but ultimately I I selectively picked picked a few that seemed like obvious choices, like ALAuth, um and a handful of others.
Yeah, you don't want to build that yourself, no.
Yeah, yeah, exactly.
But it's hard to know what where to drop that line, you know.
You know, it's like is there a certain number of GitHub stars where you're like, okay, this thing is probably like acceptable, or maybe you'd like just have to look at the source.
I don't know.
I think in the Django world, if it's been going 10 years or more, it's safe.
And you know, anything less than that, you've got to be scared of the side of the side.
If Django is doing it, it's probably okay.
That's that's a good metric.
I like that.
Yeah.
Well, there's there is um, maybe I'll put in the show notes there on the Django forum, there was uh this discussion around kind of the top five or ten packages that people use because I feel like there are a couple, all off would be a probably the first one of the first ones I think of that and rest framework, I've you kind of need to use it.
And rest for yeah, and rest framework.
Um but then it does sort of fall off a little bit.
Uh, but it is an open question.
I guess so I know we're going over on time.
I I did want to ask one last question, which is deployment, if I could, because you know, partly Carlton's been working on button.dev.
Oh, yeah, it's a simpler changing.
Yeah, you know, I'm getting it.
If it wasn't for this crazy pandemic and my kids always being off school with cold, it turns out the kids the kids this week had uh colds and we're all like, oh no, they've got COVID.
And we got them tested and they didn't.
It's like, wow, what a weight off.
So we're so close to getting vaccines, you know, like another month, another two months, we'll all have vaccines and it'll all be, you know, slightly different world.
But it was like, no, we've gone this far without it, and then it was a mega stress.
But you know, bar all of those sorts of things is coming on nicely.
But yeah, anyway, deployment go.
Yeah, so just so just you personally, we don't need we don't have time to get into the full deployment, but like what what do you like using for your personal stuff?
Oh, I I have a I have a Linode that I host like six projects on.
Yeah, uh,
20 bucks a month and it works great.
And I love it.
Um but uh but for for Pegasus, I I also like like I I include Docker and and like uh you know Heroku and Digital Ocean and uh Google Cloud and all those options.
So I've I've I've experienced all of the things.
I I if I were to pick a number two, I would go with Heroku.
I I have had generally like a very positive experience with with integrating Pegasus with Heroku.
Um but yeah, I just I just like I I got good at running servers in my Demogi days.
Uh since I I guess all of us are like old enough that like you know pass probably didn't exist uh when we were first deploying applications.
And so got comfortable on on you know just admitting and and I feel like from a cost perspective it's just like it's so much nicer.
Yeah, and when you're doing solo projects, cost actually matters more than
it's running five, six, seven, eight, nine, ten projects, and it's not really a problem and it's the same amount of money as it was when we were.
Yeah, it's interesting that DigitalOcean has really has a new app platform.
Like that's something I haven't played enough around with.
Like it seems like they're making a a play at Heroku like simplicity.
Um, but uh you know, as I like I have got my own deployment system that works, and I'm not a deployment engineer, so and I'm just gonna stick with it unless I have a reason to play around.
I am gonna use button.dev though.
Um but aside from that, I'm not playing around with other stuff.
I I'm excited to try button now, so yeah.
Well, okay, well, it's coming, it's coming, it's coming, it's very hu limit limitations of human power, but it's not far off now.
Well, there is um if people go to the website, Carlton, they can sign up on the list
to be notified.
If you put your name in there, I'll email you quite soon with you know, hey, come on, early access, let me show you what it's out.
It works for me, and now I need to make it so that I can wrap up components for other people.
It's that you know, you're not gonna have um, I don't want you running all my shell scripts.
Yeah.
I would say one last thing, what you mentioned, Corey, about third-party projects.
Um, so I'm on version like six of my books, I think.
Um, you know, every Django version I update them.
And I've just systematically taken out third-party stuff because you know, it's just one more dependency and things change and there's problems.
But all authors and Rust Framework are, I think, the only two I still have in.
That makes sense.
Because they're but that it's been a long process of, you know, even what and I guess Django um I use one for for environment variables.
I'm blanking on it.
Django Django.n.
Django or.env, one one of those.
One of those, I forget.
I have an opinion I've written down some of them.
I think those are the three.
Because environment varia that those are very helpful.
And maybe Django database URL, that's kind of nice with horrific.
Oh, yeah, yeah.
But I had a lot more.
The first the first couple versions were more pro more third-party things, and over time, it's like uh I we have crispy, we have crispy forums, which Carlton works on.
So I guess maybe maybe there's a half dozen, but there's definitely less than there were, anyways.
Well, thank you for taking the time, Corey.
I know we've gone slightly over.
Um, we will have links to uh your personal site, to um Sas Pegasus, modern JavaScript series, placecard me.
Um is there anything we didn't cover about your story or you know marketing that you want to get out there?
No, I I I I feel good.
Thanks, thanks for thanks for having me on.
This was fun.
It was nice to to meet you both.
I feel like I know your voices, but I I you know had never uh didn't know what you looked like or not.
See you put see your post, see you, see you on Twitter, and like, you know, who's this guy?
So it's nice to see you in the face.
Yeah, well, and I I appreciate you writing those posts.
I know I I can understand, you know, both sides of thinking about whether you want to do it, but it's definitely helpful for those of us in a similar boat to share your your story.
So at least for the ones you've already written, I thank you for writing those.
Yeah, no, no.
You're yeah, you're welcome.
And thanks for glad, glad you're getting value and and I I I have fun with it, so it's I I don't think I'll stop anytime.
Great.
So we are at DjangoChat.com, chat Django on Twitter, and we'll see everyone next time.
Bye bye.
Bye.