← Back to Show Notes

Transcript: Appliku - Kostja Palović

Will Vincent

Hi, welcome to another episode of Django Chat.

I'm Will Vincent, joined by Carlton Gibson.

Hi, Carlton.

Hello, Will.

Will Vincent

And we're very pleased this episode to welcome Koship from Appliku.com.

Welcome.

Kostja Palović

Hi.

Happy to be here.

Hi, Gosh.

Happy to have you.

Will Vincent

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?

Kostja Palović

So uh about my career as a programmer, I like to refer it as I'm 35 right now, and I have 22 years of professional uh web development experience because the first site I made was in school at the age 12, for uh that was my first $30 or something.

And it was PHP, of course.

It was horrible if we look back at it, but hey, who has like their first 30 bucks earned through whatever I'm still doing 22 years later?

Will Vincent

And you get paid from the beginning too.

That's that definitely sparks a sparks an interest, right?

Especially at that age, right?

Will Vincent

I mean, that's and that's real money.

That's real money now, and even you know, back then.

Kostja Palović

Yeah, and that was first dollars I ever hold held in my hands.

Yeah.

Carlton Gibson

What did you spend the most?

Kostja Palović

I have no idea, to be honest.

I 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 e1line, which uh was is still built on Python, somebody said, Hey, this game is made with Python, you can do a lot of things with it.

I'm like, what is Python?

And a few hours later, I was exposed to Django, some I 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 uh pages, and like in two days from first uh knowing about Python without actually knowing the language itself, I've built something, and my

uh 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 uh me and my wife, we ran um custom software development agency, and we used Django as well, so we tried to uh make the get clients with their bad PHP CMSs that were already falling apart because they were that CMS uh 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 uh decided to wrap it up because when you want to create uh amazing things, you need amazing people.

Then we couldn't scale clients, and uh well that's the recipe for disaster.

Carlton Gibson

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

Kostja Palović

yeah, and then you end up with one client being ri 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 uh we switched to other things and I started thinking um what projects we can build, started talking about it, and we tried to build some apps, and I realized that it is so terribly uh time consuming to spin up a new application to deploy it, and I was like, no, there's gotta be an easy way.

So, first was of course uh googling what people use.

I tried Hiroku, like, wow, it's so better than writing configs for two days and to have your hello world uh 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, nope, there's gotta be another way.

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

Well, I started building my own Heroku.

Uh came up with the name Appliku, and uh from a bunch of scripts for automating uh 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 I think it started roughly 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, legal especially, and uh yeah, that's uh that's the short story of it.

Carlton Gibson

Okay, so that's super.

So give us the 10 liner on Aplico.

It's you said you mentioned droplets, so is it built on digital ocean?

Kostja Palović

Is that so unlike uh tier two, I think it's called cloud providers, like Europe, we don't resell the cloud resources.

Aplicu is a service that sits on top of your uh compute, your resources in uh your cloud providers, and provides all the necessary glue from to to put your app from git repository into uh deployed on your server, taking uh care of server setup, push to deploy, all the complexity of Dockerizing it.

And uh yes, so you pay flat fee monthly, and whatever resources you want to throw at it is between you and your cloud provider.

Will Vincent

I remember trying out a a prototype of it, I think at least two years ago, and entering in my AWS keys, and I think this might have been but Carlton before you told me about button, actually.

Um so that's

Carlton Gibson

well, this this this is why I'm a bit scared because Costa just said three years, and you're saying two years ago, and I'm like a year and a half into doing button, and it's like okay, so I'm about halfway to getting it.

Will Vincent

We've talked about it.

Rising tide fills all votes.

So wait, so it does it um so obviously AWS, but then uh what are the other platforms that you can put in your your keys for?

Or it right?

I assume you have to do custom stuff right around Google or Zor and all the rest.

Kostja Palović

So initially I tried with uh DigitalOcean, and I had the idea that you should provision your servers through the interface uh of Aplico so that everything is set up, uh user will not make any mistake with picking, I don't know, wrong keys, wrong uh distribution, or other settings.

So through API you can uh create server on digital ocean and AWS, and if you want, I think as of the December, uh last December you can use custom servers, so you basically need to spin up any Ubuntu server and provide the IP address and uh username and um put the keys uh public

key in the in this during the server creation basically.

So if you want to use Hetzner, for example, which is a lot of times cheaper than AWS, well you can save plenty 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.

Carlton Gibson

Speaking of money, though, 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.

Kostja Palović

Yes, on for 100 Euros or 110 euros, you get, I don't know, uh a flagship or whatever.

Big, big, really big server.

