← Back to Show Notes

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 Zhu, who has a long history with Django, does SAS

Pegasus, works at Tamagi, has a JavaScript series. So we're going to 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. Um, 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 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 damagi we we do like health care

ish solutions primarily for emerging markets. So we did like a lot of work in, in Africa 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 on the team

who were really bullish on it. And, uh, and we're 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 actually

sort of like a relatively snap you know we we debated it for for a few days 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 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 well you know

are we going to use xyz no we'll use django but you know yeah yeah now it's the boring technology

but i think web frameworks are a little bit boring these days 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 been watching that marvel

show um but there's less excitement on uh web frameworks i think in general as opposed to like

python itself and um the ecosystem yeah but in any case i wonder what what are you gonna say

maybe except in the javascript world i feel like things are still i still feel like i have a hard

time keeping up with with you know everything that continues to happen in the javascript world

yeah but that's that's the overwhelming it's still kind of pre-cambrian right

yeah it's true like there's not you're saying there's not sort of like a django of javascript

yet or uh or 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

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 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's i wonder

how much is python was already kind of embedded in 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 did the old uh intro cs class and scheme and lisp which uh you know

when they switched to python we were like oh these these guys they they have it yeah

You know, we, we, you know, we, we were the ones walking 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 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 a similar experience that, you know, I had the Django book and I was, you know, using that.

And then, but what's this Python?

You know, I mean, what are the deeper bits?

And then there was a book, what was it called?

Pro Django Development or something like that.

And it was awesome because the first chapter was like this kind of, 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, there's Python.

know it's that was a real eye-opener i should i should add that i keep i'm working i'm still

working on the updates to my my 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 mixins 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 yeah 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. So Damagi is really interesting. We were talking about this before

he went on the air. So I've visited there for a Django Boston talk. And it's been, I mean,

as you say, it's doing healthcare, but enabling digital healthcare in countries that are using

paper or whatever before. So it's making huge advancements in public health, but it's been

around since 2000, before 2006, right? Because healthcare is kind of hot now, but Damagi has

been there the whole time. Right. So I guess I'm curious, what was that, what was it like in, you

know, 2006, seven. And, um, cause 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 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 not that common in places

like that and so we we started on this these pdas like like uh if you remember like a palm

toilet 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, but just because the hardware and the ecosystem

wasn't, uh, up to speed. And then, um, we diverged into doing sort of medical record systems and

stuff in clinics for, for a while. And then sort of once, once the technology landscape had, uh,

had matured enough 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 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 it's 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 we'll ask uh is is an issue um there and so we we

built the whole thing to be able to 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 in 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, 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 gets

service and sync up all their data and everything else and then, you know, come back and do it for

another week. But so that was certainly a big and continues to be a big design constraint and

a challenge with the applications that we build. So the 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 a an old like nokia back end and then there was an android

back end 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'm interested in this but

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 webflow 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. 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, no SQL 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 miss decisions uh probably maybe the biggest one which which ultimately is on my

shoulders but but so a lot of our data was in couch db and and some of it still is in couch db

uh but we are doing our best to move away from couch db and into postgres but that's kind of

sad because couch db was cool like i mean you know it did all the schemeless thing it had the rest api

just sort of just there it you know it did the sync like you know you had couch db 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 a 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 syncing for us.

But at scale, it has really become a problem.

I mean, at our current app, I don't

know the numbers off the top of my head, but we've

got order of magnitude hundreds of servers,

including certainly two-digit numbers of database servers.

And at that scale, we've had some issues with CouchDB.

And like when something goes wrong with CouchDB, it's just it's not as easy to sort of fix it and troubleshoot and everything else just because it's, you know, the adoption isn't there.

OK. And so is this is the solution now Postgres? Is that the way you go or do you favor something else?

Pretty much. Yeah. For any sort of structured data.

Got it. So you were at Damagi for quite a while and then 2017, right, you made the leap into self-employment.

Right. 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've been doing the, you know,

out in the wilderness thing for not as long as I have, but almost as long.

I like you've been doing it.

Well, 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 i

said also before we got on 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

I find just the highs are higher and the lows are so much lower doing your own thing because

it's just you. Yeah, yeah, totally. Now I'm just sort of sanguine about all of it. I don't even

