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.