Carlton Gibson

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.

Will Vincent

So you recently were on product hunt and I 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 like?

Will Vincent

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?

Kostja Palović

So first it was Hacker News last year, and we got to the first place the 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 I set up the notifications on my phone when someone um signs up, and boy, it never was silent for a minute.

We had so many signs up, and people started talking, offering uh asking questions, offering something.

Of course, there was some negative um somewhat negative in comments, but I was surprised how little negative people came in and negative comments came in at that moment and that day.

Um it was a lot.

Uh with product hunt this year, and it coincided with uh other events in political um 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.

Will Vincent

You guys hear that, Carlton?

Carlton Gibson

Yeah, no, I'm blushing now.

Like I heard it.

Kostja Palović

It surprises me that you haven't launched because I think for half a year I was uh hearing from a friend of mine who is also a listener to the show.

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

Will Vincent

No, that's just me teasing Carlton.

I should lay off.

I I just get excited for him, and so I'm always mentioning it.

Carlton Gibson

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 the truck comes and knocks me for six with you know COVID and family.

So that that's that's the

Will Vincent

Well fellowing, Carlton.

I mean, you're also you have a number of other things do 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 of years to it, right?

Kostja Palović

I I've been working full time, yes, through all this time, and uh moved between countries.

So yeah, that was that was tough.

Carlton Gibson

So that's the question, right?

So so you're you're busy working an agency um when you've got these clients and um you you're like uh the business 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 the

Kostja Palović

every day.

So since I'm building the app itself on my own, um it just dedicates half an hour every day to the app.

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 uh some calm time while everyone is sleeping at home.

Will probably understand what I mean.

Will Vincent

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

Because I think you have you have two kids, I think.

Two kids.

Will Vincent

But but very little.

In fairness, Carlton, you're a little yours a little older, so you have different uh things that take up your time than type this.

Yes, fair to

Carlton Gibson

say we haven't had me diapers for a while, so that's good.

Kostja Palović

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

And uh 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 uh 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.

Carlton Gibson

Yeah, I think that's great.

Kostja Palović

Don't blame yourself, you know, for doing something uh 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.

Carlton Gibson

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?

Kostja Palović

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 spend a few hundred bucks for all the licenses, and then like you're just seeing all at 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 a product uh to be to look as cool as some other established companies with uh billions of dollars in funding, uh I decided just to solve the problem.

So I want um my app running, um and I just automated every step.

That's it.

Kostja Palović

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, applique supports on requirements.txt.

If you are using anything else, well beep freeze requirements.txt and let's keep it going.

Um so that that's probably the recipe.

I'm doing first what I need, what was my everyday thing, um, 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 uh how do you call it peep file, hey, can you just do this peep 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.

Will Vincent

When every every user finds something new, like I recall just when I went through, there was 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 I there was something with the um 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 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.

Kostja Palović

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

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

So it's 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 uh tasks that you can solve with Kubernetes, even those that usually those that don't exist in the first place.

Uh, probably because Kubernetes is

Will Vincent

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

It you know, it's a bazooka for uh something a hammer might be able to solve.

Kostja Palović

Exactly.

So usually from what I've seen, people it's not of course enterprises or uh 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, um, some components split it between servers.

For example, run web workers here, salary here.

If you have super massive fat salary tasks that requires 60 gig of RAM, well put it on a server separate server and call it a day.

That's it.

You can uh 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 $20, $100 to a 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 um why some people complain that their servers can't finish setting up, and that's one of those stories that we have in our um notes in our file.

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

Kostja Palović

I go check right now, okay.

Job can wait a little bit, half an hour.

I go try and deploy it.

Turns out during week, in fact, new servers don't get set up.

Why?

Race condition.

Can you guess why?

Carlton Gibson

Cool, hang on, readers, answers on a postcard today.

Kostja Palović

So, point is during weekend the workload in data center is lower.

So when my script comes in, it uh creates a server, comes into the server, and starts setting up everything.

Yeah, uh 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, all the host machines are more busy, they don't finish their processes updating the caches, they are locking the apt get command, and uh when my script comes in, it's still locked.

It says, Okay, server error, I can't install anything.

And uh 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.

Will Vincent

Did so what was did were you able to come up with a solution?

Can you build in some wait time or what was the yes?

Kostja Palović

Uh I built the checking for the log file for aptitude and added a couple slip commands if uh we need to wait and check again.

But it was something that I never thought of.

Will Vincent

Well, you learn more about these hosting companies than you wanted to, right?

I imagine for you as well, Carlton, right?

Carlton Gibson

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, uh, 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 us.