look at sales on any regular basis. I don't look at my analytics more than every month or two.

That's an impressive level of zen. Yeah, zen or being overwhelmed by little kids. But it doesn't

change anything is what i realized 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 sales or analytics right

it feels so good but the problem is you sort of attach yourself to the good and the bad or at

Yeah, for sure. No, I think that's a, 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 was the CTO of, of Damagi during

the, during sort of this period, 2007 to 2017 or so. Um, and by the time I decided to step

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 they were, I was both burnt out and doing a bunch of sort of

like work that I didn't love. Like I think of myself as a builder or a maker. Um, and I found

myself doing lots of, you know, HRE management type things. Uh, and so, so I was, I was just

like, okay, I, I, I need a break. And then it was, so, so I decided to go on a, like on a six

month sabbatical. And then, uh, in the first couple of weeks I was like, well, like, what am

I going to 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 about these people who were sort

of like running these small businesses and, you know, making, you know, tens of thousands of

dollars or hundreds of thousands of dollars, like, you know, work and 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 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 so i tried to pick something that was

you know quite easy and and likely to to be able to 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 still feel silly to

this day talking about it and then the fact that i still uh run it and it's it's made me like you

know 50 000 is is crazy but um but 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 super no that's that's you know that's a real problem that's a that's a that's a dollar

to do that uh 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 a little bit of branding on the cards

okay um but uh but yeah now it's eight dollars uh okay 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 square space for wedding um sites is

that something that they didn't have at the time or if they built that in because it 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 might have the ability to do something like this um but uh but yeah like uh

um 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 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 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 an assault 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 dy i 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 you

know 20 plus 20 is 40 but like no 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 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 oh 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 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 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 much smaller

scale um but starting with like the paper printable thing and then and then you know

sort of stair-stepping into 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 for stripe um so and they're for the best people so um yeah yeah

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 it makes sense but anyway so those next things because you've you have what you've got

so uh sas pagasus what's the janko boilerplate you have this modern javascript series carlton

looks like this is what i want to hit you up about because i saw you um tweeting about uh

your sass pegasus which is just it's great and the way you do it and the way you you blog about

how it's going and you know i love that so can you talk about those products and 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 copied the place card 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 is Django is 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 not being

opinionated about your, your own model, like how, how you, uh, do users 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, as, uh, 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 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, um, for, 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 feel a little weird, um, talking

about this, but like, I think something about the Python Django community is they're so

like pro open source and in some ways like not like great business people or like 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 like like the idea of making money

like 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 a a clear gap that um that was

worth filling and how long have you been working on it now like a year two years three years like

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

probably broke down 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 so it's it's getting half my

half my full time okay uh for the last two years okay super and you seem to have everything you've

got like a bit 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 bits yeah yeah exactly so the idea is like kind of all

the pieces that um hopefully you need to to build a business that's got stripe for either like one

off payments or for subscriptions it it ships with either uh bootstrap or bulma or experimentally

Tailwind. So you can kind of pick your CSS framework. I'm working right now on kind of

two versions. One, which is sort of like a classic React Django REST API architecture where

you sort of have like the decoupled client server because a lot of people are interested in using

that versus one that's sort of vanilla Django models and forms, that type of thing. 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 and reacts in in a few different

places um and it so 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 um 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 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 socializing with everyone else which is interesting

because 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 basically mostly worked for damagi 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 guess 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 yeah because you know you build it no one buys it well

that's because they didn't know about it yeah no totally 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 somebody else whose name I'm forgetting called Traction, where they

talk a lot about this.

And one of the things they say is you should probably spend about half your time trying

to get Traction for your thing and the other half building it and making it better.

I think probably as you could guess and maybe as you guys could relate to, it probably skews

substantially more towards building just because I find the building part to be a lot more

fun and a lot more interesting.

But, um, but yeah, it's probably, it's probably closer to like maybe, maybe one third, two

thirds, one third traction.

You have had some luck, right?

Cause 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 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 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 or less nothing i've written about django

has ever made it on hacker news it's it's uh it's all my sort of like that that's my point yeah

yeah so 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 solopreneur journey and trying to sell them into something more general.

And every once in a while that makes it on Hacker News.

Um, but it's, 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 translate into a

increasing signups or increasing sales?

Or is it like they come, they see, they crash the server.

