Kostja Palović is the founder of Appliku, a deployment platform for Django. We chat about his past running an agency, creating Appliku, and the current state of Django deployments.
This podcast does not have any ads or sponsors. To support the show, please consider purchasing a book, signing up for Button, or reading the Django News newsletter.
Will Vincent 0:05
Hi, welcome to another episode of Django Chat. I'm Will Vincent joined by Carlton Gibson. Hi, Carlton.
Carlton Gibson 0:11
Will Vincent 0:13
And we're very pleased this episode to welcome Kostja from Appliku.com. Welcome.
Kostja Palović 0:17
Hey, happy to be here.
Carlton Gibson 0:20
Will Vincent 0:21
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?
Kostja Palović 0:38
So about my career, as a programmer, I like to refer to 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 age 12. Four, that was my first $30 or something. And it was PHP, of course, it was horrible. But hey, who has like their first 30 bucks, earned through whatever I'm still doing 22 years later,
Will Vincent 1:14
and you get paid from the beginning to that's that definitely sparks sparks interest, right? Especially at that age, right? I mean, that's, that's real money. That's real money now. And even, you know, back then,
Kostja Palović 1:23
yeah, that was first dollar was I ever held in my hands? Yeah.
Carlton Gibson 1:30
What did you spend them on?
Kostja Palović 1:33
I have no idea. To be honest. I never thought of that. These days. So I started working on web development when I dropped out of 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, even 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. Like, what is Python. And 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 forum's 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 run me and my wife, we ran custom software development agency, and we use Django as well. So we tried to make the get clients with their bed, BHP CMSs, that were already falling apart, because they were that CMS wasn't made for that. And we were trying to build something custom with Django. And that was pretty exciting. until we run 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 the clients. And well, that's the recipe for disaster.
Carlton Gibson 3:56
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.
Kostja Palović 4:04
Yeah. And then you end up with one client being responsible for a 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 switch 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 Hiroko. I 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 Heroku 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 $7. For this for that for another process. And it piled up and it was $100,000. Like, no, there's got to be another way. I want droplet price of hosting, with the ease of Sirocco. Well, I started building my own Heroku came up with the name applica. And from a bunch of scripts for automating conflicts, 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, I think it started roughly this day, three years ago. Here we are, I have a working product that I'm happy with. Thanks to my wife, we have a great marketing website, and a lot of other things a league especially and yeah, that's that's the short story of it.
Carlton Gibson 6:40
Okay, so that's super sick. Give us the 10 liner on applicants. You said you mentioned droplet? So is it built on DigitalOcean? Is that.
Kostja Palović 6:47
So unlike to do, I think it's called cloud providers like your own we don't resell the cloud resources. Public who is a service that sits on top of your compute your resources in your cloud providers and provides all the necessary glue from to put your app from git repository into deployed on your server taking care of server setup. Bush to deploy all the complexity of Docker, isn't it? And yes, so you pay a flat fee monthly. And whatever resources you want to throw at it. It's between your and your cloud provider.
Will Vincent 7:39
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. So that well,
Carlton Gibson 7:52
this this, this is why I'm a bit scared because Costas 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 okay, so I'm about halfway to get
Will Vincent 8:01
we've talked about a rising tide lifts all boats. So wait, so it does it. Um, so obviously AWS, but then what are the other platforms that you can put in your, your keys for it? Right, I assume you have to do custom stuff right around Google resort, all the rest. So
Kostja Palović 8:20
initially, I tried with DigitalOcean. And I had the idea that you should provision your servers through the interface of applicants so that everything is set up, user will not make any mistake or speaking of no wrong keys, wrong distribution, or other settings. So through API, you can create server DigitalOcean and AWS. And if you want I think as of December, last December, you can use custom servers. So you basically need to spin up an 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 Hetzner, for example, which is a lot of times cheaper than AWS, well you can save plenty of money there or you may be have your own server rented for example, sour, she's not exactly cloud. You can use that as well. But it should be an empty fresh Ubuntu box
Carlton Gibson 9:40
speak the 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.
Kostja Palović 9:50
Yes, on 400 euros or 110 years. 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
Carlton Gibson 10:04
got bad memories of driving down the M four, which is a motorway in Britain, like two o'clock in the morning to go and change component.
Will Vincent 10:11
So you recently were on product time. And I also on Hacker News just on the marketing side because that's always a weakness for developers. How has 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.
Kostja Palović 10:30
So, first, it was Hacker News last year, and we got the first place. 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 in comments. But I was surprised how little negative people came in. And negative comments came in that moment. And that they it was a lot with product count this year. And it coincided with other events in political niche, it's called 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. Hear
Will Vincent 12:05
Carlton Gibson 12:07
Yeah, no. Yeah, I'm blushing now. Like,
Kostja Palović 12:13
it surprises me that you haven't signed because I think for half a year. I'm hearing from a friend of mine who is also listening 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?
Will Vincent 12:31
That's just me teasing Carlson. I should lay off I just get excited for him. And so I'm always mentioning it.
Carlton Gibson 12:37
Ya know? Like, what can I say? What can I say? You know, wily Coyote, like the roadrunner cartoons like the last year has just been like I'm walking along. I'm wily 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? The road runner to come and eat the seeds and the glue. And then I step in the step in the glue, I get stuck in the truck comes and knocks me for six with, you know, COVID family.
Will Vincent 13:05
So that that's that's the shallowing, 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. The Carlton has been working and continues to make progress on this because he is juggling so many things, 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 in the last couple of years. to it, right?
Kostja Palović 13:34
Oh, I've been working full time. Yes, they're all this time. And move between countries. So yeah, that was
Carlton Gibson 13:45
the question, right? So so you're, you're busy working in agency, when you've got these clients, and you're like, ah, 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
Kostja Palović 14:04
everyday so since I'm building the app itself on my own, it just dedicate half an hour every day to everything even if you just moved the baton around? It's already progress. And if you do it, like don't look at the week and say, Hey, I've done so little this week. No, look at the scale of the year and 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 understands what I mean by Carlton
Will Vincent 14:49
as you know, has more kids than I do so. Oh, I can't Okay, I think you have you have two kids I think but very little cry in fairness. Carlton, your yours a little old. So you have different things that take up your time. Yes, fair to say
Carlton Gibson 15:05
we haven't had any, we haven't, we haven't had any diapers for a while. So that's good.
Kostja Palović 15:10
So like, dedicate a little bit of your time to, like, plan. Not in details, but what you want to tackle this week. And 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,
Carlton Gibson 15:43
I think that's great advice,
Kostja Palović 15:45
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.
Carlton Gibson 15:59
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 for universe, you know, for the first first day out of the door, you know, native clients here, and they 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 the deliverable?
Kostja Palović 16:21
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 100 bucks for all the licenses. And then like you just see, you know, all this drawing boards. And 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. And I just automated every step. This is 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 applicant support Sonnerie requirements dot txt. If you are you using anything else, well, Deep Freeze requirements dot 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 adjust used to that, and they use it for no reason. And they again, if they use, how they call it dip file, hey, can you just do this deep 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
Will Vincent 18:33
every user find something new, like I recall just what 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 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 just 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ć 19:06
Yeah, there is no way I can cater for everyone. For example, applicants 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 tasks that you can solve with Kubernetes even those that usually those that don't exist in the first place. Probably because
Will Vincent 19:43
it was built a company A company problems somewhat similar to react right, you know, so bazooka for something a hammer might be able to solve.
Kostja Palović 19:53
Exactly. So usually, for what I've seen people it's not of course They're prizes 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 between servers, for example, run the web workers here, salary here, if you have super massive fat celery task that requires 60 gigs 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 cost way more. And if you have a special deal, or you can find another hosting provider, well, what it adds $20 $100 to 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 to the same it works. I go to 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 either it on weekends most 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?
Carlton Gibson 22:19
Cool. Hang on readers answers on a postcard today.
Kostja Palović 22:23
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, their log locking the apt get command. And when my script comes in, it's still locked. It says okay, sir, 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.
Will Vincent 23:34
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?
Kostja Palović 23:39
Yes, I built the checking for the log file for aptitude and edit a couple of slip commands if we need to wait and check again. But it was something that I never thought of.
Will Vincent 23:57
Well, you learn more about these hosting companies and you wanted to write I imagine for you as well, Carlton, right, like
Carlton Gibson 24:03
Yeah, no, but that that kind of stuff is gold dust because that's like your moat now like so. You know, I people, people come along, I'm coming on building my button, you know, similar sort of thing. And I haven't hit that bug yet. So I'm, you know, you've got like kind of a bit of water that I have to cross between. So I think that's brilliant.
Kostja Palović 24:19
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 because I only see the landing page. Yeah.
Will Vincent 24:28
Can I can ask about you also have a quite a few articles on aplica that are really well written. We featured a number of them on the jinko 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 your posts are high quality.
Kostja Palović 24:55
So articles are the main driver for marketing efforts. What I've done so far, right article really detailed, really well done and posted on Reddit and everywhere it can later in three weeks, post it on dev.to. Go and talk to people their 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 question 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 how I'm doing it, like container containers, Docker setup, or the environment variable setup, just so that they can keep 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 tried to make it answer all their questions like if you haven't, if there is a potential for an error here and 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 a space before that. 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 but it was a huge success. Because yeah,
Will Vincent 27:00
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 DigitalOcean built a lot of their, their marketing, right? They invested in really high quality tutorials. Which, let's say Heroku. Has not Yeah, but it's an investment. Right? It Yeah, sorry.
Kostja Palović 27:24
I googled today for how to set up node on Ubuntu. Because I was spinning up something you had a first line was DigitalOcean, I think second one as well, for different versions 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 mentioned, 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. So some articles, some sites don't have that much detail.
Will Vincent 28:20
As most don't Yeah, I mean, it's, it's interesting on the digital ocean just bought CSS tricks. They bought scotch.io. They're, they're a public company now. So they have some money. And it's there's a number of other sites, they've approached content sites to purchase. And it's, it's smart to buy SEO. But it's hard to it's hard to do. I sort of 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 you know, let, let me say stripe, you know, they, because I had the Django stripe tutorial for a while. They were like six people emailing me to update it. And I was like, why don't you write it? You know, so? I don't I still don't know why the more companies don't take this investment approach, because it does seem to really pay off.
Carlton Gibson 29:17
Is it? Is it about who they're aiming for. So like, you know, I imagine a do a good blog post about deployment or about how to integrate scribe with your Django project that's going to appeal to the individual developer. Whereas companies like Stripe are targeting corporate, you know, so they imagine they've got sales team so that Oh, yes. I mean, it's hitting up company. I
Will Vincent 29:39
know. Yeah. I don't know if they I know that. Um, who is it? Algolia. The search company. I remember I use them back in 2016 2017 on a startup I was working on and they were to your point they were fantastic. They they had they essentially helped us right. 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 hope that they do have that, you know, that kind of support at the enterprise level. But that's always the kind of the problem for something an 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 applica? Right, they come in with a small project or a small company? 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 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ć 30:47
You mean, how complex are requirements of the customer that I can't serve? Or what I guess
Will Vincent 30:54
so cuz 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. 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. I'm sort of rambling here, I guess I'm just trying to asking you to predict the future year round, when you have calculated way
Carlton Gibson 31:22
related way of phrasing. Who's your target market? Like? Are you targeting the big corporate people, you're 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 the switcher beyond yourself?
Kostja Palović 31:35
I guess. So. First, I thought that, it first of all, it's a long game in a way. So as is roto is a friend of mine said, You need to be on the market for a long time. Because not, it's the thing that we are building here is not some marketing bullpup 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 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 down, 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. That's why I have a little bit limited, constrained but free plan. So you can use applicable for free for as long 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. Yeah. You want like button comes out tomorrow? And like, Yes, I will deploy it on it.
Carlton Gibson 33:55
No, no, no, you're expecting?
Kostja Palović 33:57
Yeah, I think it exists for 46 hours already. Of course, I can trust you know what, you need to be around longer than that. So that's why I'm pretty patient with everything.
Carlton Gibson 34:08
I mean, you know, that's three years is longer than the average Google product, right?
Will Vincent 34:13
Oh, yeah. I mean, 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, Google, but even just when you deal with large corporations in the people there, people leave big corpse so much more rapidly than small corpse. So it's actually yeah, yeah, something that's smaller, that's self sustaining is always going to be more secure in a way or more stable than big Corp.
Kostja Palović 34:41
That's why I don't like when someone buys the company and the product and then kills it for nothing.
Will Vincent 34:48
Well, I guess if it takes out a competitor, I guess but anyways, yes, there's a if you have a sustaining replicant in
Kostja Palović 34:55
general. Yeah, yeah, talking in general. There was this amazing event. Mail application. 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 two provider. For example, a guy came in last year and said, Hey, we need static IP addresses. And Kyoko just can't give it to us. Yeah, now they can to make external requests to external API's. And they these IPs must be in the list and allowed list. And of course, Hiroko can do that. Or specific caching. Again, in Heroku, you can 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 in the app level or buy some crazy expensive blogging. We drive costs even further. So that's another option or with Heroku, config wire synchronization that we launched, I think two years ago, you can offload part of your app from Heroku. So I worked for a company that had that fat salary job that needed a lot of memory. And it ended up like $500 or $1,000, just for one salary worker. And they said, Hey, guys, we can just move everything, also in workers and all staging environments on one or two servers and have a deal of $160 instead of seven grand a month for all those fat resources on fat Dinah's, so we started saving in two days, we started saving like seven grand a month, solely because of that fed Dinah's. So that's pretty cool. I mean, it's an easy win low hanging fruit, and without much of engineering effort going into that,
Will Vincent 37:52
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 wasn't looking for this. And 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. So
Kostja Palović 38:08
well. Now you need only to know about applica in order to do that. That, yeah, that's why marketing,
Carlton Gibson 38:15
there's a big gap between like, 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 right way to spaces. There's lots of room left for lots of things. But to target that is, I think very sensible. I think it's you know, it makes
Kostja Palović 38:35
sense. Yeah, and building is not easy. Some some, some places where you need both Python and node is very tricky takes a long time to rebuild whatever could be done with a simple Docker file in multi stages, and take like 40 seconds, it will take you 15 minutes on the Heroku. I just remember that case with PIP file, which took every time a 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 within rely on caching. But in Hiroko, it was taking 15 minutes just to rebuild the whole app. So that was unpleasant experience with their built backs or everything together. But I blame of course, Buildpacks.
Will Vincent 39:29
While 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's just not, they're not going to focus on Django. So that's the big opportunity that is there for both the projects, you know, to optimize for Python. Django
Carlton Gibson 39:49
we had paid from Lincoln lupulin A few months ago, there's another one there. That's Eric Mathis came on, he's got his 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 40:03
But it is the it's a smart thing. I'm not doing a SAS I, if I was I would do deployment, because it's the only thing where it's tricky. It's an ongoing cost customer, and you want to have trust and get it right. And, you know, whereas education, you know, as a one off, right, you buy a book, and it's like, buy buy, whereas deployment, right? It's like, if you trust it, and, you know, so it's, like payments, it's it's one of those few areas where if you do it, right, it really makes a lot of sense. So good, good on both of you. Do we want to? So I know you also have started Project? What else would you have? You've known a number of things you've been working on? What else would you like to talk about in our, the next 1015?
Kostja Palović 40:49
I want to finish the part with applicable. Okay, yeah, please. Many times people said, Hey, like, you can do it for every language. Because after all your 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, if they come to me for support, I have no idea what to do with rails or PHP, and PHP was a long time ago. And 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 he 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 what know what, what exact thing will it be, but maybe just going through Django extensions and all their commands and see what can be could be just a button in the interface, then celery, some workers might have problems. And they are stocking, they're not processing anything. I plan to build some dashboard for rabbit in queue, or maybe for salary, I'm not sure yet was 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 celery at pretty large scale, maybe someone will laugh, of course, at my numbers, but it was enough for me. And we sometimes had these problems, a some cue just stopped processing. And in fact, it's not that the worker is not dead is 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 attention to other frameworks, because I'm not finished yet. And I don't think that Django is going anywhere anytime soon. So amazing framework library,
Carlton Gibson 43:47
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, the why isn't dango gotten out of the box deployment solution and you know, in Django, you know, managed.py Deploy, why doesn't that exist? Well, it's because if you were to suggest that to the Django developers mailing lists, they'd be as many answers as there are developers and there's no you just so unless you focus on some opinions unless you say look, we're gonna do it this way. I you know, requirements dot txt or you know, that you've mentioned now and various other things we're going to use environment variables for this that the other that you just would never get out the gate we couldn't possibly cater for every different ways and every different framework different has slightly different opinions, best practices, focusing, lets you ship you know, it's the same night don't ship every product, every feature to begin with, right?
Kostja Palović 44:39
You know, there is another simple way, for example, how to be paralyzed by choice. How can you run, what will you choose to run your application on AWS? infinite number of ways, infinite number of ways.
Carlton Gibson 44:58
That's, that's actually what you have to choose. That's actually one of the things that 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?
Kostja Palović 45:11
Exactly. So yeah, let's get back to start your 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 the Django, you have a bear Django that doesn't know about and variables have no registrations and dashboards and pretty much anything, it can even properly send emails, because every email provider has API's. So over like, three years I was building what those I'm using, and try to, was carrying this cart with me of all the libraries and pieces of configurations that I had. And every time I needed to what project I did it, where did I do that feature, and I was copying it with 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 happened in the first place. So this year, I finally understand understood that the spy API 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 end virus 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 speed buy.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 and median 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 is just to 2000 2000 dish or something like that
Carlton Gibson 48:27
2000 dish. I like that. It's a nice way of putting it.
Will Vincent 48:30
Yeah, no, but you're right that I need for starter templates is is there. And I should just I think maybe I'll publicly mentioned, 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 in a paid software project. So I started a project, for example, there was windy recently, a front page of hacker news that we are having them change the name, because you can put 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ć 49:16
You just gave me a great 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 for for, for saying that.
Will Vincent 49:35
Yeah, that's one approach. I mean, I just mentioned this because the board does a lot of stuff. They think it's 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 Django project I calm 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 yeah, so there's a question of, well, what if someone says no, it's like, Well, probably not a good 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 me, I think, probably not visible to a lot of people. But it's important to keep in Django. Django is reputation intact.
Kostja Palović 50:37
Yeah, the name of the previous attempt was largely inspired by the framework name.
Will Vincent 50:42
Yeah, I think. I think it's actually still in your sidebar on applica, by the way, oh, thank you. I just might want to fix that.
Kostja Palović 50:55
So much for that. Sure. That brings us back to how many hats do we need to wear while building your projects?
Will Vincent 51:04
Oh, Carlton, what do you think this? Kasha Karthik? Carlton, what do you
Carlton Gibson 51:09
do, which we talked about? I think abiku looks brilliant. I've started projects. I think there are also I think, you know, how do you how do you reliably make money January in you know, say you sell Django development services? How do you reliably make money at that, the way you Murali make money, that is by having the repetitive bits automated, so that, you know, you can go to a client, and they can say, Oh, we know his ideas, and you can have those ideas, prototypes, 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 helps smooth the process. They're what make the business of developing with Django sustainable in the long run, and they will you know, why Sangha is so good is because, as you said, it costs you 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 is still an excellent solution for getting stuff out the door in double time. That's what I think. I think it's really exciting stuff. But yeah, don't don't, don't don't rob the trademark people.
Will Vincent 52:26
I think they don't realize. And if they do, and we've told them, there are steps that we can take it just waste, it isn't waste, it takes up a bunch of our time. So please don't do it. People
Carlton Gibson 52:36
Kosha, you're gonna,
Kostja Palović 52:38
another thought that I had last year. So a headache. 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 made some screenshots and got back to the to the regular program. They're not automated programmer. And that brought me this idea that we can even automate or augment the app development so that less tech savvy people can also play a role into creating or architecting the app. So for example, the easiest part is building the data model, or the model 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 handed 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 textfield? 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 go into developer it will largely optimize the whole process. So yes, when I finish with to some degree With a starter template, I will try to work on that wizard for creation creating models. And we'll see maybe I will do that some semi no code to eventually somewhere in the future where you can quickly click and build your app, and injected 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 that that's the plan for the next thing.
Carlton Gibson 55:34
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ć 55:43
then what you have left is design. And this can take forever. Yeah, sure.
Carlton Gibson 55:46
But that by that point, you're hiring, you know, professional designers, professional, you know, coders. If you can empower people. That's super.
Will Vincent 55:55
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 five projects, like in my beginners 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. But that is the core thing, 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. So at the same point, if someone's changing that on you all the time. That's No, no bueno. That's a great idea. I like I like that. Well, wait, I think we're basically out of time, we have links to everything in the notes. africa.com it's running, it's been around for a while, everyone should try it. I'm very excited to see. I think, you know, you're one of the first Django 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ć 57:06
Yeah. We'll try to make it better. With every half an hour I have everyday.
Carlton Gibson 57:13
Super. That's great. That's great advice. I love that.
Kostja Palović 57:16
I want to see button deployed.
Carlton Gibson 57:18
Yes, no. So we can try it again. Now again, now you can you can try the the ludicrous alpha is nearly ready to get 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 No, you have to get no I'm not that you're 30 minutes, I love to say this one. And then we can wrap up. But like I got, I literally got knocked off the road at the beginning of the year with my my parents being here. And to get back on, I sort of had this idea of what could I do one, one Pomodoro. One, you know, this idea of a Pomodoro? You do 25 minutes to concentrate? It's okay. Well, I'm not going to break my debt. But could I just do one? And I managed to get back into doing it one of open source and one of this and then what on button is that? Okay, starting to build up a bit more routine. But I love that idea of just doing like 30 minutes or 20 minutes or one thing we see if you can do that. That's the habit which keeps it going.
Will Vincent 58:10
And I would both projects, I wanted my Django X started 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 cost you about adding that. But that's you know, it's it's not, 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 started projects, you know, cookie cutter has this. I think that just helps people get online, write faster with Django and and see how it can be done.
Carlton Gibson 58:47
Will Vincent 59:27
Oh, gotcha. Thank you so much for coming on. Want to have you on for a long time? And I guess maybe it's good that we waited because applica was even more developed than where it was, you know, a year or two ago. So I hope everyone listening does give it a try.
Kostja Palović 59:39
Thank you. Thank you so much for inviting me
Carlton Gibson 59:42
know. Thanks for coming on. Really good chat.
Will Vincent 59:44
So we are as ever Django chat.com Chat Django and Twitter and we will see everyone next time the light Bye bye. Bye bye.