So I think that's brilliant.

Kostja Palović

Well, since you haven't launched yet, you wouldn't uh be able to say that I stole some ideas from you.

No, no, no, just

Kostja Palović

because I only see the landing page.

Will Vincent

Yeah, yeah.

Can I can I ask about you?

Also have uh quite a few articles on um Appliku that um are really well written.

We featured a number of them on the Django newsletter.

Just on the again, I 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.

Kostja Palović

So articles are the main driver for um marketing efforts.

Um 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, uh post it on dev.to and uh talk to people there, answer their questions.

So these articles are in fact the only probably the only marketing effort that I'm doing.

Uh, first, people come and ask uh some question how to deploy because again, when you go from local um app to trying to deploy it, a lot must be changed.

You've talked about it uh in deeply in the other episode.

And I needed to show people uh how I'm doing it, like containers, docker setup, all the environment variables setup, just uh so that they can skip those evolution steps that I went through.

Maybe some people will have other uh options and uh choices for their apps, but that's what works for 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 the this is the error, what's the problem?

Yeah, you had to put a space before dot uh in some command.

Oh, I didn't never notice 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

Will Vincent

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

It yeah, so anyways.

Kostja Palović

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 uh 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 say, Hey, this is self-promotion.

Hey guys, I worked two weeks on this article.

Yeah, yeah.

Kostja Palović

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

Most don't, yeah.

Will Vincent

I mean it's it's interesting.

On the uh DigitalOcean just bought CSS tricks, they bought Scotch.io.

They're um they're a public company now, so they have some um money, and it's um there's a number of other sites they've approached content sites to to purchase, and it's it's smart to to buy SEO.

Um, but it's hard to it's hard to do.

I sort of, you know, there DigitalOcean 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 um, you know, let 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, well, 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.

Carlton Gibson

Is it is it about who they're aiming for?

So like you know, I imagine uh a d a good blog post about deployment or about how to integrate Skype with your Django project, that's gonna appeal to the individual developer.

Um whereas companies like Stripe are targeting corporate, you know, so they've they've probably I would imagine they've got sales teams like that she's

Will Vincent

I mean it's

Carlton Gibson

hitting up companies.

Will Vincent

I know, yeah.

I don't know if they I know that um who was it?

Um Algolia, the the search company.

Um 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 had 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.

Um 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 the I yeah, I think Heroku doesn't care, right?

It's hard to justify it, even though how do they drive their funnel?

Um so maybe uh a long way of saying how what do you see as the progression of someone on Appliku, right?

They come in with a small project or a small company.

Um at what point, you know, I guess you'll you'll have to decide when do you say, you know, it's too complicated for for what I can do?

Or how how do you see that playing out, right?

That's that's probably a problem you haven't had yet, but that's a success problem.

Kostja Palović

You mean how complex are requirements of the customer that I can't uh serve?

Or what do you think?

Will Vincent

I guess so, because that's I think that's the thing with Yeah, I 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 ask you to predict the future around when you have how to

Carlton Gibson

relate where related way of phrasing, who's your target market?

Like who are you targeting the big corporate people, or 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.

Kostja Palović

So, first uh I thought that it's first of all, it's a long game anyway.

SAS is brutal, as a friend of mine said.

Uh you need to be on the market for a long time.

Because no, it's the thing that uh we are building here is not uh 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 um in the field, but they probably don't have uh money to throw away.

So first let me try to um find words for that.

You want to find developers who are studying, who are seeking for uh solutions, and uh they have to get used for that.

So I think it's called uh top down, no, not top-down, the other way around, bottom-up uh 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 they use for their home lab for home experience experiments.

Um that's why I have a little bit um limited, constrained, but free plan, so you can use Aplico 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.

Yep.

You won't like button comes out tomorrow and like yes, I will deploy it on it.

Carlton Gibson

No, no, no, you expect it to

Kostja Palović

be it, it exists for 46 hours already.

Of course, I can trust it.

Well, you you you you need to be around longer than that.

So that's why I'm pretty patient with everything.

Carlton Gibson

I mean, you know, that's three years is longer than the average Google product, right?

Will Vincent

Well, yeah, I mean that 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 gonna be more um secure in a way, or more stable than big corp.

Kostja Palović

That's why I don't like uh when someone buys the company and the product and then kills it for nothing.

Will Vincent

Well, I it's if it takes out a competitor, I guess.

But anyways, yes, there's a if you have a sustaining remote.

Kostja Palović

Top token in general.

Yeah, yeah.

Kostja Palović