they go yeah it's um it does it not a lot right I think I think I had one

article that I published around shortly after Black Friday where I talked about

like kind of how I ran a Black Friday sale and my lessons learned from that

and stuff and that did really well on hacker news and I think led to two or

three sales which is I mean you know it's

it's like that. So the current sale price is, is $300. So like, you know, $900 is, is not nothing

for, uh, for an article, although the article probably took me like 20 hours to write an 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 targeting the loan developer uh i think i'm

targeting the loan i don't know i don't know like if i were targeting companies i'd probably charge

well that's what i was gonna at least five times that uh and i've yeah i've often thought about

experimenting with with really big price increases but um but i i also like having lots of people

using it and giving me feedback and stuff so so yeah it's a bit of a trade-off that's always the

the the it's the the base camp folks what is it 99 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

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 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 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 it's hard to make a judgment

on what the right call is totally i remember 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 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

dot com 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 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 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 sass

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 pure 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 you know because 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 a hundred dollars 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 bills it to the client

saves him time but my sense is django is generally maybe with bag tail 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 1000 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, I'll begrudgingly accept that. Although

i won't mind if there's one yeah no no that's that's 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 going to support it who's going to 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

it's marketing it okay 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 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 megacore they could pay 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's wonderful

but it's the community and everything that goes with it that makes Django worth hanging around

for it's I was going to 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 going to compete

with me and both of those no no no no no I mean I'm joking yeah 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 there was that rails engine thing that was kind of

tied in with ruby on rails it was like go to the ruby on rail site and there was a hosting

option sort of top front and center and back in the day interesting yeah the dsf just to

sway jenny fierce the dsf is so much smaller than maybe if people are even aware of it then

i think that is i mean the python software foundation has eight full-time people and all

this stuff. 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, you know, this year, we're going to

collaborate with JetBrains, because JetBrains does it

for the Python Software Foundation, and that's

great, because it's like, I don't have

the time I did last year to do

that again, you know, because it's

all volunteer, so anyway, so I

agree, I think it's part of the specialness, though, of Django

like, no one, very

few people are directly getting paid, and even

the fellows that we have, Carlton and Marius,

I mean, they're probably making below market

they're definitely making below market rate

You don't be a fellow, because you think, you know

that's the

highest paid job i can get no it's not it's yeah you do it for other reasons but 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 dango some

things from the board well oh yeah we'll talk about oh god

yeah no so we're up there we're updating the we're updating the um the stripe integration

so they changed it all for the um for the european 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 yeah

you're reminding me of that thing carlton i mean let me maybe just 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 or something was it in 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, someone to Tidelift, you know,

because we want to get someone good, but we want someone who's not going to 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 it's not gonna happen yeah well 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 an organization of you know more than a handful of people that

that you'll just you'll run into a consensus building and bureaucracy 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 to 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 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 what all the startups did because it was a startup so what's

the difference we didn't have money to pay a fancy lawyer but you know django django is django so we

have to 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 counsel 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 just finish that and then i'm going to say what did you want to

asked cory about stripe about like 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 happened three years all of that

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 anyway i will say the um that the effort that django puts into its release processes

and the lts's and the you know the like deprecations and and all of that like 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 cory 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 sas pegasus is you have integration so you probably feel you need to keep up with

those changes i i do although because they still 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 i'm i suspect that in a future release pegasus will just move over

over to checkout also, just cause 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 checkout's fine that makes sense 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 as it comes out to continue on stripe so um i had the for for a while that i think i

I still have this top Stripe Django tutorial, which I wrote on this site testdriven.io that

my friend Michael Herman does. 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. So I feel like there's sort of a Stripe is great,

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. Cause 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 and like the top four or five

frameworks. But I guess, you know, now that they're doing checkout, that kind of goes away.

And it does, 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.

And yeah, it slows things down because every developer has to update their stuff.

And, you know, you don't want to get the security stuff wrong around tokens and stuff

for 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 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.

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 uh but 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 yeah i don't want that complexity

so my my friend from quizlet who's a manager at stripe um i don't think this is prep i can say

um so there's 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 monolith scale it's like well stripes 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 it's 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 okay yes back when i was

learning there was a thing about scaling and 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 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 at whatever cost and

then cut the cost per thing and striper at that stage now right there 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 a

