Party Corgi Podcast

MDXConf Speaker: Jonathan Bakebwa

Episode Summary

MDX Conference speaker interview with Jonathan Bakebwa about his work on Chakra UI Vue and more.

Episode Notes

Episode Transcription

Chris Biscardi: [00:00:00] All right, we're recording now. Hey, Jonathan, would you like to take a minute to introduce yourself?  

Jonathan Bakebwa: [00:00:08] Hey, Chris. Um, my name is Jonathan . I'm from Uganda and I live in, uh, in Beijing, China. I am studying computer science. I mean, my final year I turned 24 this year. And, uh, I'm also the creator of chakra UI view and a few other view projects, projects near view ecosystem, uh, as well as, um, I also cofounded a startup in Beijing.

Uh, Yeah called Acardo and we're providing remote simultaneous interpretation. Um, so yeah, that's, uh, that's me, I guess, in a nutshell,  

Chris Biscardi: [00:00:44] that's awesome. Um, I've had the absolute pleasure of seeing you like choose to take on the shocker UI view project and then execute on it over the last few months. Uh, and I have to say I'm super impressed.

Like, uh, it seems like you just decided that you were going to do it and then just did it, like, how did you choose that as a project that you wanted to work on?  

Jonathan Bakebwa: [00:01:04] Um, well, first of all, I think you're very kind, right. I really do appreciate lean on that kind of feedback coming from you. Um, yeah, at the time I I've written like so much CSS.

Like I wrote so much CSS and I got to a point where like, you know, we're building a startup at a car. Do we wanted to build like, uh, something where we didn't have to start. Building a components from scratch, but at the same time, like, I didn't want to like adhere to a very like tight design system. And so like the idea to like build a component library that gives me this ability, this level of flexibility came up.

And so it was actually initially called QE and along the way, I came across chakra UI. And that was when I decided, you know what, I'm just going to make this thing, like a view of you thing. I talked to Sage, the creative, the react version, and we sparked off like a. Friendship like from there. And, um, yeah, since then, like that's how it became a project.

Um, and I think for me, the real motivation was to like, give like, um, consumers of a component library, the flexibility to, to use a component library that fulfills both the visual and functional aspects of a component library, but also gives them control over how it looks without having to like. Use like CSS styles with important at the end.

So yeah, that was my main motivation. That's awesome.  

Chris Biscardi: [00:02:30] Um, I feel like this is a kind of project that a lot of people start to take on and then never finished. How did you like get into the middle of it? And once you were in the middle of it, how did, how did you, where did you find the end? How'd you shift this?

Jonathan Bakebwa: [00:02:44] Oh, man. Chris Aboriginal for libraries. Just working on chakra. Yeah, right? Yeah. Like I could have easily. I think I of like, well, I can look at like points where I said, man, why am I even doing this? Because it took me a while to get the button. That's the first thing I remember, I finally did. I was showing it, Oh my cause.

You know, we're doing, we have like a view Beijing, um, ecosystem here. Right. And so I was like showing it, all my friends and like, like, yeah, dude, that's a button. I made, it was like, you can use the colors in your theme and you can like change it. And you can like, you use stale props and like, nobody was excited about it at the time.

I just kept going because I felt like it was so no problem for me. Um, I was learning a lot and that was amazing because if I had the chance to read the. Yeah, ordering practices, a WUI area, ordering practices. It's a very boring document, but like you learn a lot of things from it, uh, to speak anyway. It's not made to be like fun to read and, um, you know, along the way, like, um, I guess, cause I really wanted this as something in the view system to have, they are in many ways, libraries that give you that, like that level of like, I want to change the theme of my.

Application like most will probably let you, or you can change the colors. Um, and that's about it. Um, like, and not even like entire scheme of colors, you just have like, just. These five colors. One is primary, secondary, like, you know, and all, and there's a really nice component libraries, but I think as someone who's done design before, um, I feel like I would like to have a component library that is faithful to design to the designs that I come up with.

So, um, that's where like the, I guess that, that the motivation is what really pushed me, um, to. Um, to like, make sure this thing like comes out at the end. Yeah, man. Like you wouldn't believe it originally for different things. Like really? Uh, yeah, but it wasn't such a journey. And, um, I also think Sage has a lot Dana Sigrun Andy bio.

Um, a lot of times when, like I had like very specific like problems, I'd like, you know, come to terms like, Hey, uh, what was going through your mind when you decided to do this thing? And like, how did you do it? And, um, Yeah, he would, you know, would get on a call. We'll talk for like two would be like, Oh, it's going to be five minutes only.