Top token 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, um that have usually one or two developers, and they just want to optimize either costs or they have certain um requirements for technical requirements, and they

can't uh meet them with Hiroku or other uh tier two provider.

For example, a guy came in uh last year and said, Hey, we need static IP addresses, and Hiroku just can't give it to uh to us.

Yeah, they need to make external requests to external APIs, and there these IPs must be in the list, in the loud list, and of course Hiroku can't do that, or specific caching.

Again, in Hiroku, you can't do anything with a web server, so you have to do everything on the up level, even caching, if you want to do, you have to do on the up level, or buy some crazy expensive plugin which drive costs even further.

So that's uh another option, or with Hiroku config bar synchronization that uh we launched I think two years ago, you can offload part of your app from Hiroku.

So I worked for a company that had uh that fat celery 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 salary workers, and all staging environments on one or two servers and have a b

ill 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 uh going into that.

Will Vincent

Well, low-hanging once you've done it a few times.

I mean, you would 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.

Kostja Palović

So well, now you need only to know about Aplico in order to do that.

But yeah, that's why marketing.

Carlton Gibson

There's a big gap between like to the Heroku, it's great.

It's 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 makes sense.

Kostja Palović

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 uh in multi-stages and take like 40 seconds, it would take you 15 minutes on the Hiroku.

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 in rely on caching, but in Heroku it was taking 15 minutes just to rebuild the whole app.

So that was uh unpleasant experience with their built packs or everything together, but I blame of course built packs.

Will Vincent

Well, they're 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 gonna 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.

Carlton Gibson

We had Pete from Linkin Loop on a few months ago.

There's another one there.

It's um Eric Mathers 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.

Will Vincent

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 cust customer, and you want to have trust and get it right.

And um, 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's you know, so it's a like payments, it's it's one of those few areas where if you do it right, it really makes a lot of sense.

Um so good on both of you.

Um do we want to so I know you also have uh starter project.

Um what what else would you have you've num a number of things you've been working on.

What else would you like to talk about in our the next 10-15?

Kostja Palović

So I want to finish the part with uh applique.

Okay, yeah, please.

Kostja Palović

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.

Uh theoretically, yes, uh you can still deploy any uh 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.

Uh 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 Rails I still don't understand their syntax, and uh 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 uh 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 I don't exactly know what know 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 salary, some workers might have problems and they are stuck and uh they're not processing anything.

Uh 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 cues are not being processed at all, because again, I have plenty of uh experience with uh salary at uh pretty large scale, maybe.

Someone will laugh, of course, at my numbers, but uh it was enough for me.

And we sometimes had these problems.

Hey, some Q just stopped 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 an amazing framework.

Carlton Gibson

You said earlier on about um 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 are, you know, the why hasn't Django got an out-of-the-box deployment solution in you know, in Django, you know, manage.py deploy.

Why doesn't that exist?

Carlton Gibson

Well, it's because if you were to suggest that to the Django developers mainly 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 gonna do it this way, i.e., you know, requirements.txt, or you know, that you've mentioned now, and various other things, we're gonna 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?

Kostja Palović

You know, there is another simple way, uh, for example, of how to be paralyzed by a choice.

Uh, how can you run what will you choose to run your application on AWS?

Infinite number of ways.

Infinite number of ways.

Carlton Gibson

That's that's actually what's 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 gonna ship it, I'm gonna provision on AWS.

Okay, well, which way am I gonna tell you to do it?

Exactly.

Kostja Palović

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 a starter project.

And when you start with the Django, you have a bare Django that doesn't know about end variables, have no um registrations and dashboards and pretty much anything.

It can't even properly send emails because every uh email provider has APIs.

So over like three years I was building what uh tools I'm using and tried to was carrying this uh cart with me of all the libraries and pieces of configurations that that I had, and every time I needed to ah, what project I did it, where did I do that feature?

And I was copying it between projects, and of course, these snippets were not updated, and uh 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 PyPI where I can put the base package for the starter project.

I discovered for myself uh Django configurations, which is an amazing tool uh with some edge cases.

Um 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 uh all this stuff, and you can manage it from NVARS 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 the 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 speedpy.com, um, it's called my point is to uh 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 uh dealing with authentication and payments for two weeks for every other project.

I think it's just two thousand ish two thousand-ish or something like that.

Carlton Gibson

Two thousand-ish, I like that.

That's a nice way of putting it.

Will Vincent

Yeah, no, but you're right that a need for starter templates is 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 you cannot put Django, the trademark, in a paid software project.

So a starter project, for example.

There was one the recently front page of Hacker News that we are um having them change the name because um you can put it in an 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.

