← Back to Show Notes

Transcript: Appliku - Kostja Palović

Hi, welcome to another episode of Django Chat. I'm Will Vincent, joined by Carlton Gibson.

Hi, Carlton.

Hello, Will.

And we're very pleased this episode to welcome Kostya from Applicoo.com. Welcome.

Hey, happy to be here.

Hi, Kostya.

Happy to have you. So we've actually known each other for several years, and there's

a lot you've been working on. You have your deployment platform, you have a starter project,

but you also have an interesting background working with Django at a number of companies

so maybe I'll throw it to you the how did you get into programming and how did you find your way to

Django so about my career as a programmer I like to refer it as I'm 35 right now and I have 22 years

of professional web development experience because the first site I made was in school at the age 12

that was my first 30 dollars or something and it was php of course it was horrible if

but hey who has like their first 30 bucks earned through whatever i'm still doing 22 years later

and you get paid from the beginning too that's that definitely sparks a sparks an interest right

especially at that age right i mean that's and that's real money that's real money now and

even you know back then yeah that was first dollars i ever held in my hands yeah

what did you spend them on i have no idea to be honest i never thought of that these days

so i started working on um web development when i dropped out of uh university and again

it was php because that was what i knew but i think on the third job while we were playing

this game e1 line which was is still built on python somebody said hey this game is made with

python you can do a lot of things with it they're like what is python and a few hours later i was

exposed to django some i think it was called headless python and stuff like that i picked

the only thing that i understood from all that speech it was django and i quickly

tried to build something around the game and i was amazed by the forms how you can create the

whole interface the whole crud pages and like in two days from first knowing about python

without actually knowing the language itself i've built something and my guys from the game were

using it and i was like wow that's pretty amazing and using it since then so we've ran me and my

wife we ran custom software development agency and we used Django as well so we

tried to make the get clients with their bad PHP CMS's that were already falling

apart because they were that CMS wasn't made for that and we were trying to

build something custom uh with django and that was pretty exciting until we ran out of clients

and decided to wrap it up because when you want to create amazing things you need amazing people

and we couldn't scale talent then we couldn't scale clients and well that's the recipe for

disaster yeah that's that's the great business problem right is that you want to take on a new

hand but then you've got to bring in so much business to pay that hand and yeah and then you

end up with one client being responsible for big chunk of your revenue and when they say okay we're

done here not because of something bad or just they finished all the they reached all the goals

they wanted and that's it so we switched to other things and i started thinking

what projects we can build started talking about it and we tried to build some apps and i realized

that it is so terribly time consuming to spin up a new application to deploy it and i was like

no there's got to be easy way so first was of course googling what people use i tried heroku

they're like wow it's so better than writing configs for two days and to have your hello world

starter project like running on the web and i moved all the websites that i had that barely

had any traffic let alone any generating any revenue and it was awesome until Hiroku sent me

the email that I owe them 100 bucks or something and I was like wait a second these apps barely

have any visitors at all and it was I mean so interesting like start with seven dollars

for this for that for another process and it piled up and it was 110 dollars

I'm like, no, there's gotta be another way.

I want droplet price of hosting with the ease of Heroku.

Well, I started building my own Heroku,

came up with the name Apliku and from bunch of scripts

for automating configs and building some interface

with first Django admin, which was a great time saver.

Django admin is really great thing.

And here we are three years later, by the way, uh, I think it started

roughly at this day, three years ago.

Um, here we are.

I have a working product that, uh, I'm happy with thanks to my wife.

We have a great marketing website and a lot of other things illegal, especially.

And, uh, yeah, that's, uh, that's the short story of it.

Okay, so that's super.

So give us the 10-liner on Apliku.

You mentioned Droplet.

So is it built on DigitalOcean?

So unlike Tier 2, I think it's called cloud providers.

Like Europa, we don't resell the cloud resources.

Apliku is a service that sits on top of your compute,

your resources in your cloud providers,

and provides all the necessary glue from to to put your app from git repository into

deployed on your server taking care of server setup push to deploy all the complexity of

dockerizing it and yes so you pay flat fee monthly and whatever resources you want to throw at it

It's between you and your cloud provider.

I remember trying out a prototype of it, I think at least two years ago, and entering in my AWS keys.

And I think this might have been, Carlton, before you told me about Button, actually.

Well, this is why I'm a bit scared, because Kostya just said three years, and you're saying two years ago, and I'm a year and a half into doing Button.

And it's like, okay, so I'm about halfway to getting it through.

We've talked about it. Rising tide fills all boats.