And then we'll like talk for like two hours, sometimes four. Yeah. And the night would like, for me, it's like 4:00 AM. And I'm like, just like nodding my head. Yeah, yeah, yeah. Yeah. It was like a lot of ideas as well. So he's like a really like, Gail is like a really sharp guy. So yeah, it was like this. That's how I imagine every conversation like that too.

My time. I'm going back to like my editor. I'm like two 10. Yeah. Yeah. This is how it was. Um, the, during the journey. Uh, and I'm glad like it came to a close. Um, it was, that was probably the hardest part because I kept seeing places I could improve and I didn't want to release it until probably took like two months until I decided, you know what, I'm just going to ship this thing and fix bugs until, until like, until like they're done.

So I'm glad that happened in may.  

Chris Biscardi: [00:06:02] Yeah. It's, uh, it's tough to like actually finish something, right? Like the last little bit there it's like, okay, I see, I built a thing. Right. And I see all the bugs and I just don't want to ship it with all of those bugs. But the reality is like there's software always has bugs.

Right? There's always more bugs to fix.  

Jonathan Bakebwa: [00:06:23] Yeah, it's one of the harder truth to accept, man. It's like, okay. With other people writing bugs, but like, I guess, like I was saying, once your dad, right. Bugs, you know, like, I don't want to be the guy who publishes a theme with bugs in it, you know? Uh, that, that was what I was thinking, but, um, I kind of, I I'm glad I was able to outgrow it because I realized, man, I mean, if we're going to bring this to the best quality possible, it's something we want the community to like own.

And so I was like, Hey, I'll just dump this thing there. So when people open issues, I'll be like, yo, I noticed you open an issue. Thanks a lot. This is our discord. Fix it. I can show you how to fix it. And some of they know how to fix it, but like I, because I'm also doing like a lot of things. I have a startup, I have school, I have all this stuff.

Um, I can't like, I can't devote as much time as I want to, but I hope to be able to in the future. So I just, um, I'm actually spending a long time, like just helping people fix the bugs and you know, and it's really cool to see how excited people are to work on them, creating new features and stuff.  

Chris Biscardi: [00:07:24] Yeah.

That's, that's awesome. That's one of the most fulfilling parts of being a maintainer of opensource software. I think, where you like, have somebody coming in and they're like, I want to do this. And you're like, okay, I don't have time to do it, but I can tell you how to do it. Is seeing them succeed in that way is always very rewarding.

Jonathan Bakebwa: [00:07:42] I think, you know, who taught me how to do that? Don't you? There's this Christmas card. He's a really, really nice guy on the MDX team. Yeah.

Chris Biscardi: [00:07:59] I appreciate that. You're very behind. Um, but you, uh, so you've built shocker you, I view or  and like choosing to open source that library and let everybody use it as a big decision when you're trying to build a business. Right. Why did you choose to like make shocker UI view, open source rather than, I don't know, maybe something that you worked inside of the car too.

Jonathan Bakebwa: [00:08:25] That's because it started as an experiment and like an experiment. I didn't tell anyone about it. I was just like show up. I was like, Hey, do you know how to set up a mono repo? And like, and like, one of my courses were like, Oh yeah, it's pretty easy. And they'll do it for me. And they're like, what is this thing you're doing?

And I'm like, it's just a side thing I've been working on for the last, like, I know because good. I think one of my worries was that I didn't want like my teammates to feel like I was spending so much time on it and like, you know, um, I mean, I was getting everything that I needed to get done, but like, I just didn't want like people to worry too much at the beginning.

So when I got to a point when like this thing was getting big and I realized I'm not going to be able to maintain this, um, within like, um, work and also my colleagues, I was only front end developer at the time. So I was like, You know, I would rather open source it and I'm like, you know, put it out in the community, let it improve.

And actually, you know, to be, you know, like I want to be able to admit this, you know, like even to this day, we haven't yet like us assimilated it core project. Um, because like, you know, We don't like as a startup, we don't know what the final product is. And like getting everyone to migrate would actually cause us to look more time.

Um, so since we don't have that amount of time or like the number of developers to be able to do that, that kind of migration, um, we still use the old thing, but I came up with like other ways to like solve some of the problems I had. So yeah, I'm still using it for like, I love my other projects and it's so much fun.

Chris Biscardi: [00:09:58] Yeah, it looks amazing. I, uh, I need to get into writing more view myself. Um, and, uh, yeah,

Jonathan Bakebwa: [00:10:08] I'm excited for you.  

Chris Biscardi: [00:10:11] Um, so, uh, speaking of you, uh, hear the view is really big in China. Is that why you originally got into it or. Yeah,  