Kostja Palović

You just gave me a great uh marketing idea and blame 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, Bill, for say for telling me for saying me that.

Will Vincent

Yeah, that's one approach.

I mean, I just mentioned this because the board does a lot of stuff I 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 uh Django Project.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, 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 um Yeah.

So that you know there is a question of, well, what if someone says no?

It's like, well, uh probably not a great idea to have a Django project that upsets the board and the members and everyone else, but also there are uh legal steps that can be taken that generally we don't need to take.

Um it's an educational issue.

Anyways, just as a side note, that's something that the board and I have been dealing with um that's may I think probably not visible to a lot of people, but is important to keeping Django Django's reputation uh intact.

Kostja Palović

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

Will Vincent

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

Kostja Palović

Oh, thank you.

Will Vincent

I just thought you might want to fix that.

Um Yeah, thank you so much for that.

Kostja Palović

Sure.

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

Will Vincent

Well, Carlton, what do you think?

This or sorry, go ahead, Kasha.

Kostja Palović

Carlton, Carlton, what do you think?

Carlton Gibson

What?

What are we talking about?

I think Appleku looks brilliant.

Um starter projects, I think they're also I think you know, how do you how do you um reliably make money Djangoing in the 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 um 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 they're what you know, why is Django so good?

It's because as you said, it cost you when you first started, you 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.

Carlton Gibson

I think it's you know really exciting tough.

Um, but yeah, don't don't don't don't rob the trademark people.

Will Vincent

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.

Carlton Gibson

Well, Kosha, you were gonna

Kostja Palović

replace another thought that I had uh last year, so I had a um person came to me for some uh custom development, and what they uh 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 uh thing, the famous vendor lock.

And uh while it is cool to prototype something, they played with it to understand what they want eventually to build, and they still made some screenshots and got back to the uh to the regular programmer, not automated programmer, and that brought me to this idea that we can even automate or augment the app development so

that less 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 a person like a bit tech savvy, they can build these relationships between models, see the Django admin react on that, and uh then hand it off to real developer who will do the heavy lifting for them.

I think I 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 uh 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 uh 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 uh eject it so that developers can do the rest.

If it's needed, maybe it will be uh an internal tool that you use for your automation, who knows?

But that's the plan for the next thing.

Carlton Gibson

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.

Kostja Palović

Then what you have left is design, and this can take forever.

Carlton Gibson

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.

Will Vincent

That's a really uh deep thought you just said, because I think about that in the context of teaching Django and what are the things people need 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.

So that's a great idea.

Will Vincent

I like I like that.

Um while we're I think we're basically on out of time.

We have links to everything in the notes.

Um Appliku.com, it's running, it's been around for a while.

Everyone should try it.

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

Kostja Palović

Yeah, we'll try to make it better with every half an hour I have every day.

Yeah, that's super.

Carlton Gibson

That's great.

That's great advice.

I love that.

Kostja Palović

I want to see Button deployed as well.

Carlton Gibson

Yeah, no, so don't launched so I can try it.

We're getting there, we're getting there.

You can uh you can try the uh the the 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.

Kostja Palović

Don't give up.

Carlton Gibson

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 what just could I do one Pomodora?

One, you know, this idea of a Pomodora where you do 25 minutes to concentrate.

It's okay, well, I'm not gonna break my dad, but could I just do one?

And I managed to get back into doing it at one of open source and one of this, and then one on button.

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

Because if you can do that, that's the habit which keeps it going.

Will Vincent

And I would um both projects, I want to uh my Django X starter project, um, I want to add deployment options, um, not just for Heroku, but for these other ones.

So that's something for me to do.

I should talk to you separately, Kasha, about adding that.

Um, but that's you know, it's it's not it's probably unlikely that the Django official docs is gonna have a deployment thing in there because then Django's sort of sort of on the hook for it.

But um, if popular starter projects, uh you know, Cookie Cutter has this, um I I think that just helps people get online right faster with Django and and see how it can be done.

Carlton Gibson

The 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, you know, 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.

Yeah.

Will Vincent

Well, Kasha, thank you so much for coming on.

Um, we've wanted to have you on for a long time.

And I guess maybe it's good that we waited because AppleCo is even more developed than where it was, you know, a year or two ago.

Um, so I hope everyone listening does give it a try.

Kostja Palović

Thank you.

Thank you so much for inviting me.

Carlton Gibson

No, thanks for coming on.

Really good chat.

Will Vincent

So we are as ever DjangoChat.com, Chat Django on Twitter, and we will see everyone next time.

Bye bye.

Bye bye.

Bye bye.