So obviously AWS, but then what are the other platforms that you can put in your keys for?

I assume you have to do custom stuff right around Google, Azure, all the rest.

So initially, I tried with DigitalOcean, and I had the idea that you should provision your servers through the interface of Applico so that everything is set up.

a user will not make any mistake with picking i don't know wrong keys wrong distribution

or other settings so through api you can create server on digital ocean and aws

and if you want i think as of the december last december you can use custom servers so

you basically need to spin up a new Ubuntu server and provide the IP address and username and put

the keys public key in the in this during the server creation basically so if you want to use

head snare for example which is a lot of times cheaper than AWS well you can save plenty of

of money there or you maybe have your own server rented for example somewhere which is not exactly

cloud you can use that as well but it should be an empty fresh ubuntu box speaking of money there

i was i was looking at some pricing for some colo in i don't know germany like actual physical

server you get an awful lot of server for the same amount of money as you get on aws yes on 400 euros

or 110 euros you get i don't know a flagship or whatever big big really big server i've got i'm

scared of that though i've got bad memories of driving down the m4 which is a motorway in britain

at like two o'clock in the morning to go and change a component so you recently were on product hunt

and also on hacker news just on the marketing side because that's always a weakness uh for

developers how how's that been going what was that experience you know congratulations by the way for

having a big launch, that's not an easy thing to do. But then what was that experience like in

terms of feedback, signups, you know, all the rest? So first, it was Hacker News last year,

and we got to the first place. To the first row, it was unexpected, to say the least.

And at that day, I remember I was turning off my phone when I wanted to sleep because I set up the

notifications on my phone when someone signs up and boy it never was silent for

a minute we had so many signs up and people started talking offering asking

questions offering something of course there was some negative someone negative

comments but I was surprised how little negative people came in and negative

comments came in at that moment and that day it was a lot with product hunt this

year and it coincided with other events in political niche let's call it this

way and nobody cared much about new apps coming out so I guess I should have

launched in February but I decided okay let's wait a little bit let's polish

something so the lesson is here don't wait just launch it just launch it there

is never a perfect moment for that yes you hear that carlton yeah no i i'm blushing now like

it surprises me that you haven't launched because i think for half a year i've uh

hearing from a friend of mine who is also a listener to the show

he told me hey they're building this thing they're your direct competitors you have to do something

about it i mean what can i do that's just me teasing carlton i should lay off i i just get

excited for him and so i'm always mentioning it yeah no like what can i say what can i say um you

know wiley coyote like the roadrunner cartoons like the last year has been like i'm walking

along i'm wiley coyote i've got my glue on the road i've put the seed in the middle of the glue

i'm waiting for you know i'm waiting for what uh the roadrunner to come and eat the seeds in the

glue and then i step in the uh i step in the glue i get stuck and the truck comes and knocks me for

six with you know covid and family and so that that's that's the well following carlton i mean

you're also you have a number of other things i mean it's for me it's it's really inspiring that

carlton has been working and continues to make progress on this because he is juggling so many

things uh just professionally otherwise so for me it's it's inspiring to keep plugging away and it

does happen whereas i guess for you you've been able to work i don't know full-time but you've

been been able to devote more of your attention the last couple years to it right i've been

working full-time yes through all this time and moved between countries so yeah that was

so that's the question right so so you're busy working an agency um when you've got these clients

and you're like the business isn't scaling how we want let's do product how do you bootstrap and

fund that product is it a little bit of part-time and then get a small income that's you know funds

every day every day so since i'm building the app itself on my own it's just dedicate half an hour

every day to yeah yeah every even if you just moved the button around it's already progress

and if you do it like don't look at the week uh and say hey i've done so little this week no

look at the scale of the year and uh see that you have this accumulated you know piled up

whatever you're doing every day and of course what helps is on sunday or saturday you have your

some calm time while everyone is sleeping at home will probably understand what I mean.

Well, Carlton has more kids than I do, so I can't...

Oh, okay.

Because I think you have two kids, I think?

Two kids, yes.

But very little.

Very little.

In fairness, Carlton, you're a little older, so you have different things to take up your time.

Yes, fair to say.

We haven't had any diapers for a while, so that's good.

So dedicate a little bit of your time to plan, not in details, but what you want to tackle this week.

when you have 30 minutes or 20 minutes to fix something you know what's the area where you need

to make some impact and you will not be sitting for 19 minutes thinking what to do and one minute

left to do something you will have almost all 20 minutes and that i think that exactly helped a lot

yeah i think that's great advice don't blame yourself you know for doing something very little

that that's that's the part what's usually killing the most of the energy blaming yourself for

