Uncut with Danilo Leal, Design Engineer at Zed, Prototyping in React and Built in Rust, Designing for an AI Assisted UX
Matthew Carey (00:00)
Wait, now we're rolling.
Wilhelm Klopp (00:01)
And now we're rolling. How's it going, sir?
Matthew Carey (00:03)
It's going well, it's going well. I don't have the auto record on when I start Riverside from like my laptop. I only have it on when I use the web UI. Did you see I did a massive spam of all of our videos today? I like, was just like, I was just like, I'm going to get them all out because I realized I like missed the videos from the last, from last week.
Wilhelm Klopp (00:12)
I see.
No, I didn't.
Matthew Carey (00:26)
or no, like the week before even. I hadn't even posted those videos. So I was like, like on YouTube, I've done nothing.
Wilhelm Klopp (00:32)
On YouTube, right, right, sorry, wait, I'm just trying to figure out exactly where, damn, I thought I removed the Zoom meeting from the invite. I think he might be in Zoom.
Matthew Carey (00:41)
is he sat in Zoom?
We're probably going to cut this bit anyway. We'll just cut like a little bit.
Wilhelm Klopp (00:49)
No man, you got to give people what they want. They want authentic rawness. Behind the scenes.
Matthew Carey (00:56)
Yeah, did Oz...
Okay, so are you gonna make a jingle?
Wilhelm Klopp (01:00)
I'll be making a chinko, yeah. Absolutely.
Matthew Carey (01:01)
I think you should make a jingle
with 11 Labs music. It looks so good.
Wilhelm Klopp (01:06)
⁓ One thing I learned from making jingles previously with Suno, ⁓ if you ever go to your girlfriend and say, hey babe, I've written a song about you, and then you play a Suno track, it doesn't quite hit the same way. Actually, it landed a little bit. I think her friends loved it.
Matthew Carey (01:11)
Hmm.
not land. No.
I'm in the granola office and on the wall... wait can you see what that says?
Wilhelm Klopp (01:35)
What does that say? No I can't see it.
Matthew Carey (01:37)
It says, welcome to
the vibe coding workshop.
Wilhelm Klopp (01:39)
That's cool. Danilo, what's up? How's it going?
Matthew Carey (01:41)
Yeah.
Danilo Leal (01:42)
What's
up you guys?
Matthew Carey (01:44)
Hey dude, nice to meet you.
Wilhelm Klopp (01:46)
I'm so excited for you two to meet, some of my favorite people in the same room.
Danilo Leal (01:47)
Same. Yeah.
Wait, sorry, I'm getting my situation set up here with Riverside. Is it all good? Is the audio okay?
Matthew Carey (01:50)
Virtual Room.
Yeah, sounds great. Can you hear us? Because sometimes we have to change our... Are you on plus six or are you on zero?
Wilhelm Klopp (01:58)
You sound good.
Danilo Leal (01:59)
Sweet? Yes.
Wilhelm Klopp (02:05)
I'm on zero. Do you want me to be on something else?
Matthew Carey (02:06)
Nice,
Nah, zero's good, zero's good. It worked last time. I've got this new mic, I just copied Will, and now we're like on the same setup. But it still never sounds the same, which is really weird. Will just has that silky voice. Do I?
Wilhelm Klopp (02:10)
Okay, very cool. Yeah, it did.
You do have a tiny bit of echo actually, Matt. Can
you try hitting the echo? There's actually like an echo cancel. no, it can't be changed while recording. Well, we're doing it live. We're doing it live. ⁓
Danilo Leal (02:27)
Mmm.
Matthew Carey (02:29)
Yeah. Yeah,
Danilo Leal (02:30)
You
Matthew Carey (02:32)
I'm in an office with very, very hard walls. It's probably the worst place to record something. well, sorry. I'm not gonna chat that much anyway. We wanna hear about you, Danilo, so I'm not gonna chat that much.
Wilhelm Klopp (02:38)
Here we are.
Danilo Leal (02:41)
You
Wilhelm Klopp (02:41)
Yeah, yeah, I
need to figure out how to do a great. Daniel, are you in Brazil at the moment? You're at home? OK, nice, nice, nice. That's awesome.
Danilo Leal (02:47)
I am, yeah. I'm home, yeah. I also
pulled up my audio interface, but then I realized I don't have any microphones, cables, right now. I do have a microphone, but not the cables. So anyway, it's gonna be the MacBook Micro.
Wilhelm Klopp (02:57)
Hahaha
or the airports ones probably like not too bad. ⁓ Okay, so.
As a bit of like backstory here, Danilo and I had the, or well, I had the pleasure of working with Danilo, I'll say that much at least, earlier in the year when I was at Zed briefly for a few months, which was super fun. And I think Danilo is just like a super impressive person. The whole Zed team is kind of known for just working incredibly fast, ⁓ even though they're working on this like huge Rust code base where you have to like invent all this stuff from scratch because it doesn't exist yet.
But think Danilo in particular is just like such a beast. ⁓ So I think, yeah, I've been keen to have him on the pod for a while. And I think it's also your podcast debut, right? This is your first podcast.
Danilo Leal (03:51)
That's right.
That's exactly it. First time on the cast.
Wilhelm Klopp (03:54)
So that's all. And
you have a super interesting career and you, I think, really represent that new, incredibly rare unicorn breed of designer and engineer. ⁓
And I think that's super cool that we should talk about that. also, ⁓ one thing that I loved about working together is I feel like we're in this time of insane hype and ⁓ just so much stuff happening. I think, did we talk about this last time, Matt? you used to have, but people wrote a blog post, right?
It used to be like, you know, we did this big project at work and here's like 10 lessons learned. And maybe they don't all apply to you, but you know, we've gone through the hard work and here is the distillation of like our, our migration or whatever the blog post was about. And now you have blog posts that end with just like, what the fuck is going on? ⁓ Like, I don't get what's happening. So we're just in this completely different world. Everyone's shouting. And I think, Danilo, you've always brought a incredible sense of calm to any like conversation or discussion.
or whatever. So I think that's really, really cool as well. So anyway, I've been wanting to have you on for a while. I'm really excited for the chat. Yeah. Thank you.
Danilo Leal (05:07)
Yeah, thanks, man. This is super awesome. I've been listening to the podcast like every single episode that comes out. And I don't know, I feel like these days I'm having to pick like one or two main sources of information for this AI world because everyone is talking about it. And you have like so many levels of quality. And also breadth how much people talk about everything that's coming out. And I think you guys podcast, this podcast is like top one or like
Wilhelm Klopp (05:33)
⁓ That's very kind.
Danilo Leal (05:34)
Top three at least, for sure.
Matthew Carey (05:36)
I was like, oh my god, your ex-colleagues or like Thorsten's probably gonna be like, no, mine is better. But yeah, whatever. No, that's pretty cool, it's pretty kind. Yeah, I am, it's very kind.
Wilhelm Klopp (05:43)
⁓ No, that's... Yeah, that's very kind of you to say. Are we... Like, yeah, I feel like
Danilo Leal (05:47)
mean, he's awesome as well.
Wilhelm Klopp (05:52)
not every episode is a total banger, but I think it's just nice, you know, I think we're going for the genuine vibe, you know? We're just having a chat, catching up, talking about what's on our mind. We don't really have too much of an agenda to push most of the time anyway. We're just trying to make sense of all of this, like the rest of everyone, I think.
Danilo Leal (06:02)
Yeah.
Matthew Carey (06:10)
Yeah, I don't have much to add from what Will just said, but I'd love to get a bit of backstory, dude. Because I looked at your profile on Zed and it's like, technologies, next JS, rust. And it's like, holy shit. They are kind of two ends of a software engineering spectrum. And I just love to understand a little bit more how that came to be.
Wilhelm Klopp (06:35)
Yeah, like how, should we stop? How did you get into this whole world? Like what was your first foray into like the web or engineering or design or any of it?
Danilo Leal (06:45)
man, it's crazy. I think I've always used computers. Computers were always around. I think I had a very particular setup because my mom used to work in advertisement, which meant every couple of years, the agency she used to work for, they switch all their MacBook computers. And then because of that, every couple of years she had...
awesome deals for like very cheap like Apple machines which over here were incredibly expensive but for her it wasn't that much. So I had like the G3 back home, had the one where you had like the Articulate ARM back home, I don't know the model names, I had all of these like Apple computers back.
Always exploring and then at some point, I don't know, kind of grew very socially aware, if that's even like a thing and became interested in history and anthropology. Went on to study that at university. Midway through the four year course, I kind of realized this is not a way to make proper living and going into academia, a bunch of stuff that I didn't necessarily vibe with too much.
Wilhelm Klopp (07:38)
No way, I didn't know that.
Hahaha
Danilo Leal (07:49)
But then I was always doing design a little bit in the background, more into the graphic stuff. I've always played music as well. Music and design, always walk together. So doing record covers for friends and show flyers and stuff like that. And then eventually I realized there is this segment of design that matches a little bit with this desire to do something that's more social, and that's kind of like UX design. You learn about users, you do stuff.
And then, know, like learn about people and convert that learnings into something that's like technological. You know, you can touch with a piece of technology. And then I went on, that was back in like, I think 2016. And back then over here, there was this big like wave of delivery apps happening. So like people were trying to connect drivers with, you know, restaurants and like shops and whatever. And I was very keen on like, man, working with drivers, they're like, you know, not the most.
what's the word, but like the most typical type of B2C user that you would work with and like not the most also like ⁓ flashy type of user. But I was very interested to work with them because it's like usually, ⁓ you know, less fortunate people. They were doing that for their living. So like, this is the perfect combination of like a social type of problem with design and technology that I want to work with. So I, you know, there was this startup over here. They eventually got acquired.
maybe the biggest like food delivery service around here, which I think today is within the same corporation that I think Delivery Hero is from as well in Europe. It's all like the same kind of holding. And anyway, like I stayed there for like, I don't know, three years, eventually moved on to a similar company over here.
Wilhelm Klopp (09:27)
Mm-hmm. Mm-hmm.
Mm-hmm.
Danilo Leal (09:37)
And then that was the moment where like, eventually I was like, ⁓ I need to do a little bit more of tech, right? Like, because I was doing more traditional product design research, drawing screens, and then seeing those drawings not be, you know, realized as much as I wanted.
That was the moment. then ⁓ at some point I was in this company and they were doing like a big conversion to PWAs. I was like, man, this kind of seems a little bit more approachable. And then they were like starting to use like design systems, React component libraries for like rebuilding their whole stack. And that was the moment I was like, okay, this doesn't seem like a huge, huge beast for me. Like for a person that doesn't necessarily have a computer science background to try to like.
Wilhelm Klopp (09:54)
I see, see.
Mmm.
Danilo Leal (10:21)
learn and know tackle and that was the moment and then in that company they were particularly using mature UI as the library of choice and I eventually got familiar with mature UI eventually mature UI the company behind mature UI had a design opening reached out for them I was like oh I've been using you guys like it sounds like a super cool product and the company that I was at at that moment was like a 2 000 people company
And I was like, I cannot do this anymore. I need like tiny teams and the ability to like explore this. And an MUI at that point was like five people. So that was like, this is perfect. And then I joined MUI and that was kind of like my more concrete and stronger foray into like actually coding. I mean, I had the basics in my head at that point, right? Like I could like write some CSS. could like now.
Wilhelm Klopp (10:47)
Damn.
Mm-hmm.
Danilo Leal (11:14)
the basics of HTML. I knew a little bit about HTML ARIA rules and attributes and all of that. But it was like when I finally got into MUI, I had to learn way more of the nitty gritty of at least the front end technology. And then stay there for three years or something, moved on now to Zed. And then it's been...
Wilhelm Klopp (11:29)
That's super interesting. Yeah.
Matthew Carey (11:34)
What year are we at now?
What year are we at? Like, how long ago is this?
Danilo Leal (11:39)
So MUI is 20, I stay there until 2024, joined at 2021 and then jumped over to Z in 2024 last year. And then it's been almost like a year and a half in Z, this wild journey of like learning Rust, which I don't at all consider myself an engineer. Like I think I'm years, there's a lot of space between me and a professional engineer.
Wilhelm Klopp (11:54)
Yeah.
Danilo Leal (12:06)
But I think I'm way more independent than I was like five years ago when it comes to building UIs and trying to like realize my vision. And this has been like, this is something that we could talk along today because I do feel like with this whole AI thing happening, I think we're coming back to a basics as far as design goes because designers were always the character in the room that was like responsible for realizing vision.
Wilhelm Klopp (12:29)
Mm-hmm.
Danilo Leal (12:30)
And I think
right now, given building UIs and the coding, the technology behind it is less of a problem. Design is becoming way more approachable and complete to do.
Wilhelm Klopp (12:38)
Mm.
Interesting. That is my god. Yeah, there's so much to talk about ⁓ Can I just say also for someone who's doesn't consider themselves an engineer you have? 565 full requests and does that repo merged? In so that's if you've been there a year and a half, that's like one per day ⁓ That's a pretty that's a pretty good pretty good right man. Okay
So I'm really keen to ask about material UI because I think maybe we talked about the backstory at some point when we last saw each other or whatever, but I find it so interesting because.
I consider like material design and then the kind of various companies or frameworks that came as part of it very much part of like my kind of upbringing of like making stuff on the web or whatever. Like I still I used to watch like every Google I.O. like religiously when I was like 15, 16. And I still remember exactly like when they announced material design and previously design language I think was called Holo. And I thought that was cool as well. But the material design one just looked epic. It's like, oh my God, like it's three dimensional. I still remember what the guy was wearing.
Danilo Leal (13:38)
Mm-hmm.
Wilhelm Klopp (13:45)
like on stage when he... So like I really was really into it. But then when you try to actually use materials in your own product, ⁓ you kind of didn't have any... there wasn't... like Google didn't make a library. They just made like ⁓ a white paper basically. ⁓ Like here's how to think about depth or whatever, right? ⁓ And then a few couple... a couple of like libraries started popping up like I think there was one called materialize which we saw it using a lot. ⁓
Danilo Leal (14:11)
Mm.
Wilhelm Klopp (14:13)
You're both nodding, so maybe you use them as well. But then it felt like kind Material UI emerged as kind of like the main serious player. Like the materialized thing was a bit more ⁓ if you needed something quick and dirty, like a ScriptKitty kind of thing. And the Material UI was more the serious version. And I assume one of the key things about Material UI was that it was integrated into the React components as well. So it wasn't just styles. It was functionality as well. It was state as well.
Danilo Leal (14:43)
Yeah, I think that the main thing was that it was React because like we're talking like I think 2014 or 2015 when Material Design First came out and that was like exactly when React First came out as well like in its glory, right? I think it was being worked in Facebook I think a little bit prior than that maybe 2013 or something like that.
Wilhelm Klopp (14:58)
Right.
Danilo Leal (15:05)
But my memory, like I recall React like strongly coming out in some time in like 2014 and 2015. And I think the very first material design implementation was like, I mean, I think Flutter, Flutter or Android Studio. Like if you're, if you were doing Android apps, you had a little bit more building blocks for material design building blocks than on the web because it makes total sense where like Android development was the main channel in which material design got.
distribute it. But then I think like the very, very first web implementation was a view library. If I am not mistaken, I don't know exactly. then, yeah, yeah, yeah. Or like View or Angular. Maybe Angular would make more sense, right? Because it's a Google thing. But then like, yeah, these guys like independently, like completely separate from Google. They were like at the right time at the right moment. They implemented the, you know,
Wilhelm Klopp (15:42)
view as in the React competitor.
Mm-hmm.
Danilo Leal (16:00)
arguably the best design system ever to be documented. Maybe to this day, at that point in the UI framework that was like, you know, at the top of the charts and that was like the perfect combination.
And I think, yeah, a lot of people used it. I think MUI as the company, it leveraged a lot from the confusion of like people thought it was a Google thing. And if you really think about it, like React and Google, they never really like, there was always a little bit of friction there, like React and Facebook thing, and then Google was trying to push like Angular. And then at some point, I think Google was trying to promote a web components implementation of material design, but that never-
Wilhelm Klopp (16:25)
Mmm.
Right. Yep.
And then there was this thing called Polymer. Is that the WebComponents implementation or is that something else entirely? I never understood Polymer.
Danilo Leal (16:43)
took off ⁓ and then like mature UI just, right.
I think it's something else entirely. They had like a material web library that they were trying to like push forward, but I don't think that that...
Wilhelm Klopp (16:53)
Okay.
Interesting, Okay, so you ended up spending like kind of run three years at Material UI. ⁓ Yeah, what was that? Sounds like it might've been quite like a transformative role. did you, and by the way, I love that whole ⁓ like UX is like technology and like anthropology or like people and social and technology. That's never thought about it that way. I think it's a very, very cool. ⁓ Yeah, like entry into like this whole world. ⁓
But do you feel like you got to do some of that at Material UI? the how do people think, what's like, or maybe it's worth talking about, what were you doing at Material UI? What was your job there?
Danilo Leal (17:40)
Yeah, I actually feel like back in MUI I did way less of this anthropology like
I don't know like when I was thinking about like anthropology was really just about like going out to a certain type of population and doing a lot of research talking to people documenting trying to like, you know, really figure out how they behave like what are the ⁓ You know the components of influence there be I don't know their life as a whole like what are the things that make them
input a certain meaning into things. And when I was doing like, when I was working at like delivery type companies, having to like talk with drivers, talk to drivers in the streets and like understand like, what is their motivation to use app A versus app B. That was a little bit more like anthropology and that was good. But moving on to MUI, that was way more like, you know, understanding the smallest things at which developers would get crazy and then trying to convert that into like.
Wilhelm Klopp (18:24)
Mm-hmm.
Danilo Leal (18:39)
And it was very different because back then I was doing more traditional product design as in the output of my work was an app that people would touch or use or click. And at MUI, it was all code. We were shipping UIs, but the UIs were serving as an example to the code. So it was way more about APIs and how we were, developer experience, essentially.
Wilhelm Klopp (18:47)
Mm-hmm.
Mm-hmm. Mm-hmm. Mm-hmm.
Danilo Leal (19:03)
So when I joined, the team was very, very small and like, you know, I think there was half of my contribution coming from like gigantic companies was like trying to put a little bit more of structure into the team of like, okay, we need to have goes guys. Like we're just like working without any sort of like, we're not, what are we trying to hit in the next six months? And then when they were like kind of like looming a V5 version of the library at that point. ⁓
Wilhelm Klopp (19:31)
Mm-hmm.
Danilo Leal (19:32)
that was, it would mean like a big change when it comes to styling components because they were moving out of think JSS to styled components and using like emotion as a dependency, all that. But then like, yeah, yeah.
Wilhelm Klopp (19:48)
Wow, I haven't heard these terms in years. Yeah.
Matthew Carey (19:51)
Yeah, I remember this stuff.
I remember Sunil chatting to about this stuff. He was like, the hate that was going around at this moment in time in the JavaScript ecosystem. So you must have got to have seen some of that, like toxicity where people were screaming.
Wilhelm Klopp (19:53)
Hahaha
Danilo Leal (20:00)
huh.
Yeah.
Yeah, I think that was like one of the main takeaways, I think, like for my whole experience of this world. And to some extent, still like over here over there is that I feel like there is this spirit intact. I feel like where people are traveling, you know, what's the expression people say like it's a zero.
zero sum game or something like that. I don't know. There is this spirit of like people trying to win ultimately a certain space, right? And when it comes, for example, with styling in CSS, there are so many ways that you could do things. And there was all these like debates around like, what is the best way? But they all had different trade-offs and, you know, solutions and problems. And then I think people never really got comfortable with the idea that like for certain type of people, this is good for another type of people. This is not good. They were
Matthew Carey (20:50)
Yeah,
that makes sense.
Danilo Leal (20:51)
Like, and that was like a
big realization for me coming to like this more technological world because in design, I think that the thing that's most talked about in design is that anyone can be a designer because it's so subjective, right? Like at a certain point it comes down to like your opinions or like your own intuition. And then whenever I was around designers, like peers talking about technology, they were always like, but being an engineer is so much easier because
Wilhelm Klopp (20:55)
Alright.
Danilo Leal (21:18)
you have like an objectively clear way or like correct way to do things and incorrect way to build things. I like, yeah, maybe like engineers lives, it's definitely easier. And then when I started to like be more around that space, I was like, there's no objectivity at all. It's exactly the same.
Matthew Carey (21:36)
That's really interesting.
That's really interesting to get that perspective. I'd love to... Go on. No, I mean, I was gonna ask... ⁓ I'd love to hear about your design process because I've used Zed, I love how it looks. It is really stunning. ⁓ And I just wonder how has your process changed throughout the years? Has it changed? ⁓
Wilhelm Klopp (21:40)
Matt, did you ever, no, sorry, you go, you go.
Matthew Carey (22:03)
with the advent, like, do you do any type of mockup before you like, like build it? Or do you just like, whack out some new CSS, press compile and like let Rust do its thing for a bit and then look at it. How does that process go? Like, has AI changed it at all?
Danilo Leal (22:19)
It has definitely changed because of AI in terms of like how much I can convey a certain vision, right? how high, like how high in fidelity I can prototype something. But it like, these things are very contextual, right? So like, if, for example, when it comes to the AI part of Z, right? So Z has like collaboration built into the product. And obviously we're trying to like...
figure out ways that we can merge these worlds, right? So like Zet comes from, Zet has this big like belief in pair programming and sharing code together with people and doing like synchronous coding. Obviously it doesn't like enforce this super strongly. If you don't want to pair program, that's totally fine. But like if you do happen to be with someone else at the same code base.
working together, following each other, like typing at the same line, all these things you can do. And it's a natural...
jump for you to reflect on how could AI be in the mix, right? Like we have this on-demand, quiet, engine-y like, you know, intern that accepts everything that I'll say and it'll do like sometimes very high quality code, like way more than an intern would do. ⁓ But I want to like be able to do something else at the same time. So when it comes to that, I think the design process, like trying to figure out ways that we could merge this world is the design process looks a little bit more traditional as in
We are going to like we'll discuss first like what's the vision of what we want to do and then we'll prototype a lot Right and it's I think my design process has been ultimately a lot of prototyping but when it's a more like I Don't know a tactile problem like more direct more more obvious like with that for example like Code editors really we have so many code editors out there and then
Matthew Carey (24:01)
Yeah.
Danilo Leal (24:11)
There are a bunch of like surface areas in Zed where we don't need to reinvent the wheel. We can look at how like maybe VS Code is doing or like how Sublime did it or like any one of these other editors take inspiration, like do exactly how they did it and then just like look and reflect. Is there anything that we could improve? And if there is like, we'll do it directly at the spot as opposed to like doing this like super high fidelity prototypes but.
Matthew Carey (24:37)
Yeah, and prototyping. No, it does, it does. prototyping, does that involve you pulling like a certain section of the code base, maybe a particular components and playing with them in something like storybook? Or is that like, ⁓ is that even possible with the Z code base? Or is that very AI native almost now and you have loads of mockups in v0 or?
Danilo Leal (24:38)
don't know if that answers, but it really depends.
Matthew Carey (25:04)
another one of those type of tools? Or is it by hand? Or none of the above?
Danilo Leal (25:08)
So for Zed specifically, it's
kind of like all of the above, like for Zed specifically, we have a Zed prototyping repo, which is like we recreated Zed in React. ⁓ When we first did it, it's like a Tari app because we were like, maybe we could use part of the actual Rust code base of Zed in Tari and integrate them a little bit more. But the reality is that we don't use it at all. It's just like a dumb recreation of Zed so that we can play around with UI.
And then instead of doing like, you know, a bunch of like spaghetti prototypes in Figma where you need to wire a bunch
Matthew Carey (25:44)
Yeah, yeah, yeah.
Danilo Leal (25:45)
We
do it in react because like if we want to you know, for example, I was doing this last week We have like a pain and then you have a selector on that pain and then if you toggle a different if you choose a different option in that selector Changes something else in a different part of the app all these things you can hook up way easier with like context and react and state and react It's just much easier to prototype right now with you know and for
I was doing stuff with like text selection, which is such a light.
horrible experience to like code by hand. These are all things that you can cheaply ask the AI and I'm saving like each one of these iterations in a different branch so I can have like shareable links for each branch that would kind of like act as different screens in Figma that I can share with people and say like, in this link there is a certain take, like in that other link there's a different spin for this thing and then these are all like AI supported. But this is very particular to Zed, like we have
this because the main problem when I joined and one of the main problems when I was chatting with Nathan about like building UIs and that is that it was just like very, very slow. At this point, GPUI, think...
Matthew Carey (26:59)
And this
is slow because you have to compile a Rust code base. Just for people that aren't familiar.
Danilo Leal (27:04)
Yes.
Yeah, yeah, yeah, yeah. You need go through the whole thing. And it's also like, ⁓ just slower if you want to do like, if you don't want to necessarily hook up a bunch of like external state, you just want to like really mock things up without necessarily wiring all of the different, you know, entities and threads. ⁓
Matthew Carey (27:25)
So you're using something, so you're using React, you're building like a mock-up application in React as some people would use Figma. Like you're a fully no Figma shop or that you use them depending on the time of day or like the feature. Is it like fully no Figma?
Danilo Leal (27:42)
You know, for me it's been mostly no figma for the past year and a half. But just because I don't know, I've grown very comfortable with divs and tailwind. I think it can move.
Matthew Carey (27:46)
Wow.
Wilhelm Klopp (27:52)
Hahaha
Matthew Carey (27:53)
That's
actually amazing. So I'm imagining your design process as my process of actually, your design process is what I call building. ⁓
Wilhelm Klopp (27:56)
Yeah, isn't that incredible?
Danilo Leal (28:04)
Yeah, you know, like the one thing so like we have a marketing site for that obviously, right? Like that. That's like a standalone repo. And then ⁓ whenever people like had to do something on the site, they were always like, I'm sorry. Like, but can you help me with this like site thing? I'm like, no, I mean, it's totally fine for me because whenever I come back to the web where I can use like usual regular diffs until when
This is such like a coming back home feeling like it's so comfortable and easy. can like press command S and then the thing hot reloads and it's just there and I can see it and I can like command shift I and open up the inspector and see what's going on. Like all of these things we don't have into that code base. I mean, we're getting there, right? Like I think two months ago, I think when, ⁓ when rust, rust week was going on.
happened two months ago, we had like a hackathon and we built like the very first version of a GPUI inspector in Z. So like if you have a dev build in, can do like shift command I it's very bare bones, but like it's, it's cool. It's there. Like it's a first step. like we're, we're slowly but surely building some of these like UI building tools in GPUI, but still not the web.
Wilhelm Klopp (29:11)
That was very cool.
Matthew Carey (29:14)
So.
How do you debug Zed then? it like you literally put print statements like in random like how, say you had a failing request to your, to a backend or something or a button was pressing and the next state wasn't loading. How would you, how would you debug that?
Danilo Leal (29:35)
I mean, right now we have a debugger, so some people use that, which is a more traditional process. I've grown for UI debugging, if something is not happening, I'm just doing the good old CSS debugging strategy of background red, background pink. And if it's something more stateful, it's just print statements and stuff like that. ⁓ But I've been trying to grow more comfortable with our debugger so it can...
Matthew Carey (29:39)
Okay.
Wow.
Yeah,
yeah.
Danilo Leal (30:05)
I think that's like the whole spirit of that, right? we're, and that's been, think, yeah.
Matthew Carey (30:09)
You're building your own tools. You're building fully
your own tools, like actually artisans of your own craft. It's lovely.
Danilo Leal (30:15)
Yeah.
And that's been like really my first true experience of like being able to do that because, know, I was talking about like my, the period of my life where I used to work with drivers and stuff like that. wasn't doing like delivery. like I did a few, but like, so that wasn't my main day today. So like I had to do way more research to understand what were the problems and how to solve stuff with MUI. ⁓
I was a little bit more in this camp of like, used to use the library, so like I knew a little bit more, but because I was in the company, I wasn't building that much, as many UIs as I would if I were in a traditional company. But now with Zed, and like to come back to the design process question, like, sometimes we don't even really need a lot of process because we're using the thing every single day, so we kind of like.
Wilhelm Klopp (31:08)
Mm-hmm.
Danilo Leal (31:08)
Because the
process is usually like most of the time just like uncovered these problems and to understand the problems. But if we're being faced with these problems every single day as we use them, I think it's just a matter of like, okay, what is the solution? How will solve it? Right? So like you're skipping a bunch of the more, you know, maybe traditional UX part of the work and going straight into the like, okay, solution time, prototyping time. And then that's been been Zed.
Wilhelm Klopp (31:33)
That's awesome.
Matthew Carey (31:35)
I
still can't get over that your prototyping is just write and react.
Wilhelm Klopp (31:39)
Yeah, isn't that wild? And can I just say also, I remember when we were working together on this stuff, someone would have an idea and say, oh, maybe we could do it like this or whatever. And then before you knew it, the next day, it was already built in the React prototype. And Danilo had already made it in the Zet Prototyping repo. And then it's just, if you're an engineer implementing this, you can just look at that, trigger the interaction. It's fully like a state.
This ⁓ was when we were building the agent panel.
and there was so many little menus and configure the MCP server and all of this kind of stuff. I think Danila was iterating on that. I should check how many pull requests went into that repo. ⁓ But you were iterating on that so, so, so quickly. It's funny because I think for those of us just working in React or working on some web thing, that is just the building and for you it's the prototyping.
I wonder also, because it's interesting, ⁓ part of how the design ⁓ or the CSS inside of Z works, it's kind of tail-windy. So you have PX0, PX2, you have all these class names inside. Do you think that because the feedback cycle is a bit longer due to the Rust compile step, that you can now just imagine what a bit of...
like tailwind-ish classes will actually look like. And that's also what helps you build the prototype so quickly.
Danilo Leal (33:14)
yeah, for sure. think like, you know, the thing, the thing that kind of like changed everything for me was when I truly, I think internalized and this is super basic, but like when I truly internalize the box model, like when you truly like deeply internalize that, like regardless if it's like on the tail end inspired GPU code or like if it's an actual HTML, like until it
Wilhelm Klopp (33:15)
That's amazing.
Danilo Leal (33:39)
you can visualize these things a lot more and like be able to just, you know, imagine like the level of nesting of containers that you need to have in certain, like in order to pull up a certain layout. ⁓ But yeah, like that helps a ton. And I'm very lucky though, because like Nate, as Ed's first designer, he was not only the first designer at the company, but also the first employee. So like when he first joined, I think back in 2021.
Wilhelm Klopp (33:53)
That's interesting. Yeah.
Danilo Leal (34:07)
GPUI was like in its initial version and it was much, much, much harder to build with. And then the jump from one version one to version two, I think it was when they introduced like the tailwind utilities and that became way more approachable. And now we're crossing, like we're jumping a third Chasmim which is like building like almost react estate hooks that we can use in GPUI.
Wilhelm Klopp (34:36)
Done.
Danilo Leal (34:36)
So
it's becoming just like easier and easier. And obviously like when I joined Zed, like they gave me this like, you know, super powerful M3 MacBook with these are all like, you know, tools to reduce like the complexity of building with Rust. ⁓ But it's getting there. And yeah, like I don't know, I have a lot of stuff to learn in terms of.
The main thing that makes me sad sometimes to work too much in GPUI is that I lose the many beautiful things happening in CSS because I'm not having to build a lot of stuff in CSS. But it's becoming just easier to build stuff in the actual web in GPUI as well.
Wilhelm Klopp (35:08)
Mm-hmm.
Matthew Carey (35:16)
So do you think, so I'm assuming at the moment Zed is one of the only like consumers of GPUI, but is the plan in the future for other applications to consume it? Like for instance, if you were gonna make a very performant terminal, would you use GPUI or would that be like a really bad fit?
Wilhelm Klopp (35:16)
That's awesome.
Danilo Leal (35:38)
If we're terminal specifically, that's a good question. don't know. We haven't built our own terminal. I think we use Alacrity in the background. But I think ultimately and broadly speaking, think at some point it will make sense to make GPUI a general purpose library that people... mean, there are people already doing that. And then some of the very low level primitives that we rely on GPUI, some of them are built by people in the community that are building...
different apps with GPUI like dashboard monitoring and like charts and stuff like that and you know we have for example we have a super horrible and nasty bug with like border clipping in GPUI so like if you have a container you put in a background color and then you put in a border and then you slap in an overflow property there like we don't clip the border like the background leaks out of the container which is like
And the fix for that is the guys from this like, I think Chinese shop that builds with that, they build stuff with GPUI on their end and they're helping us to fix that. But I think for this state of the company, like that would just like slow us down significantly now because I think another thing that's part of the Zed culture is just like, you know, if we need to tear something down entirely today and rebuild it from scratch in the next like seven days, we'll do that, right? Like people are not afraid of refactoring things and you know, throwing.
Wilhelm Klopp (36:43)
Wow.
Danilo Leal (37:02)
code out of the window and redoing things again. And all of the GPUI versions happened in this spirit. Like, there's something that's deeply bothering me. Let's rewrite the whole framework in like a Zed meetup or something like that. So if that was a general purpose library and we were doing this thing, very frequently people would be like incredibly, yeah.
Wilhelm Klopp (37:13)
Hahaha.
Matthew Carey (37:21)
Yeah, you couldn't support that for people. Yeah. No, I think I've
read some of your blog posts or some of the Zed blog posts where it's like, and this is why we decided to start again from scratch. I'm just like, okay. It's really amazing.
Wilhelm Klopp (37:34)
⁓ I'm keen to talk
about AI a little bit ⁓ and especially like again curious about your workflow I think with AI. So like you're a guy who gets a lot of shit done every day. How do you think about like AI enhancing your workflow or maybe even agents? Like do you use stuff like v0 at all? ⁓
to what extent is kind of agentic tooling helpful to navigate the Z code base, curious about everything that kind of works for you, and especially also what you've tried that hasn't worked.
Danilo Leal (38:12)
Yeah, yeah, huh. It's been a while since I've last used like vZero for example, and I've been trying to like here and there I've been using all of the tools available. like a little bit of cursor here, a little bit of windsurf there, a little bit of emp there. Like I've been trying to be around and just like make sure I know what other people are doing.
And it's funny because like I haven't used AI too much to like understand a big code base yet, because that is one of the benefits of pairing in Zed in particular, because whenever I need to get more comfortable with a different area of the code base, pairing helps more than like, you know, asking broad questions with AI. And I think that has been also like a general convergence point of the developer community when it comes to using AI. I think it's like, you know,
as if you're super specific you get way better results than if you're like you know I don't know you're asking open-ended questions so I haven't used to that end too much but I've been using it a ton to like help me either with like very ⁓
Wilhelm Klopp (39:09)
Mm-hmm.
Danilo Leal (39:17)
you know, tasks, which is probably the most common basic use case, but also with like more refactoring type of tasks or, and right now I think that the thing that I've been trying to do a little bit more is parallelizing tests, just like stress these agents a little bit more. So like if, for example, I've been trying to refactor some of our UI components and that means sometimes standardizing their API is just making sure.
For example, like a bunch of them, they surface like a style method that you can customize. And some of them like have different values under this, like enums or to like use different terminologies. I don't know, like they're a little bit spread out here and there. And this is like the perfect type of test that would like, you know, make the banner and the call out components consistent. And then like, yeah, I will, you know, skim through all of them and make sure that the API is consistent and I'll just like analyze it.
Wilhelm Klopp (39:59)
Mm-hmm.
Matthew Carey (40:02)
Yeah.
Wilhelm Klopp (40:06)
Right.
Danilo Leal (40:12)
But yeah, I don't know, to some extent, feel like my AI use is very basic too. I'm not using any crazy MCP servers. I was exploring a little bit of Dagger's container use last month because we were chatting with them and then we published an MCP server for their thing, which is pretty cool. You can have isolated agents and containerize and do all of that. But I haven't really, really used it too much.
Wilhelm Klopp (40:19)
Mm-mm.
So the idea
is you can sandbox your agent and the agent can run code in a container and it's much more secure.
Matthew Carey (40:44)
Yeah, had a
Solomon demo days in San Francisco. It was so cool. The tool they're building is really nice. I saw your blog. ⁓ I want to jump across, but I'm really interested about the paralyzing thing. Coming from a design perspective and trying to craft a user experience, I wonder if you've heard of tools like Vibe Kanban, where people are trying to create a Kanban board that each individual
Wilhelm Klopp (40:49)
Mmm.
Danilo Leal (40:53)
It's awesome.
Matthew Carey (41:12)
⁓ task is represented by a task on the Kanban board and it splits like the work tree for each individual task and you have like these separate agents that can all work in parallel. I just feel like Zedd with the collaboration aspect of it, there's something really special that you guys could make using the context that humans already put into Zedd. I don't know what your thoughts are on that ramble.
Danilo Leal (41:13)
you
Yeah.
I haven't heard of this one in particular. was playing around with, I think a newer one, it was like around Twitter the last month, I think, called Conductor. I think that's, yeah, I think that that's specifically for Claude, if I'm not mistaken. Do they allow you to?
Matthew Carey (41:49)
Yeah, I've been using that one as well. Yeah, it's cool.
Yeah, so Vibe,
I think Conductor is just Claude. Vibe Kanban is like way more basic. It's just an MPX script that when you run it, opens a browser and it has a Kanban board and you can flick between Claude, AMP, ⁓ OpenCode. It's just a Kanban board. I feel like Conductor feels much more polished. feels like, but it's chat interface, right? ⁓
Danilo Leal (42:24)
Yeah, yeah, yeah, yeah. I think that their take as far as I've seen is just really abstracting you away from the code, way more than like you would have in an editor. I also saw, think, I don't know, like,
Matthew Carey (42:24)
It's a different style.
Danilo Leal (42:36)
site that you would write a prompt, but then that site will send the same prompt to all of the providers at the same time. that's kind of like one of, I think so, yeah. I mean, it's one flavor of parallelization that you could have. But I do feel like, broadly speaking, I do feel like this is one of the next frontiers, right? And people moved on very quickly from the one agent paradigm to multiple agents.
Matthew Carey (42:44)
That was God mode, wasn't it? I saw that one. Yeah, that was cool.
feel like you guys, yeah, you're very well positioned for that with the collaboration that you have already in Zed. How set up is Zed for multiple work trees open to the same editor? Is that even possible? Would that be a massive rework? Or if you don't know, that's also chill. It's a silly question.
Danilo Leal (43:24)
That way it depends on how big you're thinking. We can definitely do multiple Git work trees, we can do all that, but when it comes to smoothly plugging that into agents and even multiple agents that are not necessarily coming from the same source, that is infrastructure that's out there to be built. But I do feel like also just from a more less, maybe less technical...
standpoint and more really like concrete down to earth standpoint. I haven't really seen people, you know, productively using these capacities like in a real setting, like how many people are actually one of like, I think for example, to circle back to Solomon's demo of container use, like he was talking about, you know,
the landing page building example, right? So like, say you're just starting a project, you don't know like what the visual direction you want to have for that project. That's a very like concrete and possible use case. Like you just ask, you know, multiple agents to develop a certain landing page in multiple different styles and they'll output those landing pages in like different links and then you can look at them. That is one use case that I think it's
more feasible than others where like, you know, maybe you're, you're working on a project, one single project that then you want to like chop that up into multiple pieces and you want to paralyze at that level. I think it gets confusing and I think the next frontier of like tools is the one that will allow you to manage all of these things happening at the same time and make sure that they are like doing it the best way possible, following whatever guidelines you think need to be like followed. ⁓
But anyway, don't think like no one has like still cracked that deeply yet.
Matthew Carey (45:03)
I'm with you.
I'm definitely with you with the paralyzing thing. It's exhausting. It's like actually exhausting. The, yeah, the way I've found to get around it a little bit is, so I only have two workflows that work and none of, I haven't managed to get any of the ones that you've just said to work. And those two are queuing tasks that can be one-shotted in cursor. And you can queue like 10 tasks if you can just type fast enough before you finished, before the other ones are finished working. ⁓
And if you know they can all be one-shotted, then that works really, really well. And then the other one I've found works is asynchronous. creating a bigger task that then gets done, I used Cloud Code in GitHub. But I'm just wondering how that user experience would feel like in an editor. Would that even be possible in an editor? Is the editor the right place to have that asynchronous task? Or do you think of an editor as a very synchronous place?
Danilo Leal (46:05)
think that's the next frontier question, honestly, because people are all debating what is the role of the editor in this world, right? Some of these apps that we were talking about, like Conductor, some other, they are abstracting away the code entirely. ⁓ Some other, even Cursor, I saw that they were doing a non-editor mode, the same way that you can pick appearances on your OS, like in Mac OS, for example.
Matthew Carey (46:07)
Okay.
The background agent
or no, it's not the background agent. It's you're right. It's the chat mode. Yeah, I'm not sure they ship that I think that might have just been a skit from ⁓ they have a very their designer is very active on Twitter, right? His name is Rio maybe
Danilo Leal (46:39)
Yeah.
Yeah,
Rio, yeah. Yeah, I think he was mentioned like he was posting things ⁓ toward this direction. ⁓ And I think that is the question that we're trying to figure out at Zedd as well, right? Like we're building an editor, like maybe a little bit more than half of the company is...
working on the editor primitives. So like we just launched a debugger. People are still like working on language servers. We're still like interested in making, for example, we're like, we're still interested in making Python a great experience. So like all of these very editor problems. But then you do have this track and it's like, you know, cloud of questions flooring around of like, what is the role of this software as a whole? Like, will people be actually writing code? I think realistically,
My personal belief, which I don't know, like kind of naturally matches with what Zed is thinking is that yes, like code would never really lose its role in its place. I think it won't change depending on the task as we were talking about. Like if it's something that you have a clear vision for, ⁓ maybe you're a little bit more in a reviewing mode.
Matthew Carey (47:59)
Yeah.
Danilo Leal (48:00)
rather than like a writing actually building mode. And then the editor should like be able to change to, you know, make you more comfortable with that. But I don't, for example, I think it's very hard for someone to build a piece of software like Zed, totally like shooting prompts off, right? So like you need to have, you know, an architectural vision and you need to know how to execute that and even. So, I mean, I think we're still like ways off from like replacing that entirely.
Matthew Carey (48:17)
No.
Wilhelm Klopp (48:18)
Yeah.
Matthew Carey (48:27)
Yeah.
Danilo Leal (48:28)
We don't know, I think maybe
in 10 years, I don't know, but right now.
Matthew Carey (48:33)
The reviewing process speaks to me actually because a lot of the time, so I have Zed and Cursor next to each other on my bottom bar and a lot of the time I open Cursor when I want to write stuff.
⁓ because I have a very good like Claude code set up, or at least I think it's nice, like it feels nice. It's 50-50 split between code and Claude code. And then Claude code I can toggle between different terminal windows. It just feels really like comfortable for me. But then when I want to read code and review code a lot of the time, I do open Zed because it's just so beautiful. And that like experience, the fonts, just everything like the experience of reading code in Zed is lots, is a lot nicer than reading code in VS code.
And so I guess what I'm asking for is please make the beautiful reviewing experience because that would be really nice. And like, just a very clean, I mean, we had Lu on from Tealdraw, they're an infinite whiteboard company. Maybe you know them. And Lu has been posting a bunch of things on Twitter about what like future, future reviewing UIs might look like. And I'm finding this fascinating.
Wilhelm Klopp (49:19)
Hahaha
Danilo Leal (49:26)
Mm-hmm.
Matthew Carey (49:38)
Yeah, so I guess that's my feature request, if I get one.
Wilhelm Klopp (49:41)
you
Danilo Leal (49:41)
Yeah, yeah.
By the way, like TL, they're all like in this SF conference that Wilhelm and I were, think like two months ago, Steve was there and I was like, man, I would love to have like a canvas like experience in Zed maybe integrating TL, they're all, don't know, like who knows? But I think, ⁓ you know, coming from this like more design standpoint, one thing that I just started to do, like, I don't know, maybe in the last month and a half or so is doing just more like UI annotation. So like previously I would just, you know, refer to code by like,
So one thing that I've been doing a lot when I'm doing like this react prototype, I've been like adding IDs to divs just so like I can refer to them by name. Like, ⁓ you know, the div with like, ⁓ tool call container is not working, blah, blah, blah, blah. And then, ⁓ you know, for the last month or something, I've been doing that and attaching an image. And then, because like, remember Steve mentioning that a whole lot. was like, in TL draw, if you like take a screenshot.
Matthew Carey (50:34)
Wow, I love that.
Danilo Leal (50:41)
write a dumb annotation with FET markers on the screenshot and send that off to the LLM. That works awesome.
Matthew Carey (50:50)
Yeah, I did that with Figma actually. if you copy a bunch of components in Figma, you can copy them as a PNG and then just below that, copy as code. So you can copy the CSS and the PNG and then just paste both of them into cursor and be like, you see the problem? Yeah. ⁓
Wilhelm Klopp (50:50)
Hmm.
Danilo Leal (51:06)
Yep. Yeah. There's one thing that I recently
learned that Figma is doing, by the way, which is pretty interesting. it it is serving as like food for thought for us over in Zed is like they recently ⁓ launched a feature called annotations. So previously Figma would only have like comments, right? But comments were, I think for the most part being used to like debate around a certain part of the UI.
So like, oh, I don't know, like reduce this text size a little bit. make a change to UI a little bit. Whereas annotations a little bit more of like technical notes if a developer is like skimming through your UI and you maybe like want to let them know how something is supposed to work and whatever. So Figma launched that. And if you use the Figma MCP server, the MCP server is going through these annotations.
Matthew Carey (51:30)
Yeah.
Danilo Leal (51:54)
to consume the UIs and use that as context.
Matthew Carey (51:58)
Okay, I have a confession to make. It's like a builder whose house is falling down. I am actually terrible at deciding to use MCP servers for the tools that I use. So I've been using Figma a lot in the last month and I haven't set up their MCP server yet. So that is on me. I need to sort that out. That sounds very exciting. Yeah, I'll definitely do that.
Wilhelm Klopp (51:58)
That's fascinating.
And you say it's
an inspiration inside Zedd as well. What are you thinking there?
Danilo Leal (52:24)
I I think a big next frontier for us that is really like, you know, figuring out how, I don't even know how all of these things will play out in reality, but we, ever since I joined, like we talk about and we dream about this world where like we leave breadcrumbs of knowledge around the code base that are a little bit more than maybe like comments or, you know, because.
There are so many things that are generated in the process of coming up with a certain function with a certain like crate, whatever it is. And right now you need to give a little bit more of these. You need to be a little bit more proactive in giving these pieces of context to an AI. If you want to like change either drastically or just like incrementally something. And Zed has all of this like infrastructure based on CRTTs and whatever like these complex and mature pieces of technology.
Wilhelm Klopp (52:54)
Mm-hmm.
Danilo Leal (53:19)
So there's certainly something that we could do to like leave more information and more context and like integrate that better with AIS.
Wilhelm Klopp (53:27)
No,
Matthew Carey (53:27)
That
would be amazing.
Wilhelm Klopp (53:27)
that's super cool.
I've
always, this has been an interest of mine for ages. This idea that there's like, you know, code is this like two dimensional thing. And then like, there's this third dimension of stuff that sits behind it. Right? So you have the breadcrumbs maybe that are like human knowledge. You have like LSP like diagnostics or whatever, or just not even like information about like what sits behind the like function definition. Then you have the stuff which is particularly interesting for me, which is all this runtime data. Like what are examples of how this code is like actually
Danilo Leal (53:50)
you
Wilhelm Klopp (53:59)
So it feels like there's this whole additional dimensionality to it with context that is really, really relevant or could be very relevant to ⁓ LLMs. I think the question then ends up becoming like, there's all these problems that you run into, like context rot and how do you select what is the most relevant? Or LLMs have seen petabytes of just raw code from GitHub, but they haven't seen the third dimension. So how do you tell them about that?
Danilo Leal (54:12)
you
Wilhelm Klopp (54:28)
third dimension in like an effective way but it feels like for sure there's like so much more to be explored there.
Danilo Leal (54:34)
Yeah, yeah. think like realistically speaking, one of the things that I've been realizing in terms of using agents is that like, for example, a year and a half ago when we were really starting with this like agent panel revamp that we eventually launched like in May, we were talking about like context inference and like, know, code base retrieval and you know, all of these more complex ways to analyze and learn about a code base.
⁓ and that has certainly changed a lot with like tool calls, agents can like skim through, but despite of that, I still feel like there is a, you know, a good chunk of like how well you craft the context, how well you present that to the LLM. So I think that there is a trap of people talking about auto, like making everything automatic. Like you just send off the most dumb and shallow prompt to the AI. And at some point.
Wilhelm Klopp (55:18)
100%. Yep.
Mm-hmm.
Danilo Leal (55:31)
The AI will be good. There's got to be like, yeah, you need to have like some careful way of using this. Like it's either like, you know what it's saying and how to describe and how specific you need to be. ⁓ so this is like part of me. I think I'm kind of like divided in half because I do feel like everything is changing because of AI, like the role of the engineer, the role of the
Matthew Carey (55:32)
There's got to be skill somewhere.
Wilhelm Klopp (55:36)
You
Danilo Leal (55:55)
designer, all these things are changing. Even like things such as how big your team needs to be and stuff like that. These are all changing because you can, just like period, do more because of AI.
But in terms of like how well and how like, I think, I don't know where I saw this, but I saw some more people saying that like AI is really good if you want code to last like five or 10 years, AI is good to like some extent. That will still like take deep human thinking. But like if you want code that can work now and you may like rewrite it in, I don't know.
next week or in a month or something. AI is great for that because it's doing way less holistic production of code, if that makes sense.
Wilhelm Klopp (56:37)
Right.
Matthew Carey (56:46)
Definitely.
Wilhelm Klopp (56:47)
This actually
reminds me, I have... ⁓
Yeah, I mean, I feel like there's so much incredible discourse at the moment about like AI is great. AI is not great. or like, I think, especially in the past month, there were so many good blog posts, like there's like six weeks with Cloud Code. There was, I think there was one that I feel like I saw via Zed or maybe the Zed account or something that was like, you know, after months of using LLMs, I'm going back to using my brain or, know, lots, lots of great discourse about it. I was speaking to a friend recently.
who ⁓ discovered Kursa like a month ago and he's actually giving me shit for not telling him about Kursa earlier. He's accusing me of gatekeeping. ⁓ But he said it's like the best thing that's happened to him all year is discovering Kursa.
Danilo Leal (57:23)
What?
Matthew Carey (57:26)
Yeah, you're mean dude. Like, you started a bloody podcast to talk about cursor and code. You could have told your friends.
That's so funny.
Wilhelm Klopp (57:47)
And he, ⁓ I try to quiz him a bunch about like, why would he's doing work so well for him or like, because he doesn't have an engineering background at all. We've joked for years that he's a full stack no coder.
But he's, so I'm like, how do you get so much use out of it? because I think one of these blog posts, right, it described ⁓ someone using AI, like full wipe going, like not looking at the code. And then at some point it started falling apart and he actually started looking into like what was going on. And he found like, yeah, there's like two files with almost the same name with like the same logic. like, obviously the AI is getting confused between like, which one is actually getting used. And I asked my friend like, so how do you run into these issues? Like what. ⁓
What are the issues that you're having? And it turns out that his architecture, I think, is actually really, really smart. So he uses Bubble, which is like a no-code tool. And in there, like that essentially is like his models, his tables, his like core, core business logic. And that is like not code that any AI gets to touch, right? That is just like all like no code, like UI defined stuff. ⁓ Which I think is very interesting because like, I think for most of these like web crud apps, like the database really is at the core, right? Like your models and
like your ⁓ storage really like needs to be like rock solid and through this like no code system it is. And then what he does the vibe coding for, he has essentially like dozens and dozens of like cloud functions and they're all ⁓ somewhat self-contained. So he describes it as like a kind of a hub and spoke model. So you have like the core hub, which like doesn't get touched by AI. And then you have all of these spokes, all these like random cloud functions, which can be as messy as they want to be.
Danilo Leal (59:12)
you
Wilhelm Klopp (59:31)
If the AI adds a bunch of logic that never gets used, it doesn't really affect the rest of the system at all. It doesn't really tear down the middle part. So I thought that was a really, really interesting architecture where he can move super fast, sling all these cloud functions, test them all out, add tons of features. But the core is very solid and hard to fuck up, basically.
Matthew Carey (59:52)
I'm gonna have to jump guys. Danilo it's been an absolute pleasure. You guys feel free to keep chatting but I'm in the granola office and they're about to have a meetup so it's about to get very very loud. I can see people walking in but yeah it's been a pleasure.
Danilo Leal (59:56)
Yeah, man.
That's cool.
Wilhelm Klopp (1:00:01)
That's awesome. Yeah, Danilo thanks so much
for coming on. Yeah, great to chat and always love the vibe you bring. It's an honor.
Danilo Leal (1:00:10)
Yeah, you guys.
Yeah man, miss having you around every day. It's been awesome when you were, or it was super awesome and super glad I had the opportunity guys. Super cool.
Wilhelm Klopp (1:00:19)
you
Matthew Carey (1:00:25)
Thanks dude, I still can't believe it's your first podcast. You should come on more man, you have got the vibe. You're so there.
Wilhelm Klopp (1:00:26)
Amazing.
Danilo Leal (1:00:30)
Talk
too much, talk too much. ⁓
Wilhelm Klopp (1:00:31)
Hahaha ⁓
Matthew Carey (1:00:32)
No, no,
no, it's wonderful. It's Anyway, catch you in a bit.
Danilo Leal (1:00:36)
you
Wilhelm Klopp (1:00:37)
Alright guys,
peace out, see you, thank you.
Danilo Leal (1:00:40)
Bye bye.