Jonathan Bakebwa: [00:10:22] yes. That was the, um, that was the, actually I think the main decision, uh, at the time I think I was like learning. I was trying to like learn frameworks and the way I was learning was by reading the documentation.

I remember I'm going through the react site, trying to create the. Tic-tac-toe thing. And like, I finished the example and like I knew nothing. I was like, but heck I'm to anyway, so I can get started. Oh, no, I wasn't at all. Um, but like what, what drew me to view as like, I want you to ducks. And I understood what it was doing.

Like that was the immediate thing. The second thing that drew me was the fact that, um, so many people developers in China know about Vue JS and like, um, they use view and because of businesses based in China, um, it would be easy for us to hide it developers, but also like, um, still also build like a thing that.

You know, that was nice and it was fast. It was like easy to learn. So, yeah, that was a, that was what, like got me deep into view. And of course, since I was the only front end person, like I had to like understand what this whole framework thing, what is the framework? What is it really doing? Uh, yeah. I didn't know much about frameworks at the time.

Um, that was maybe two years ago.  

Chris Biscardi: [00:11:37] It's amazing to me, the capacity I see in you to just look at something that you don't understand and just decide that you're going to tackle it. Find a way through  

Jonathan Bakebwa: [00:11:48] Oh my goodness. Yeah. I mean, I dunno, I don't know what to say about that, but like, I guess, you know, I, I, I don't know.

I want to say, I don't know how to like, cause I'm sure there's a lot of people who would probably like want to be able to do that. But I guess for me, it's more of, um, when I find like a problem, I feel like this, this needs for at least for me, if it's something that really concerns me. And it's a challenge.

There's something about challenges that kind of drew me toward them. I go on to be able to do this thing and like it possible at first. And sometimes I won't even be able to write code for like one week, two weeks, you know, I'm just trying to understand like how to get this thing done. And then finally, yeah.

Cliques. Um, and it, I don't know when that usual, I don't know how to like, determine what point that happens, but I think the fastest he doesn't ever happen for me was recently. And I was trying to like, do the. I don't know. I tried to tweet out a thing recently about the chakra UI loader. So basically what it is is that you can write like, Import, you can literally write a chakra UI code in your view template.

And the lawyer will, will scan the template. I'm using Webpack reason to Webpack plugin, and I will automatically import and register the component for you. Um, without you having to like, do the whole thing, boiler plate thing, and you'd still get like the benefits of like tree shaking and all that, all those wonderful things.

Um, so for me, this took me about like a day. Um, but I knew nothing about plugins and knew nothing about loaders. And you knew very little, like literally knew nothing, but, um, eventually it made sense. I think the first time I touched a loader was with the MBX view loader, but it didn't really like click as deep as, uh, as I thought that it did that I wanted it to.

Um, but this time I think that experience kind of added on to. Um, what I, what I knew before and, um, yeah. Um, I guess like for, I can, you know, pretty too, like a challenge to like trying to solve challenges. And also, um, I talk to people, I ask a lot of questions. I'm not afraid to like ask, um, and yeah. Yeah.

Awesome. I can also give, give, give credit to God because I'm a man of faith as well. Sometimes like I'll be dreaming things and like, ah, this is where it came from and like, yeah. Yeah. I mean, yeah. There's, I don't know honestly how exactly to like, uh, approach, but that's what,  

Chris Biscardi: [00:14:18] that's what I experienced there with.

Fantastic.  

Jonathan Bakebwa: [00:14:23] Thank you.  

Chris Biscardi: [00:14:25] It's just a short episode. We're about to run out of time. Uh, where can people find you on the internet? And is there anything else that you would like to say before we close up?  

Jonathan Bakebwa: [00:14:33] Um, yeah, I'm, uh, I'm on a, I have I'm on Twitter as well at my, my, my handle is code bender eight to eight.

Um, I'm also, that's my get hub as well. I'm working on chakra you, I view. And I'm also using, um, Um, um, we're also building a kudu. And if you guys, if you ever work in like a conference and you're looking to like reach people from over multiple, um, multilingual audience from different parts of the world Academy is helping solve that problem.

Um, because we believe everyone around the world has the right to learn and, um, yeah, that's pretty much most of what I'm doing. And, um, if you, if you ever want to like check, you can always reach out to me on Twitter.  

Chris Biscardi: [00:15:15] Cool, Jonathan, thank you so much. I'm looking forward to your talk.  

Jonathan Bakebwa: [00:15:19] Thank you so much, Chris.

I really appreciate it. And I think this has really been amazing to be able to talk to you. It's such an honor.