something for not doing enough the other the other thing that i that i find that i that gets me is

i'm trying to build far too much i'm trying to build you know a great product from the first

you know from the first first day out of the door you know with native clients here and they

and it's just like oh that's too much so i need to scale it back how do you handle

scope creep and focusing on you know what's a deliverable i guess i had my experience in the

past trying to build everything from the first version we need to have like native mac app native

phone app we need to register and pay all app stores and never ship anything just

a few hundred bucks for all the licenses and then like you're just seeing all these drawing boards

and uh well you haven't like started in three months you haven't started writing any single

code at all you're just imagining imagining more and more things and this time i guess instead of

trying to build a business and the product to be to look as cool as some other established

companies with billions of dollars in funding i decided just to solve the problem so i want

my app running um and i just automated every step that's it what is enough to make my app running

and i didn't go too much broad and check in what other python packaging services there are

right now out of the box applico supports on requirements.txt if you are using anything else

Well, beep freeze, requirements.txt, and let's keep it going.

So that's probably the recipe.

I'm doing first what I need, what was my everyday thing.

And I automated that.

And if someone comes and says, hey, we need something different,

then I see if they are just used to that

and they're using it for no reason.

And they, again, if they use, how do you call it, PIP file,

hey, can you just do this PIP freeze

and have a requirements file?

As a matter of fact, I do.

Well, that's it, problem solved.

Nobody cares about that.

So that's my recipe.

When every user finds something new,

like I recall just when I went through,

there was something about, you know,

I found a way to mess it up,

But it was because I was, you know, something you hadn't thought of, right?

Because you had solved it, but there was something with the configuring the servers.

And I imagine every time someone tries it, especially the early users, right?

Something else crops up.

And then it's that question of, okay, I hadn't thought about this.

Do I solve it or is it, you know, or do I not, right?

Like making that divide, because you can't solve everyone's issues when they go through

your workflow.

Yeah, there is no way I can cater for everyone.

For example, Applico still doesn't offer any clustering whatsoever.

So it's a single server.

I'm banging my head against the wall for a long time how to approach it.

And someone just told me, hey, you just need Kubernetes.

That's it.

What do you mean by that?

I mean, there is millions of tasks that you can solve with Kubernetes,

even those that, usually those that don't exist in the first place, probably because Kubernetes is very cool.

Well, it was built by a big company for big company problems, somewhat similar to React, right?

It's a bazooka for something a hammer might be able to solve.

Exactly.

So usually, from what I've seen, people, it's not, of course, enterprises or other big companies,

but most of the apps that i've seen that i've worked on that i've touched or advised for

hey you can just double the server size triple the server size move some apps some components

split it between servers for example run web workers here salary here if you have super

massive fat salary task that requires 60 gig of ram well put it on a separate server and call it

a day that's it you can do this in like 30 minutes and keep working because usually engineering time

costs way more and if you have a special deal or you can find another hosting provider well

what it adds twenty dollars hundred dollars to your bill and that's it and you're already doing

maybe you just need it for one month and then you optimize it or the task for that fat salary queue

doesn't exist anymore so there was other problem i remember with setting up servers i couldn't

understand why some people complain that their servers can't finish setting up

and that's one of those stories that we have in our notes in our file I was

thinking hey some people click provision the server in DigitalOcean and it

doesn't work for them i go do the same it works i go do the same in their region that they picked

it works for me weird they i do it on weekends that's important because side project i do it on

weekends most of the time monday starts they complain again weird i go check right now okay

job can wait a little bit half an hour I go try to deploy it turns out during week in fact new

servers don't get set up why race condition can you guess why cool hang on readers answers on a

postcard today so point is during weekend the workload in data center is lower so when my script

comes in, it

creates a server, comes

into the server, and starts

setting up everything.

On

weekdays,

it takes more time

for server to provision.

And when server

just boots,

the apt-get commands

from Ubuntu built in

start working.

Updating some mirrors,

some caches and all this stuff and because all the server or all the host

machines are more busy they don't finish their processes updating the caches

they are locked locking the apt-get command and when my script comes in it's

still locked it says okay server error I can't install anything and that was the

thing I was trying to catch for two weeks because I was coming on weekends

and people were having problems during the week.

So yeah, that was crazy.

So were you able to come up with a solution?

Can you build in some wait time or what was the...

Yes, I built the checking for the log file for aptitude

and added a couple of sleep commands

if we need to wait and check again.

But it was something that I never thought of.

while you learn more about these hosting companies than you wanted to right i imagine for you as well