bottom line i would say anything anyway cory i wanted to i'll come swing back to javascript

and django and so you've got this rails thing right i'm not railing this um react thing and

that's one way and then 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 and if i'm running it for myself i would i would definitely like like

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 um where it made sense like where there

was going to be either a stateful or uh you know a complexly interactive user interface

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

like 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 inside the static

roots type thing you get you collect static right yeah 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 place card me i was like

okay this is like i'm gonna do this like place card builder thing where it's like there's gonna

be like a lot of complex interaction and i want it 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 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 drop script 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 basically use that architecture for every other project i've worked on to 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

to me well i think you're 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 things

it's like the static file yeah he says he says tell it where the folder is he says the same thing

yes i think his is maybe a little more of a choose your own adventure but he i think advocates for

the same approach because 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 as a single file so

it's sort of not really jangle's fault that that all is complicated yeah exactly but it seems like

it is i think people what people want though is some sort of runs it's 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 yeah one to watch the javascript and one to build

like i know that people do try to do fancy stuff to make javascript build things happen in the

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 stack

the thing is failing.

So I generally shy away from the type of thing

that would try to make React work and run server.

Right, amen.

There we go.

Well, I think that's where everyone gets to

at a certain point where you appreciate

what a third party package does.

But unless you really, really need it,

it's like, I'm going to end up rebuilding this anyways.

so maybe i'll just peek at the source code and see yeah i mean a lot of third-party packs is

good for ideas right oh yeah that's nice there was a 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 all off um and a handful of others 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 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

jango world it's been going 10 years or more it's safe and you know anything less than that you've

got to be if jazz band 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 jango 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 you kind of need to use it and rest 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 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 I've heard you talking about that

You know I'm getting there if it wasn't for this

Crazy pandemic and my kids always being off school

With cold it turned out the kids this week

Had colds and we were 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

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

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 it's amazing isn't it 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

you know heroku and digital ocean and uh google cloud and all those 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 Damagi days. Uh, so I guess all of

us are like old enough that like, you know, past probably didn't exist, uh, when we were first

deploying applications. And so got comfortable on, on, you know, sysadmitting and, and I feel

Like from a cost perspective, it's just like, it's so much nicer.

And when you're doing solo projects, cost actually matters more.

It's running 5, 6, 7, 8, 9, 10 projects and it's not really a problem.

And it's the same amount of money as it was when we were running one.

Yeah, but we're going to do the same thing on, you know, like Kubernetes or like, you know, DigitalOcean app platform or something.

It would be like hundreds of dollars a month, I'm sure.

Yeah, it's interesting that DigitalOcean really has a new app platform.

That's something I haven't played enough around with.

It seems like they're making a play at Heroku-like simplicity.

But I have got my own deployment system that works,

and I'm not a deployment engineer,

and I'm just going to stick with it unless I have a reason to play around.

I am going to use button.dev, though.

But aside from that, I'm not playing around with other stuff.

I'm excited to try button also.

Yeah, well, okay.

Well, it's coming, it's coming, it's coming.

Limitations are human power, but it's not far off now.

Well, 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 like.

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 going to have,

I don't want you running all my shell scripts.

I would say one last thing. You mentioned, Corey, about third-party projects. So I'm on version six of my books, I think. Every Django version, I update them. And I've just systematically taken out third-party stuff because it's just one more dependency and things change and there's problems. But AllAuth and Rust Framework are, I think, the only two I still have in.

That makes sense.

because they're but 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 or dot n one of those

one of those i forget i have an opinion i've written down something i think those are the

three because environment very that those are very and maybe django database url that's kind

of nice with her oh yeah yeah but i had a lot more the first the first couple versions were more

more more third party things and over time it's like uh 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 cory i know we've gone slightly over um we will

have links to uh your personal site to um sas pegasus modern javascript series place card me

um is there anything we didn't cover about your story or you know marketing that you want to get

i feel good thanks thanks for thanks for having me on this was fun and it was nice to meet you

both i feel like i know your voices but i i you know i had never uh didn't know what you looked

like i see you see your posts see you see you on twitter i'm 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 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 yeah you're welcome and thanks

for glad glad you're getting value and and i i have fun with it so it's i don't think i'll stop

great so we are at django chat.com chat django on twitter and we'll see everyone next time bye