carlton right like yeah no but that that kind of stuff is gold dust because that's like your

moat now like so you know i'm i people people come along i'm coming on building my button

you know does similar sort of thing and i haven't hit that bug yet so i'm you know i'm

you've got like kind of bit of water that i have to cross between so i think that's brilliant

well since you haven't launched yet you wouldn't be able to say that i stole some ideas from you

No, no, no, that's fine.

Because I only see the landing page.

Can I ask about, you also have quite a few articles on Applicoo that are really well written.

We featured a number of them on the Django newsletter.

Just on that, again, like the marketing side is interesting to me because I struggle with it.

I think most technology people do, but you seem to have done quite a good job.

So can I ask, you know, how is that time commitment?

Do you see that driving traffic?

You know, because it takes a long time to write a high quality post and, you know, your posts are high quality.

so articles are the main driver for marketing efforts what i've done so far write article

really detailed really well done and post it on reddit and everywhere i can

later in three weeks post it on dev.to and talk to people there answer their questions so these

articles are in fact the only probably the only marketing effort that i'm doing first people come

and ask some questions how to deploy because again when you go from local app to trying to deploy it

a lot must be changed you've talked about it deeply in the other episode and i needed to show

people uh how i'm doing it like content containers docker setup all the environment variables set up

just so that they can skip those evolution steps that i went through maybe some people will have

other options and choices for their apps but that's what works for me so i just want to share

it and i share it on all the details and i try to make it um answer all their questions like if you

have a if there is a potential for an error here i'm trying to write it down so that people won't

come to me and say hey like this is the error what's the problem yeah you had to put space

before dot in some command oh i never noticed that okay so i'm trying to answer all that yes it is

insanely time consuming and the first article i wrote took me almost two weeks

and uh but it was a huge success because yeah i mean it's worth it right because

most people don't don't take the time don't have the ability and it does build over time i mean

that's how digital ocean built a lot of their their marketing right they invested in really

high quality tutorials um which let's say heroku uh has not yeah but it's an investment right yeah

so anyways i i googled today for how to set up node on ubuntu because i was spinning up something

you had hey first line was digital ocean i think second one as well for different version of node

so yes that definitely works and not only SEO is improving with articles but

if you want to post in some community some high quality article most of the

time if you don't promote your app in the article too much mention okay don't

promote it if it's really valuable piece of content all doors are opened for you

and you can post it anywhere.

Nobody will say, hey, this is self-promotion.

Hey, guys, I worked two weeks on this article.

Yeah, yeah.

Some articles, some sites don't have that much detail as my article has.

Most don't, yeah.

I mean, it's interesting on the DigitalOcean just bought CSS Tricks.

They bought Scotch.io.

They're a public company now, so they have some money.

And there's a number of other sites they've approached content sites to purchase, and it's smart to buy SEO, but it's hard to do.

Digital Ocean is about the only company I can think of that has deeply and continually invested in high-quality tutorials and articles to drive traffic, as opposed to, let me say Stripe.

you know they because i had the django stripe tutorial for a while there were like six people

emailing me to update it and i was like why don't you write it you know so um i don't i still don't

know why the more companies don't take this investment approach because it it does seem to

really pay off is it is it about who they're aiming for so like you know i imagine a deep a

good blog post about deployment or about how to integrate scripe with your django project that's

going to appeal to the individual developer

whereas companies like

Stripe are targeting corporate

you know so they've probably I would imagine

they've got sales teams like that. Well yes

I mean it's. Hitting up

companies. I know yeah

I don't know if they I know that

who was it

Algolia the search

company I remember I

used them back in 2016

2017 on a startup

I was working on and they were to your point

they were fantastic they

um they had they essentially helped us write uh the algolia part of our so you know i think that's

because they just started we were one of their early users using it a lot so i don't know i i

hope that they do have that you know that kind of support at the enterprise level but that that's

always the kind of the problem for something on individual or smaller businesses is if there's

not as much money there so yeah i think heroku doesn't care right it's hard to justify it even

though, how do they drive their funnel? So maybe a long way of saying, what do you see as the

progression of someone on Applicoo, right? They come in with a small project or a small company.

At what point, you know, I guess you'll have to decide when do you say, you know, it's too

complicated for what I can do? Or how do you see that playing out, right? That's probably a problem

you haven't had yet, but that's a success problem. You mean how complex are requirements of the

customer that i can't uh serve or what i guess so because that's i think that's the thing with

yeah i always wonder what what's that what's the off ramp i mean because for example heroku like

if you just pay money works really really well it's just very expensive

um so some companies make that decision of like well when my bill is six figures

maybe i'll hire a devops engineer and do it all myself um i'm sort of rambling here i guess i'm

just trying to asking you to predict the future around when you have a related way of phrasing

who's your target market like who are you targeting the big corporate people are you

targeting the smaller developers or agency levels like who do you see you know when you're coding

away for a feature who have you got in mind for serving this feature beyond yourself i guess so

first uh i thought that it's first of all it's a long game anyway sas is brutal is a friend of

mindset uh you need to be on the market for a long time because no it's the thing that we are

building here is not a some marketing pop-up widgets that you can install or remove in a

matter of 15 minutes if you don't like the color it's a foundation of the app deployment so it's

the second most important thing maybe more important than the code itself that you've written

so people first have to trust it it should be around for a long time and it should have some

educational content and easy enough for i wouldn't say completely novice developers

but those who have some experience in the field but they probably don't have

money to throw away so first let me try to find words for that you want to find developers who

are studying who are seeking for solutions and they have to get used for that so i think it's

called top that no not top-down the other way around bottom-up marketing

when people get used to that when they grow or build their apps or get promoted

they might remember about this thing that they use for their home lab for

home experience experiments um that's why i have a little bit um limited constraint but free plan

so you can use applicable for free for as long as you as you want and second so here is just time

that people remember okay yes i can trust this app because it was around for three years

you wouldn't like button comes out tomorrow and like yes i will deploy it on it no no no you

expect it exists for 46 hours already of course i can trust you well you you need to be around

longer than that so that's why i'm pretty patient with everything i mean you know that's three years

longer than the average google product right well yeah i mean that's that's the that's the thing is

that yeah there is i guess in some sense this idea that big corporations are more stable when in

practice you know google but even just when you deal with large corporations and the people there

people leave big corps so much more rapidly than small corps um so it's actually yeah

something that's smaller that's self-sustaining is always going to be more um secure in a way

more stable than big corp that's why i don't like uh when someone buys the company and the product

and then kills it for nothing well i it's if it takes out a competitor i guess but anyways yes

there's a if you have a sustaining revenue in general yeah yeah i'm talking in general there

was this amazing uh email application uh sparrow it was called oh yeah just amazing i think google

bought it and killed it and they never released anything to replace it that was very sad so the

second part is companies that exist already some startups that maybe they don't have too much of

revenue again most likely self-funded that have usually one or two developers and they just want

to optimize either costs or they have certain requirements for technical requirements and they

can't meet them with heroku or other tier 2 provider for example a guy came in last year

and said hey we need static ip addresses and heroku just can't give it to us yeah now they

You need to make external requests to external APIs, and these IPs must be in the list, in

the loud list, and of course, Heroku can't do that.

Or specific caching.

Again, in Heroku, you can't do anything with a web server, so you have to do everything

on the app level.

Even caching, if you want to do, you have to do on the app level, or buy some crazy

expensive plugin which drive costs even further so that's another option or with

Hiroku config bar synchronization that launched I think two years ago you can

offload part of your app from Hiroku so I worked for a company that had that fat

salary job that needed a lot of memory and it ended up like five hundred

dollars or thousand dollars just for one salary worker and I said hey guys we

can just move everything all seller workers and all staging environments on

one or two servers and have bill of $160 instead of seven grand a month for all

those fat resources on fat diners so we started saving in two days we started

saving like seven grand a month solely because of that fat diners so that's

pretty cool I mean it's an easy win low-hanging fruit and without much of

engineering effort going

into that. Well, low-hanging, once

you've done it a few times, I mean, you

knew how to do it, right? It was low-hanging for you.

It wasn't low-hanging for them. Yes.

That's the whole consulting thing, just because it takes

like a locksmith, right? Just because it takes a locksmith

15 seconds to do a lock, well, it took them

10 years to do it in 15 seconds.

Well, now you need only to

know about Applico in order to do that.

But

yeah, that's why marketing.

There's a big gap between, like

to the Heroku, it's great. You know, you don't

know anything you can get started going really quickly but then when you hit its limits it's like

ah what do i do next and that's you know i think that's that's the real where the space is there's

lots of room there for lots of things um but to target that is is i think very sensible i think

it's you know it makes sense yeah even building is not easy some some uh some places where you

need both python and node is very tricky it takes a long time to rebuild whatever could be done with

simple docker file in multi-stages and take like 40 seconds it would take you 15 minutes

on the heroku i just remember that case with pip file which took every time very long time

to rebuild and node and nothing was cached nothing ever was cached with docker file in two stages you

can easily do it and rely on caching. But in Heroku, it was taking 15 minutes just to rebuild

the whole app. So that was an unpleasant experience with their buildpacks, or everything together.

But I blame, of course, buildpacks. Well, they're not, you know, that's the, you know, Python Django

deployment is a large enough space to have many options. And right, I mean, Heroku was originally

written for rails and it it's just not they're not going to focus on django so that's the the

big opportunity that is there for for both the projects um you know to optimize for python django

we had pete from lincoln loop on a few months ago there's another one there that's um eric

math has came on he's got his um tool for spinning up with heroku so there's you know i think actually

it's quite a ripe time for like different options to simplify the space but it is the it's a smart

thing. I'm not doing a SaaS. If I was, I would do deployment because it's the only thing where

it's tricky. It's an ongoing customer and you want to have trust and get it right. And, you know,

whereas education, you know, is a one-off, right? You buy a book and it's like, bye-bye. Whereas

deployment, right? It's like, if you trust it and it, you know, so it's like payments, it's one of

those few areas where if you do it right, it really makes a lot of sense. So good on both of you.

do we want to so i know you also have a starter project um what what else would you have you've

a number of things you've been working on what else would you like to talk about in our

the next 10-15 minutes i want to finish the part with uh applicable okay yeah please many times

people said hey like you can do it for every language because after all you use docker under

the hood and you can cater for every every language every framework theoretically yes

you can still deploy any

application in any programming language as long as you can come up with a proper docker file we

have node there and someone used that for some time and it works fine but first of all uh if

they come to me for support i have no idea what to do with the rails or php and php was a long

time ago and the rails i still don't understand their syntax and so i wouldn't be able to help

them and it will lead to massive time waste and disappointment so i decided to only focus on django

this makes it easy to support to market like if you see a new deployment tool you will say

hey it's just a new deployment tool but if you see it for python django you start to have interest

because hey nobody ever catered for this area before and third point is i want to build set

of additional tools around salary around django specific things so that if you have a management

command you can run it for example from the dashboard like show urls i don't exactly know

know what what exact thing will it be but maybe just going through django extensions and all their

commands and see what uh can be could be just a button in the interface then celery some workers

might have problems and they are stuck and they're not processing anything i plan to build some

dashboard for rabbit and queue or maybe for salary i'm not sure yet what's the best way to do it and

see what tasks are taking longer what queues are not being processed at all because again i have

plenty of experience with salary at a pretty large scale maybe someone will laugh of course

at my numbers but it was enough for me and we sometimes had these problems hey some queue just

stop processing and in fact it's not dead the worker is not dead it's just choking because of

a lot of things happening with it so I want to build additional features around that so that's

why Django and I'm not paying much of attention to other frameworks because I'm not finished yet

and I don't think Django is going anywhere in time soon it's amazing framework likely you said

earlier on about putting opinions in your blog posts and i think that's ties into what you've

just said is that there are so many ways you can deploy there you know why isn't dango gotten out

of the box deployment solution and you know in django you know manage.py deploy why doesn't

that exist well it's because if you were to suggest that to the django developers mailing

this there'd be as many answers as there are developers and there's no like you just so unless

you focus on some opinions unless you say look we're going to do it this way i.e you know

requirements.txt or you know that you've mentioned now and various other things we're going to use

environment variables for this that and the other like you just would never get out the gate we

couldn't possibly cater for every different ways and every different framework has slightly

different opinions best practices focusing lets you ship you know it's the same right don't ship

every product every feature to begin with right you know there is another simple way for example

of how to be paralyzed by a choice.

How can you run,

what will you choose to run your application on AWS?

Yeah.

infinite number of ways infinite number of ways that's that's actually what you have to choose

that's actually one of the things that's taking so long with button is choosing for you so it's

like because you know go okay i'm going to ship it i'm going to provision on aws okay well which

way am i going to tell you to do it exactly so yeah let's get back to starter project so you have

a way to deploy things, but my original task to start a new project isn't solved because I need

to start a project. And when you start with Django, you have a bare Django that doesn't know

about end variables, have no registrations and dashboards and pretty much anything. It can't

even properly send emails, because every email provider has APIs.

So over like three years, I was building what tools I'm using and tried to, was carrying

this cart with me of all the libraries and pieces of configurations that I had.

And every time I needed to, ah, what project I did it, where did I do that feature?

was copying it between projects and of course these snippets were not updated and

somewhere you fix this and you know the drill that's why frameworks and libraries happen in

the first place so this year i finally understand understood that there is pi pi where i can put

the base package for the starter project i discovered for myself django configurations

which is an amazing tool with some edge cases and this allows basically to define all the

boilerplate for configuration like how do you pass i don't know where do you host media where

do you host static and all this stuff and you can manage it from endvars as well as change the code

if you need so if you have some custom very custom way of doing things you can alter it without

changing the whole thing and i can still update the package so that with the initial configuration and

functions and libraries that i have there so if someone needs just one change in setting file

they can do it and they can still be able to upgrade it so with this speedbuy.com

it's called my point is to make a boilerplate for software as a service projects where you can

start building the the feature that is core for your project don't rebuild authentication

in millionth time payments password reset and all and all these things even if most of the sites

based on it will look the same hey i don't think it's a problem we have wordpress sites that look

the same we have bootstrap sites that look the same now it's tailwind and all the sites look

the same so i don't think it's a problem when you need to test your idea and ship an early version

and dealing with authentication and payments for two weeks for every other projects i think it's

It's just 2,000-ish or something like that.

2,000-ish, I like that.

That's a nice way of putting it.

Yeah, no, but you're right.

The need for starter templates is there.

And I should just, I think maybe I'll publicly mention,

I appreciate that you don't have Django in the name

because there is a case

that the Django Software Foundation board

and I are dealing with,

which is you cannot put Django, the trademark,

a paid software project, so a starter project, for example, there was one that recently front

page of Hacker News, that we are having them change the name, because you can put it in

educational project, but not in a starter project. So if anyone's listening, please don't just put

Django, don't put Django in the URL or the name of a paid software project. It saves the board time,

and we have to protect the trademark. So thank you for not doing that.

You just gave me a great marketing idea and blamed DSF for, hey, because of this requirement, I have to change the name, be the number one, and have a lot of eyeballs.

And then, like, thank you, Will, for saying that.

Yeah, that's one approach.

I mean, I just mentioned this because the board does a lot of stuff they think is invisible.

You know, when we have cases of this, you know, for example, we had someone, I think it was just a student.

We couldn't find out who, just straight copied jangoproject.com and put it on another domain.

And so in that case, we tried to contact the person.

They didn't respond.

But we, I think it was I did this, you know, we can go directly to the domain host, you know, whoever it was, and say, hey, take it down.

So we don't want to have to do that, but the organization exists to protect Django.

And so, yeah, so there is a question of, well, what if someone says no?

It's like, well, probably not a great idea to have a Django project that upsets the board and the members and everyone else.

But also there are legal steps that can be taken that generally we don't need to take.

It's an educational issue.

Anyways, just as a side note, that's something that the board and I have been dealing with.

That's, I think, probably not visible to a lot of people, but is important to keeping Django's reputation intact.

Yeah, the name of the previous attempt was largely inspired by the framework name.

Yeah, I think it's actually still in your sidebar on Applicoo, by the way.

Oh, thank you.

I just thought you might want to fix that.

Yeah, thank you so much for that.

Sure.

That brings us back to how many hats do we need to wear while building your projects?

Well, Carlton, what do you think?

Sorry, go ahead, Kasia.

Carlton, what do you think?

What are we talking about?

I think Ablakoo looks brilliant.

I've started projects, I think they're awesome.

I think, you know, how do you reliably make money Django-ing?

You know, say you sell Django development services.

How do you reliably make money at that?

The way you reliably make money at that is by having the repetitive bits automated.

So that, you know, you can go to a client and they can say,

oh, you know, here's some ideas.

And you can have those ideas prototyped in no time at all.

And, you know, it didn't actually cost you three weeks of development to build the working thing.

You had it spun up in, you know, a day or two.

And that's where the business is profitable.

So things like starter templates, things like third-party apps, things like deployment tools that, you know, just help smooth the process.

They're what make the business of developing with Django sustainable in the long run.

And then what, you know, why Django's so good is because, as you said, Koshu, when you first started, you're not, you know, in a day or two, you had something going that interacted with you.

And it's the same all this time later, that Django's still an excellent solution for getting stuff out the door, you know, double time.

That's what I think.

I think it's, you know, really exciting stuff.

But yeah, don't rob the trademark, people.

i think they don't realize um and if they do and we've told them there are steps that we can take

it just waste it doesn't waste it takes up a bunch of board time so please don't do it people

another thought that i had uh last year so i had a person came to me for some

custom development and what they wanted they started first with some no code builder

for a prototype i don't remember which one was that and after playing around they said they

realized they will be locked into that thing the famous vendor lock and while it is cool to

prototype something they played with it to understand what they want eventually

to build and they still make made some screenshots and got back to the to the

regular programmer not automated programmer and that brought me this idea

that we can even automate or augment the app development so that less tech

tech-savvy people can also play their role into creating or architecting the app so for example

the easiest part is building the data model all the models structure the models and the person

like a bit tech-savvy they can build these relationships between models see the Django

admin react on that and then hand it off to real developer who will do the

heavy lifting for them I think observed that most of the time in initial phases

of the project is wasted in communication between hey can you add

this field or can you make it integer or text field or optional or something else

or put something by default and if they can do it like we have air tables and excel for example

right it's what's what's driving all the corporate world people still do everything in excel if

people can do that before going to developer it will largely optimize the whole process so i guess

when i finish with to some degree with a starter template i will try to work on that wizard for

creation creating uh models and we'll see maybe i will do some semi no code tool eventually somewhere

in the future where you can click click click and build your app and eject it so that developers can

do the rest if it's needed maybe it will be an internal tool that you use for your automation

who knows but that's the plan for the next thing that's yeah it's cool i think if people can build

a django model and then an admin a lot of times they can get quite a long way you know then what

you have left is design and this can take forever yeah sure but at that point you're hiring you know

professional designers professional you know coders um but if you can empower people that's super

that's a really deep thought you just said because i think about that in the context of

teaching Django and what are the things people need to, to learn. And really once you've done

maybe, you know, five projects, like in my beginner's book, it really does. You kind of

see the waterfall of it starts with the models and then it flows through the views, the URLs

and templates. And it really does come down to the models, as you say, but you know, people don't

know SQL. They don't really understand how to do that. Um, but that is the core thing at which it

starts, right? Like when I look at a new project, first thing I do is look at the models. I assume

it's probably the same for the two of you. I mean, right. It's the, that's the foundation

on which everything else is built. Uh, so at the same point, if someone's changing that on you all

the time, uh, that's no, no bueno. That's a great idea. I like, I like that. Um, well, I think we're

basically on out of time. We have links to everything in the notes. Um, applicu.com it's

running. It's been around for a while. Everyone should try it. Uh, I'm very excited to see,

i think you know you're one of the first jenga specific deployment options that's out there and

you know there's plenty of space for it so i think it's great that it's out there and it's growing

yeah we'll try to make it better with every half an hour i have every day yeah that's super that's

great that's great advice i love that i want to see button deployed as well yeah no so much so i

can try it we're getting there we're getting there you can uh you can try the uh the the ludicrous

alpha is nearly ready ready for launch but i've been saying that for a little while but i got

slightly distracted by family issues this start of year so back on the horse just don't give up

to get no i'm not you're 30 minutes i love i'll just say this one and then we can wrap up but

like i got i did i literally got knocked off the road at the beginning of the year with my

my parents being ill and to get back on i sort of had this idea of just could i do one one pomodoro

you know this idea of a pomodoro where you do 25 minutes to concentrate it's okay well i'm not

going to break my dad but could i just do one and i managed to get back into doing one of open source

and one of this and then one on button it's like okay starting to build up a bit more of a routine

but i love the idea of just doing like 30 minutes or 20 minutes or one thing you see if you can do

that that's the habit which keeps it going and i would um both projects i want to my django x

starter project, I want to add deployment options, not just for Heroku, but for these other ones.

So that's something for me to do. I should talk to you separately, Kostya, about adding that.

But it's probably unlikely that the Django official docs is going to have a deployment

thing in there because then Django is sort of on the hook for it. But if popular starter projects,

You know, Cookie Cutter has this.

I think that just helps people get online faster with Django and see how it can be done.

The interesting thing with the docs is that things have got to have a lifetime of something like 16 years.

Like Django, they've got to have a realistic chance of going in the docs.

And people, you know, every so often it's like, oh, can we integrate the admin with this latest JavaScript framework?

It's like, well, clearly not, because that JavaScript framework just doesn't exist on the same timeline that Django exists.

And so to add it to the admin is just not feasible.

And it's the same with kind of things like deployment option.

No way are they going into the Django docs because they're just not, you know, it changes

every six months what, you know, the new thing that everyone wants to do, if that makes sense.

Okasha, thank you so much for coming on.

We've wanted to have you on for a long time.

And I guess maybe it's good that we waited because Applicu is even more developed than

where it was, you know, a year or two ago.

So I hope everyone listening does give it a try.

Thank you.

Thank you so much for inviting me.

Thanks for coming on.

Really good chat.

So we are, as ever, DjangoChat.com,

ChatDjango on Twitter,

and we will see everyone next time.

Bye-bye.

Bye-bye.

Bye-bye.