The Changelog: Software Development, Open Source - Zed's secret sauce (Friends)

Episode Date: March 1, 2024

The Zed text editor has come a long way since Nathan Sobo came on the show last year to tell us about this follow-up to Atom. Zed is open source now, has the underpinnings of collaboration built in, i...s beginning its journey toward full extensibility, is coming to Linux soon & shows serious promise if Nathan's team can mix their secret sauce just right.

Transcript
Discussion (0)
Starting point is 00:00:00 Welcome to Changelog and Friends, a weekly talk show about the secret of all the secret sauces. Big thanks to our partners at Fly.io, the home of changelog.com. Launch your app as close to your users as possible all around the world. Find out how at fly.io. Okay, let's talk. Yes, let's talk about Tailscale. As you know, around here, we love Tailscale.
Starting point is 00:00:42 At least I do. I don't think Jared uses it. I know Gerhard loves it. I love it. So maybe you'll love Tailscale. At least I do. I don't think Jared uses it. I know Gerhard loves it. I love it. So maybe you'll love it too. So Tailscale is the easiest way to connect devices, services, anything to each other, wherever they are. It runs on Linux, Mac, iOS, Android, Windows, everywhere. Anything you want to connect to, you can run Tailscale on it, and it's too easy to connect to it, whether it's a remote desktop environment. Here's one thing I do that's pretty cool, actually. I often will remote desktop into a different Mac machine at my home.
Starting point is 00:01:17 So I come to the studio, I'm doing my thing, but for some reason I need to go onto my iMac Pro back at the house, which is my home desktop that I use for work. And there's things that I do there that I need to go onto my iMac Pro back at the house, which is my home desktop that I use for work. And there's things that I do there that I need to check on. And I just open up Remote Desktop. It's an Apple application. And because my iMac Pro and my laptop that I have at the office are both on the same tail net, guess what? I can remote desktop right into the machine. Too easy. But I can also SSH to my Plex server. I can also SSH into my Pi hole. I can also SSH into my whatever I want to SSH into because it is just too easy. It's intuitive. It's blazing
Starting point is 00:01:54 fast. It runs everywhere. And I love Tailscale. And I think you might love them too. So you can try Tailscale for free today for up to a hundred devices and three users for free at tailscale.com no credit card required again tailscale.com how are you guys doing since we last talked i would say gosh how long has it been a year roughly one year i would say this year is better than last year in several ways. How so? Specifically, I would say I feel more positive about the life of our business. It was challenging last year. It wasn't the worst ever, but it was definitely challenging. I think as an indie media company, we thrive on brands that want to sponsor our content, but then I think it also curtails into brands that want to sponsor our content and get value. So I think that value part is super crucial and the alignment is
Starting point is 00:02:52 even more crucial on who we speak to and giving value back. So I think on that front, but I think at the same time, on the same flip side, on the non-business side, the business of the business which is producing podcasts i think we've just gotten better like friends has been amazing jared you've been stellar on change all news it's got a great following it's been consistent you know i think in a lot of ways our network has grown we did nine million listens across the network in 2023 i think we'll do almost 11 if we keep the same momentum in 2024 we We brought ShipIt back this year with Justin and Autumn.
Starting point is 00:03:27 It's already doing well. There's definitely some improvement we can always do because, hey, Kaizen, right? But we're Kaizen-ing our platform. ChangeLog.com is open source. There's a lot of people contributing. There's so many people in Slack. There's a lot of conversations happening.
Starting point is 00:03:41 We're hitting the fringes and the edges of, you know, in quotes, software and business intersections where we're talking about Homelab. We're talking about, you know, just lots of fun things. It's crazy. Can I interrupt to ask a question about something that particularly piqued my interest? Sure. Yeah.
Starting point is 00:03:57 Always interrupt. Your use of the term Kaizen, which I'd only heard a little bit like in the context of, I read a book about like Agile and I guess they talked about like lean manufacturing. And this word Kaizen, which I think they said meant continuous improvement, but it sounds like maybe you've got a deeper, you've gone a little deeper on that word than I have. It did like intrigue me at the time, but I never really followed up. Yeah. Well, we have to thank Gerhard for that because Gerhard helped us learn, I don't know about you, Jared, but I learned it from Gerhard. Yeah, I had never heard it before. I learned about Kaizen through Gerhard. And Gerhard's been working with us since 2016. He's been our, in quotes,
Starting point is 00:04:40 SRE in residence, but he is very much in charge of changelog infrastructure. Jared and he work together quite closely, but in many ways, Gerhard's the lead on that front. Now, they obviously collaborate, and there's collaboration when you collaborate, right? Collaborate and listen. But Kaizen, I think for us, has become like DNA, right? Because it is continuous improvement. It's always been improving.
Starting point is 00:05:06 It's this embracing the fact that there is room to always improve and to be less like, oh, dang, what we deployed sucks or what we're doing sucks. It's more like, no, it just needs to be improved. And I think Kaizen for us has become a DNA factor, really. I don't know how you'd describe it, Jared, but that's how I'd describe it. It obviously means what it means in Japanese, but I think for us, we've taken it deeper than that, where it's like, in everything we do, we always look at like, not where do we suck and where do
Starting point is 00:05:33 we fail? It's more like, where do we not do so well and can improve? Right. Yeah, I feel that. I think that we also have a regular, not a segment, but an episode, a Kaizen episode that the three of us do together. That's where we review what we've improved upon in the last two and a half months, either on episodes or around the infrastructure, how we're collaborating. We've formalized it in that way. We have a thing called Kaizen that we do. It's kind of like what a stand-up or a retro would be, I guess. But just as a podcast episode, we also just hang out and chit-chat. So we're kind of bringing our community and our listeners along
Starting point is 00:06:12 on the journey of what we're up to, not just doing the shows and the interviews, but we're definitely just doing that continuous improvement thing that the word means. And that came out of, yes, that movement that you're talking about. So Gerhard introduced us to the concept. And as people who are already fans of iteration and having to always remind ourselves
Starting point is 00:06:34 that progress is more important than perfection because we are perfectionists and we tend to not ship stuff because we're waiting until it's perfect. Kaizen's been really good for us because it's like, especially with this regular show upcoming, it's like, I got to do some stuff because there's a show we're waiting until it's perfect. Kaizen's been really good for us because it's like, especially with this regular show upcoming, it's like, I got to do some stuff
Starting point is 00:06:48 because there's a show we're going to talk about it. I got to have something to talk about. But as software developers, even just that, we all talk about that fast feedback loop and how important it is. And that's what Kaizen's all about, right? This isn't perfect, but let's ship this and then iterate
Starting point is 00:07:04 and improve and continuously do that. Yeah. Yeah. I tend to wait longer than a lot of people. Like I have a longer time horizon, I guess, then I've always felt guilty about, okay, it's not there yet. Right. I've even was met with some skepticism of like around open sourcing that I of just, why not do it sooner? And maybe it would have been better. I don't know. But there was just certain, I just fall back on like, well, what do we want to express in the world?
Starting point is 00:07:33 But that can't be perfection because that's not realistic. But it can be like pretty good. That being said, you're releasing new versions of Zed constantly. I mean, sometimes twice a day, I've seen. Yeah. I mean, when they're day, I've seen. Yeah. I mean, when they're more frequent than a week,
Starting point is 00:07:47 it's because we're fixing something. So it's not always great. But yeah, the cadence that we're shooting for is a week. Zed's day. Zedniz day is what we call it internally. Better than Friday, I guess. That's awesome. Yeah, the idea is like if we ship on Wednesday then
Starting point is 00:08:05 if we've shipped a regression on preview we've had a couple days to discover it at the end of the previous week and then we have a couple days to fix it or worst case scenario we could pull a weekend and that just felt like natural because you know we're shipping a binary so it's not like we can just push a change to the server it's a pretty heavy download that asks people to do so that's why i think it makes sense to do that like rail car setup where you know you've got a week on preview to discover regressions and then you anyway to minimize it but yeah i guess we're still putting out a lot of binaries which is okay yeah totally yeah so how do i know if i'm on preview or not because i feel like and i'm now a daily zed user by the way you've got me you've got me so congratulations you got a user i'm happy to hear that last year i when we had you on the show i downloaded it i checked it
Starting point is 00:09:03 out and i thought, lots of potential. I had a few things that bugged me about it. Of course, everything that's new does, because you're used to what you're used to. And new products tend to have missing things, right? And it wasn't open source yet, and I have a little bit of hesitancy of, well, will this disappear when the company fails? Because many startups do. And so I just kind of set it aside, went back to my regular stuff.
Starting point is 00:09:27 And then when you did open source it a few weeks back, I was like, all right, good job, Nathan. Now it's time to give it another go. And the thing about continuous improvement and iterating is as you go day by day, you don't really see the massive improvements. But for me as a guy who was gone for a year and then I updated Zed,
Starting point is 00:09:45 and I was like, oh, wow, you all have done a lot. So I was very surprised and delighted to a certain extent with what it's like now. So that's cool. Really happy to hear that. I'm loving it. I've got feature requests. I'm sure.
Starting point is 00:10:01 Yeah, I mean, speaking of Kaizen, but the cool thing is I is like, I know we can get there. Like we, we all care so much about getting there because it's our fricking editor too. Like, it's not even about the company it is, but like, it's also just like, it's my editor and I want it to be better in a million ways. And yeah, like, I think I probably lamented this in the last show that it can be tough to decide which of the million things is the most important to work on first. That's like a continual struggle.
Starting point is 00:10:37 But I know performance is something that I've always been happy investing in. Like, yeah, just figuring out the stupid stuff. Like when, did you see that video that Theo put out? And he's talking about like janky scrolling and I'm just like, what are you talking about? I've never experienced that. And so yeah, Antonio was like beside himself. So we actually looked at it on Theo's computer and it was totally different than what we were experiencing. And we realized like on M2s, Apple runs the windowed apps in direct mode. And in direct mode, there's some nuances around how like frames are synchronized. And so it kind of prompted this like digging into our frame synchronization and understanding that all better. But the output of that was like, it runs better on in direct mode or composited mode, like it just runs better across the board, because we were prompted by that being terrible to like actually fully understand it.
Starting point is 00:11:40 Right. I don't know, kind of getting back to that kaizen idea yeah yeah that kind of stuff makes me so i don't know if nervous is the right word but it's like you know you happen to realize it was theo's computer because he has a voice and a following but like so many people try zed and you don't get to hear from them that they had that experience and it's like how many environments are you failing people potentially and And that first experience is so crucial. There's a lot of offerings. There's a lot of good editors out there.
Starting point is 00:12:10 I might try something and be like, and I might never get a second chance with me. Now you did because we know you and also we were urging you to open source the last time you were on and we know that you were thinking about it and waiting. And so you impressed to a certain extent the first time because it felt a lot like what i'm used to which is sublime text but when you got that second opportunity and it was always fast for me i didn't have that that thing
Starting point is 00:12:33 but there's so many people out there that you just don't even know about it's like what was their first use experience and how could it have been better you know i know we have another silly thing where like we didn't staple some apple certificate that they returned to us or some you know something during our certificate signing process which i probably set up and did wrong you know like in the first year of working on zed and i think it was causing like the app to need to like contact Apple servers or something after a system restart on startup. And it's like, that makes our startup time look awful, but that's not anything to do with like, I don't know. It's just this silly little like tiny thing that can just destroy the experience anyway. But we fixed that too. So now it should
Starting point is 00:13:24 start better, although we still have gotten some too. So now it should start better. Although we still have gotten some reports. So yeah, it's tough. And it's tough when it's like, yeah. I mean, I'm used to it luckily from the Atom days. It's just like, you know, it's running out there in the wild a little far from your eyes and control. Right. Do you have telemetry?
Starting point is 00:13:43 Do you desire telemetry? Yeah. We have telemetry do you desire telemetry yeah we have telemetry we try to keep it low-key because we know that developers especially i think are sensitive to that so we'll send like you know when you're saving a file or loading a file we'll send like the file extension so that we're getting an understanding of like what people are editing what is the retention rate looking like across different languages there definitely are differences areas where we have more room for improvement but yeah i don't know that's yeah so we do have some telemetry but yeah we're trying and you can look at what we're sending in zed i thought that was helpful because it would be helpful for if people leave it on
Starting point is 00:14:25 and the hope is like if they can see exactly what we're sending then the more likely to leave it on that's cool how do you see it oh i see it's in the whole panel yeah so and we obviously we opt in or out startup or like the first time so yeah we have that but we need to collect more like something we don't have yet that i would love is just like i want a histogram of frame times across the entire zed fleet so that we like we don't have that yet and we should have that so that we can like spot oh you know and that's not everything like frame times yeah like that's what we discovered with the Theo issues is like our frame time was fast as hell, but on a promotion display,
Starting point is 00:15:09 if you don't render a frame 120 times a second, they'll drop your frame rate. And so, you know, they're like, we weren't keeping the display like hot, like spun up around typing, but now we do. So now it's like, if you type a key or have any kind of input for, I think it's a second and that's something we could tune, but a second, we'll just render like dummy frames on every single time the display prompts us. And that makes sure that like, as you're're typing you're at that max refresh rate so you're you know you're gonna have the minimal latency of seeing pixels based on a keystroke but yeah again it's
Starting point is 00:15:51 like we were rendering the frames really fast but we still didn't know like we weren't the display wasn't asking us for them quickly enough gotcha so that makes me think about other architectures and displays and stuff because we're talking about idiosyncrasies between different Mac hardware. And that's probably the least of your problems in the long run, isn't it? I mean, you're going to go, aren't you going to go cross-platform? I know web is going to be a target. I know Linux is on the roadmap somewhere. Linux is happening right now.
Starting point is 00:16:21 Okay. And so you're going to open it up to tons of different environments after that right yeah i know and it's a little frightening but i don't know it's also open source and you know we're getting a bunch of community support i don't have raw numbers because i'm a little distant from it but a bunch of community support on the Linux stuff. And then a couple engineers kind of between two and three have been working on it for like the last few weeks. A big task is like we use a, they're really cool.
Starting point is 00:16:53 I mean, I think a lot of Zed wouldn't be possible without them live kit. I don't know if you've ever talked to Russell, but they're like, uh, they have an open source client. They're like a web RTC, you know, as a service, basically.
Starting point is 00:17:08 And porting that piece to Linux is a little more challenging. And that's not something we can expect the community to do. So we're sort of sinking engineering time into that and then guiding community efforts. But the guy that wrote Blade and WGPU, God, what's his name? Anyway, he's been like working on a whole graphics backend for Zed or for GPUI
Starting point is 00:17:34 that like seems like it's going pretty well. So that's just the virtue of being open source, right? Like hopefully all these idiosyncrasies will be somewhat discoverable by lots of people that are engaged technically over time. Lots of manage. Is the team that you have in place now at Zed
Starting point is 00:17:57 are a lot of users on Linux already? So they can be sort of first class citizens in terms of wanting to have Zed on Linux so they are Linux users? What's that percentage? The individuals that are working on the Linux stuff, Michaela at least has a Linux machine, like a good Linux machine. And I think she's kind of working. Her goal, I think, is to be on linux and i think the same is true of julia they both want to be on linux they've been on mac grudgingly because that's the only platform we shipped on which is just because like i'm on a mac and that's where we started
Starting point is 00:18:37 but i think as soon as they and there may be other people like i don't know what kyril ultimately would want to do i'll probably stay on Mac just because, like, I don't have time to learn a new way of doing things at that layer right now. But we'll have members of the team on Linux for sure. last time I think I'd mentioned because we talked about Sublime Text quite a bit you know because you're Mac at least then you were Mac only and obviously now you're not Mac only so you're you know you're crossing the chasm from Mac to Linux and we already talked about Pro Display and Display Synchrosies and all that stuff like it's just one more layer of of essential pain that you can bring on yourself. Is now the right time? Obviously, eventually it makes sense, but is Linux, is there a large,
Starting point is 00:19:30 and I'm a Linux user, but not a Linux desktop user. Is there a large Linux desktop user that's aching for Zed? Yeah, it's a good question. But I guess for me, it's like people have shown up to help and they're trying to contribute this work to Zed. And I guess I just want to honor that. And I actually think there are a lot of, especially Rust developers that use Linux, which is like an important demographic for us because we're written in Rust. And all those developers are in a position to contribute to us. So I don't know. It's a good question. Is it the right time?
Starting point is 00:20:10 I think I got sick of saying no. And I do genuinely want to be multi-platform and the best way to be multi-platform is to be multi-platform. Just figure that out and amortize the cost of it. But yeah, I don't know that it's the right decision. No, it is true. That was a rhetorical question, really. Like it is true. Yeah. I agree with that.
Starting point is 00:20:30 That's the logical way to get to multi-platform is to be multi-platform. I think- Oh, you could have went Windows. You could have went web. True. Like the Linux has the choice. Yeah.
Starting point is 00:20:38 Yeah. And what I liked about Linux is it's open source. You know, like it's, yeah, we're going open source. Like I like supporting things that are open source. I know, like it's, yeah, we're going open source. Like I like supporting things that are open source. I don't know. I've had people, I'm not going to name names
Starting point is 00:20:49 who are like, you will get nothing out of going to Linux. They could be right. Dang. I don't think it will be a fatal mistake. And if we find out that like we don't have any Linux users or the ratio of neck pain
Starting point is 00:21:03 to user growth is wrong. Like, I don't know, we can always say, we don't have the bandwidth to support this as a team, but I'm hoping that we'll build some solid contributors that are on that platform. We'll have a couple of engineers on that platform. We'll solve the major problems. I know there's like Wayland versus X.
Starting point is 00:21:24 I don't know yeah it's potentially a very long tail i think is one of the challenges so the way i may ask that question for myself if i was in your position would be what does it take to get to linux respectfully in terms of what you plan and desire to accomplish with zed with its promise of being fast and all the things that we know it offers. But then how does that, what's the delta between doing that and getting to the business goals of Zed? Because Zed is now open source. That is a great thing.
Starting point is 00:21:58 I think we said last time that was probably the smart way to do things, but I'm still sort of unclear on your business model. And so if you've got to take on more, you know, not really technical debt, but more technical responsibility, which I suppose can lead to debt, how do you weigh that against, okay, is Linux the right way? I think having Rust users and a large majority of Rust users being Linux desktop folks does make sense. So I agree with that. But what is the delta between what it takes to get to Linux respectfully and the business goals that's required to keep Zed alive?
Starting point is 00:22:30 I mean... The company. I don't know. I don't know that I fully even understand what it's going to take to get to Linux. But I think we can get there within low single-digit months of a fraction of the team.
Starting point is 00:22:44 And then we're going to see what the ongoing maintenance cost of it is relative to its value. In terms of the business model, I mean, what we're focused on right now is adoption. So adding a second platform opens up a very large number of potential users who might be interested in it. So it serves that goal. And community development is another business goal we have right now. Now, why would you like, in my mind, like, again, the nature of a company is like, obviously, we do need to become profitable and have a plan for becoming profitable. But every venture capitalist knows how large the market is of developers and how valuable that market is. And so right now, I think we just need to stay focused on getting adoption.
Starting point is 00:23:35 I'm happy to take people's money. And one thing we're thinking about is just at least giving people a good out of the box code gen experience to use LLMs. And that's something we could offer like a trial for, for example, just so that people can see it. And then it's like you get to the end of the trial or get to the end of the fast usage and your rate limit is constricted. And now you can like decide to go to open AI and sign up and get a API key
Starting point is 00:24:04 or bring your own local model. Or if you want to just give us your credit card, we'll take your money there. But it's not really our key focus right now is generating a ton of revenue. I think the key focus is let's build the community and get a ton of users using this thing so that we can respectfully offer those users things that integrate with their workflow and make them more productive down the line and you know i hope i don't turn people off with that that we're we are planning on eventually like you know offering facilities in our our flagship build but hopefully it being open source uh gives people the reassurance that if we're too
Starting point is 00:24:46 annoying about that you know you can always build it from source or get it from somebody else yeah but i think we're gonna be able you know with the collab stuff like we've been hanging out with members of the community it's been small but like we're just in these channels like coding like it's happening right now there's like you, a couple people working on Vim, Conrad and a member of the community. And it's like, yeah, it's been so cool just to even watching members of the community that we've granted write access just pairing with each other and not even involving us. So I think on that front, the AI front or some unknown front, there'll be something that we can sell to developers. I was glad you mentioned that because I was referencing our transcript, Jerry, where you mentioned, if you want to search for this,
Starting point is 00:25:37 it says the collaboration part, the social coding part. And Nathan, you responded by talking about how you're not trying to compete with GitHub. I think the conversation was around how these channels and this collaboration might circumvent the need for pull requests because there's this real-time collaboration happening. And I think that's really interesting because that's what we were really gravitated towards towards the end of the conversation was how interesting it could be to have these real-time collaborative coding sessions inside the editor. Can you talk more about when you reference this channel, what exactly is a channel? How do you get granted right access to things? What are some of these terminologies? If our listeners listen to this and they go pick up Zed, how do they interact with channels? What is that to an everyday user?
Starting point is 00:26:20 What is that to you all and how you've been using channels? Yeah, so we use channels as kind of our like virtual office and they're just places to share projects audio they're places to collaborate and we structure them in a tree and so like i don't know they're still we're still figuring them out as well like it's a bit of a rough area, but we're using them every day. So if you go in the lower left, there's like a little people icon. And if you click that, like that's sort of your channels panel. And so you can create a new channel or you can go to the Zed channel.
Starting point is 00:27:02 I don't even know if we have that in there by default. I don't see a Zed channel personally. I do see you. Yeah, because I'm a contact of yours. Yeah. How did you become a contact of mine? Probably when I originally sent you the invite to the Zed Alpha. Is he a contact for you too, Jared?
Starting point is 00:27:20 Yes, he's online. I also see the Zed channel. You do see the Zed channel. I don't see the Zed channel you do see the zed channel i don't see the zed channel well i might have clicked on that because i think in your open source announcement you talked about the fireside hacks and there's going to be a zed thing and so somehow i was excited by that i missed it so i didn't get to see it but i was like oh cool it seems like a cool concept we need to start doing them more frequently but there's just yeah anyway so then i think that's
Starting point is 00:27:44 when i somehow i added the zed channel in preparation for that but i never actually like followed through engaged with it and we need to be doing a much better job explaining to you what the hell this thing is and yeah like i honestly well that's what this podcast is for you know i'm saying i'm excited about channels but like when i click over on that tree over there and the collab bar like i don't know what's going on. So yeah. Could you invite me to the Zed channel?
Starting point is 00:28:07 Like right now, would I see it real time if you invited me to this channel? Is that a, is that a thing you invite folks to channels if you create it? Yeah, I can, I can just copy a link here. Let's see. Copy channel link.
Starting point is 00:28:17 I'll paste it up to you. Uh, does Riverside have a, I'm just curious how that works. A chat. There's a chat. There's a chat session here. Yeah.
Starting point is 00:28:24 So I'm going to click this link. It's z.dev slash nightly slash channel. I won't read the rest because you might want to keep that private. I don't know if you are or not or how you're working with it. No, it's fine. Yeah, this is public. Anybody can come here. Oh, but it's in this nightly format.
Starting point is 00:28:39 Can you just take nightly out of that URL? I'm so sorry. That's annoying. That's okay. This is trial by fire right here. We're seeing how channels works in the real time. I like this. See, now I think as I'm doing this,
Starting point is 00:28:53 feedback might be, since I'm already at contact, just simply add me inside of Zed and not have to interact with the link so that I just immediately see the channel. No, I mean, we should just add every Zed user to the Zed channel and make it easy to delete. Okay, I just heard see the channel. No, I mean, we should just add every Zed user to the Zed channel and make it easy to delete. Okay, I just heard a little ding too.
Starting point is 00:29:09 So I don't know what happened there, but I heard a little ding as if now I'm part of something else. So let's see what happened. Oh, yeah, because now you are actually in the Zed channel. So I can go in there too. I do see you now. And so obviously we're talking in Riverside, but you might hear me twice. I do hear you twice.
Starting point is 00:29:28 This is so freaky, y'all. I'll mute myself. Thank you. And then I'll share my project. And so, yeah, I want to show you this AAB tree. No one's seeing this, by the way. So no one's, they're following via audio only. They're not seeing this by the way so no one's they're following via audio only they're not seeing this necessarily and i will confess that i am not even following because i think i'm in a
Starting point is 00:29:49 zed channel but mine's just empty and it says unshare like i can unshare yeah you're probably did i create my own local zed channel that's not the actual zed channel i feel like that's what happened like it's just me here yes weird i can i can narrate for you jared to some degree oh let me click hold no no give me a second i'm gonna click the link just remove nightly from it and go to that link yeah and take nightly out while you're at it yep did it get out i'm launching zed okay i got two zed channels so yes i had my own personal zed channel previously now i got a button now i got a bunch of stuff going on hello and now you're in there too i don't hear you but i do see you let's see your icon at least i'm in there all right keep going nathan describe to
Starting point is 00:30:31 everybody what's going on okay so anyway like there's some rough edges around the ux that you know we will iron out but the idea is that like so you should see like up at the top of the channels panel like under my my avatar there's like a zed folder hanging off or maybe you're both already following me so here i am in this bounce tree right i'm following you know so like you'd have to sign the cla and we don't have that integrated into the app right now, but that's all, you know, coming. And we're also, wait, maybe I actually can. Oh yeah. I can grant you Mike access, but I think in order to grant you right access, you have to sign the CLA and that's not baked into the product.
Starting point is 00:31:15 That's too annoying, but that's how much it, how hard it is, which is too hard, but like, you can envision us smoothing down some of these rough edges to just write code with somebody. And so even if we want to talk about this code, it's just much better for you to be able to say, no, no, no, I'm going to, what about this? Or you could gesture, you could navigate around anyway.
Starting point is 00:31:43 That's how we've been engaging with a small number of Zed community members that have cleared some of the rough edges. So I'm looking at bounce tree to RS. I see you moving stuff around. Am I looking at a Zed repo that's on your machine or is this somewhere? Exactly. Okay. I'm looking at yours.
Starting point is 00:32:04 So, and you can actually open any files you wanted, et cetera. Yeah. And so like I'm, I'm collapsing, I'm folding line three 15. Do you see that also?
Starting point is 00:32:13 I don't see what your folds. Okay. I do see. Yeah. I see Jared Santo on line three 22 here. Yeah. Yeah. I'm there.
Starting point is 00:32:20 Yeah. Great. But, but I don't have right access. So anything I do is just like changing my view of the current file. Basically. I think so. Can you edit? No, I'm there. Great. But I don't have write access, so anything I do is just changing my view of the current file, basically. I think so. Can you edit? No, no, no.
Starting point is 00:32:28 I cannot edit. I tried to make it trees versus tree, but you know. Actually, when I tried to edit it, it said, you don't know Rust? Get out of here. No, it didn't say that, but it probably should have. Yeah, so anyway, that's kind of what the collaborative experience is like and i think it you know i want to go further and further and there's a lot i think that we need to add and enhance but at least makes it so that you can actually have a conversation in code and have it not be
Starting point is 00:32:58 annoying right where you're on a screen sharing session and you're asking somebody to navigate on your behalf. Or you're sort of like, you know, WIP committing and pushing some ref that you paste the URL to or whatever it is. It's just the goal is like, hey, come look at this code. And it's easier than it would be if we were in the office and you come look at my screen. Like, I mean mean for sure you can navigate independently yeah so what just happened to everyone listening to this i'm not sure what they call that because it was probably good but when you're listening to this as a list you'd be thinking like what in the world are they talking about well when i clicked and when jerry
Starting point is 00:33:39 clicked that link we essentially got open we got invited into this zed channel where nathan was already there hanging out with a particular file open. And our Zed editor opened up a brand new window in our own context, in our own screen size, et cetera. Like it was as if we had our own version of Zed, which we did, opened up, but we were seeing real time Nathan's code history on his machine. And if we had collaborative access, then we could probably code with you. We could have heard you via audio too, but you muted it because we're already speaking in another context via Riverside to record this podcast.
Starting point is 00:34:12 So what I just saw was seemingly magical and basically what I think the future should be when it comes to collaborative coding. Because there's nothing out there that I've seen like this. I've Zoomed before with folks to code. I've done other things. Now, sure, there's probably some stuff inside of, you know, the terminal itself, maybe inside of Vim that I'm not familiar with.
Starting point is 00:34:37 Jared, maybe you are that's sort of like this, that gives you that real-time stuff. But this... Well, I know VS Code has some stuff similar to this, but I haven't used it, so I can't say compar comparatively i'm sure there's people out there saying vs code does this aren't there nathan or is this somehow fundamentally different than what they're offering over there with their collab i mean i don't know that it's i don't really know exactly what their ux looks like i tried it you know many times quite a while, and I just found that it wasn't very reliable.
Starting point is 00:35:08 So it was out and available when we were using VS Code to build the initial foundation for Zed before we made our transition to Zed full time. We never used LiveShare to do it because it wasn't reliable enough. And to make this reliable enough, we have basically a pretty cool simulated setup where we're randomized testing the full network interaction, which is a cool thing that Rust makes possible because you can basically build your own kind of fake executor that's seeded by a random number generator and try every possible permutation of any concurrent behavior in like a multi-client and server interaction. That's what we're doing basically to ensure the reliability of it.
Starting point is 00:36:06 And we still have bugs in the parts that we haven't tested that way, namely following, although following has improved a lot in the last couple of weeks. So I think it's challenging to do well. And I also think we benefit from having thought about this use case from the get-go. So like in Zed, every single buffer is a conflict-free replicated data type. It's basically a eventually consistent data structure, whether you're using that buffer in single-player mode or multiplayer mode, it's all the same. We carry a small overhead for that,
Starting point is 00:36:43 but by just implementing things as efficiently as possible in an efficient language, it works great. And we actually use some of the CRDT-ness, the eventual consistent nature of it, to do non-collaborative things. It's just actually a helpful data structure for all sorts of things. Like, you know, when the AI, like when we're doing the AI rewrite, you know, like you're not necessarily collaborating with a human, but you're kind of collaborating with something. And it's important to have that like eventual consistency and like concurrency friendly design to the buffer so that you can keep making changes while the AI is like making changes. So that's paid off. So yeah, it's designed from the ground up for this use case.
Starting point is 00:37:32 It was a foundational principle. It's not an add-on. And I think it works more reliably last I checked, but people can see how they feel about it. And I'd love to hear feedback. So somebody else just joined the Zed channel and is now talking to us. Do you hear that, Adam? I did.
Starting point is 00:37:46 I had to hang up. They just said, oh, Nathan, you're away from keyboard. So I need to exit this channel because I can't listen to both you guys at the same time. Yeah. How do we get? Hey, Torsten, I'm actually recording a podcast right now and I was just showing them the feature. But tell Torsten we say hi. Yeah.
Starting point is 00:38:04 What's up, Torsten? The guys from the Change Log say hi. Yeah. What's up Torsten? The guys from the change log say hi, Adam and Jared. He said, Hey Jared, we met at strange loop in September and I wanted to say hi. Yes. Awesome. This is a serendipity right here. This is amazing. All right. See you Torsten. Yeah. I had to hang up too because i i'd actually joined their they were in the vim file inside of the zed channel or something i don't know i'm not
Starting point is 00:38:31 sure what was happening or what i was actually clicking on in the street but i joined their channel and there's a vim channel okay yeah and so like uh conrad is hanging out in there with a member of the community just just like working on them and stuff. Well, friends, I have some good news for you. It is launch week once again for Sentry. And I'm here with Rahul Chhabria from the product team at Sentry. So Rahul, can you tell me about the launch week this year for Sentry? In March, we're making a huge investment into our product
Starting point is 00:39:05 platform. We're trying to make it faster, better. In November, we shared a sneak peek about our new metrics offering. So now developers are able to define custom metrics they care about and monitor how quickly their app is responding to the business measures they have to be accountable for, plus also like the customer experiences that they've committed to. And that's gonna be available in an alpha. People can sign up to get access uh we'll turn it off for them like in a couple days once they write in and they can get going right away now on top of that it's like we are looking more at how do we make the product smarter now i know the world is talking about ai and ml and they're all solving like we think like entertaining problems but century's taking a more
Starting point is 00:39:44 thoughtful approach to it we are trying to look at what is the developer trying to do like our all solving like we think like entertaining problems but sentry is taking a more thoughtful approach to it we are trying to look at what is the developer trying to do like our goal is not to have you sit in sentry all day long our goal is not have us like be a tab that you need to keep open our goal is to have this be a tab you open when something is wrong give you the information you need right away tell you how impactful it is to your user base and if you should care and if it is something you should care about here's how to it. So we're taking a broader look at how developers use the product. Where is the noise they're seeing? Are they seeing repeat events? Are they seeing things that are not critical rise to the top and have to automatically resolve them or ignore them?
Starting point is 00:40:16 So we're going to make Sentry a little bit smarter with artificial intelligence to give you a more prioritized view of the issues that really matter. So you can solve them quickly and move on and not be distracted by random rage clicks that are, you know, just ghost issues. Those are the two major things coming out. It's like thinking about more like defining the metrics you care about, also figuring out ways to like organize your issues so developers can actually solve those problems faster. And then we're also working on a few features for our mobile developers, like Sentry is a platform that works with any technology you want. But for mobile developers, there's always been this like, wait a second, there was an error.
Starting point is 00:40:50 But hold on, let me go dig up this device and see if I can recreate it. I can't recreate it. Okay, let me go look at the stack trace. Like it's definitely something there. I'll just fix it, push release. And hopefully those are not like the crash rates go up and the crash for user rates go up. But there's always like this idea, like I still need to figure out
Starting point is 00:41:04 like where is that bank of used old devices for someone running, you know, iOS 13 on an iPhone 11 somewhere. So we're giving them the ability, we're previewing the ability for mobile developers to actually see what happens on an end user session. So that way there's no question about the problem or the latency issue
Starting point is 00:41:22 and building out more performance capabilities so they can see exactly how fast their app is performing. Those are the three big things we're planning on talking about. Aside from core platform announcements, some integrations and cool partnerships we're working with. Yes, the big investment in machine learning and artificial intelligence. Okay, Sentry's launch week happens March 18th through the 22nd. Check the show notes for a link to the launch week page. I'll be showing off new features, products. You can tune into their YouTube channel or Discord daily at 9 a.m.
Starting point is 00:41:50 Pacific Standard Time to hear the latest scoop. Or if you want to get swag along the way, enter your email address at the page we'll link up to get swag all along the way. Or join the Discord, whatever works for you. Head to Sentry.io. That's S-E- works for you. It is century.io. That's S E N T R Y.io. I'm sure they'll link it up somewhere or check the show notes for a link while you're at it.
Starting point is 00:42:12 Use the code changelog to get a hundred bucks off the team plan. Again, use the code changelog, go to century.io. There's so much potential here, Nathan. It's like, how can you work on other stuff and not just work on this part?
Starting point is 00:42:30 Yeah, that's where I was going to go with it. There could be discovery. You could schedule hacks. People could hang out. This could replace the dev side of Twitch streaming and stuff. There's a lot of opportunity here. And it just is like, I'm seeing a nugget of potential. You need to polish that.
Starting point is 00:42:46 Here you are trying to go to Linux, which is cool. That's what I was going to say, Jerry. I see the opportunity and the potential here. And I would just be so laser focused on proving this out. That's really good feedback. Rather than trying to skip to another platform. But then at the same time, that platform, Linux, may bring the kind of collaborators and users you need to do this further.
Starting point is 00:43:09 But this is the secret of all the secret sauces in your sauce. Thank you. Yeah, I mean, the challenge is just like for people to want to collaborate in Zed, they've got to want to use Zed. They've got to want to use it. And I knew at the beginning that nobody was ever going to use Zed for this feature. They were going to use Zed because it was a good code editor, the best code editor that they could get for their use case. And so that's just the balance. We've been investing in this technology, this side of it quite a bit i mean it's definitely we have been open source earlier if we weren't collaborative like this like it's been a ongoing cost but it's
Starting point is 00:43:53 just something that we've been in in the habit of balancing with like yeah because like yeah jared you said you've been using zed daily and you didn't really know about this feature and I think that's the direction it would have is going to have to go is like oh I discover this because I'm using Zed because it's an awesome editor not oh I'm going to go reach that's my theory I could be wrong about that too I think you may be wrong okay personally I think it's the feature it's a well it may not be there Okay. so I get with the collaboration where you need to have different platforms and beyond Mac is necessary to have full team collaboration because teams aren't just you know Mac only users so I get that and so I understand
Starting point is 00:44:52 why that's even the draw to Linux but to me if you can pull this off as good as you I mean you're already using internally like Torsten and Conrad were already collaborating we just essentially Z-bombed them, I guess, right? Z-channel bombed them, essentially.
Starting point is 00:45:07 Because like I went into their Vim channel just because I was clicking around while you're talking. Like, how does this work? And I started hearing somebody just like doing their day in my left ear. Like they weren't even collaborating yet. They were probably going to work and going to work together. And that's where they go to work at. So I think there's some real potential there. And I think that it's big enough that it should be a headliner.
Starting point is 00:45:30 Yeah. Thanks for saying that. And yeah, I mean, it's tough. We definitely need to hire, but hiring well is hard for me. I think we've made some really good recent hires and I've been thrilled with how the team is vibing, but it's just, yeah. So I think we're a little bandwidth constrained. Maybe we're spreading ourselves too thin to your point about Linux. And I should have just said no again. It's not too late to say no. But anyways. but anyways yeah and we're also working on other stuff like you know Antonio and I just ported that's not the right word but we added a way of using Zed's language model integration which I use depending on the day and my the mood etc the thing I'm doing like I do use it pretty heavily and it's an important feature to me and you know, adding the ability to proxy that through our server so that we can let people experience it without all the friction of setting it up. And that's an area of like, I know, I think a lot of developers are like, AI is overhyped and it's annoying and shut up. But I think that's probably true.
Starting point is 00:46:39 But also, I use it all the time. So I want that feature. And I think there's a lot of cool aspects to just having like 150K token context window or whatever it is, and like going to town in the Z assistant. I want people to experience that. So we invested some effort there. Yeah, it's tough to balance all the opportunity.
Starting point is 00:47:02 But yeah, Linux has never been at the top of my list, but I also, what is at the top of my list but i also what is at the top of my list is like yeah buying into the things that members of the zed team and the members of the zed community are passionate about to some extent like i just think there's a lot of wisdom in what's between the ears of people on the ground. Yeah. Plus it's your early adopters. It'll be your evangelists, right? It'll be the people who loves it the most.
Starting point is 00:47:32 The ones talking to you right now. And I think Linux users will be, I mean, the squeaky wheel does get the oil. They are very squeaky. Yes. Linux users are squeaky. And so they get what they want and now they're getting it so
Starting point is 00:47:46 there's that and i just like to make people happy so it's not always you know it cuts both ways yeah i'm not always the best at saying no you know i'm very much like come on join the party like like you know but and that's sure overall like serve me well but maybe this is a case where it's diluting our focus from the thing that Adam's excited about, for example. Well, next time we have you on, you can tell us. You'll have enough. It'll be in the rearview mirror enough a year from now or whatever. You can say, actually, you guys are dead wrong.
Starting point is 00:48:21 Linux was a great idea. That's right. Or you can come back and say, Adam, you were so right. Why did I do this? You know, time will tell. I don't think he's actually wrong. I think the question I would probably ask is like, do you have a flow chart to kind of large choices?
Starting point is 00:48:36 Like you said, I want to do what the community wants, what the Z team wants. Then I would say there's like an also to that, which is, does it also drive us towards adoption because adoption seems to be the pinnacle of choice but at the same time you want to satisfy the Zed community who's adopting and buying into the idea so they're actually
Starting point is 00:48:58 adopted in some, I mean they may not actually be even like daily users like Jared is now they may want to be but they're still part of the community. Then you have your internal team that has lots of ideas as well. So if you right click on the Zed channel and click open notes, this is sort of, did you do that? Yes, we're there. Yeah. So this is basically our 2024 objectives, you know, tried to be, you know, this, so the top three are sort of drive adoption.
Starting point is 00:49:29 You can't edit because you don't have write access, I think. I don't want to write it. I want to read it. I want to tell the listeners what they're seeing, what we're seeing. Oh, yeah, yeah. This is public. Anybody can see this. Okay.
Starting point is 00:49:40 And you can watch me edit it in real time, right? Like you're seeing this? Mm-hmm. Yes, I see that. Yeah. I see that. Yeah. I love it. So like, not only can anybody see our roadmap, you can literally watch me either edit it live
Starting point is 00:49:51 or if I'm feeling timid, I might write it somewhere else and paste it. But I usually just edit it live. So you're looking at driving adoption is number one. Number two is discuss, plan, and implement Zed in Zed with our community, which seems like you're doing that to a certain extent and embrace ai and you're certainly doing that so you're you're on all
Starting point is 00:50:12 three of your 2024 missions yeah and so these are like ongoing themes but then there's i don't know the tough part is like there's other things on our roadmap but these are addressing, hypothetically, adoption is the goal. And so extensibility, this is something that we just started breaking ground on. Again, we have so many pull requests coming into Zed that we're just adding language support because we hadn't finished the work to move that to WebAssembly. We were briefly flirting with JavaScript, but actually discovered that the... I forget what... It's basically a WebAssembly interface definition language or whatever
Starting point is 00:50:56 has actually evolved to the point where we think we can actually use it to do WebAssembly-based extensibility, which, I don't know, there's a lot to be said for just keeping things in one language. So that's what I'm excited about there. But, you know, letting people bring languages, and I guess you might argue, again, well, all that matters is supporting the top N languages. But then again, there's all these people from the community that are here trying to add support for their language. And they just can't even use that at all if they don't have that. So, you know, that's something that we've been working on. It's pretty like a dazzling,
Starting point is 00:51:36 I think when I, yeah. So I do my best. Anyway, it's written down here. Maybe the rationale or motivation isn't fully articulated here and i'm happy to i like that you both you guys challenge me something that happened last time we talked when you were talking about like how cool it would be to have you know 60 fps animation which has still been in my mind like i ever since that conversation have thought about it quite a bit and how to use like springs those cool apple spring ideas like but yeah i haven't pulled the trigger on that yet although we rewrote the freaking ui framework you know so it's like there you go it's not like we're not investing there either yeah well you're investing all over the place i think you know i
Starting point is 00:52:23 get excited about this stuff it's hard for me to focus right now because there's so many areas of this product that we could talk about. I'm sure it's very difficult for you to remain focused, even with your public roadmap. I was so excited to see some extensibility land. I think it was just last week or something. Like there's Z extensions now.
Starting point is 00:52:44 That was one of my number one things, even from last year. But from this time when I'm like, okay, I'm going to use this. And I am not huge on customizing and extending. I just have some snippets that I just generally have, you know, available that I would love to just add to Z, you know, from Sublime Text. Right. And I couldn't do that. And so I was like well i'll just put them into my i'll go up a level and put them into my operating system text expansion right
Starting point is 00:53:11 and i'll just text expand them it's fine like but obviously built into the editor is where i would love it to be and it seems like you ship some stuff there's custom themes now like what's out there in the extensibility world and then what's coming? Yeah, so when we announced it, we said we're announcing initial support for the extension registry. And I worry that some people saw that and they're like, oh, they support a full-fledged API that does everything you could possibly do, which is not the case. But where we chose to focus
Starting point is 00:53:45 first, obviously, was Yaa themes, but then also, I think more importantly, languages. So Max did a bunch of work. He would be able to speak more intelligently about how it works, but basically delivering TreeSitter grammars in a WebAssembly packaging format. And so it's really interesting. He actually, like when TreeSitter generates a grammar, it generates like basically these C arrays that are just like tables, like parse tables that are like, you know, powering the stack automaton. And so he like encodes those in WebAssembly, but actually just copies them out
Starting point is 00:54:27 of the WASM into our heap so that we can use the native TreeSitter. And then TreeSitter actually will call into the WebAssembly to run custom lexical scanning code for languages like Python, where there's non-context-free grammar features. It'll call into the WASM to run the lexer. I just thought that was a really impressive feat on his part. So there's that. Wow. And then there's also these WebAssembly-based language server adapters,
Starting point is 00:54:57 which is like, just give us the binary to run. You know, there's basically a very simple interface that we'll call and, you know, obtain the binary. But the cool thing is, I think, actually, with this work of the team that designed Wit, I don't know all the details of that team. But I think, actually, there's a pretty clear path for adding more extension points in front of us. Like, the infrastructure is actually there. Super excited about that. And, like, the cool thing is, is we're so well positioned, right? I think we already have,
Starting point is 00:55:28 I don't remember, I think Max maybe gives you access to the work tree, but because it's in Rust, we designed the whole system using all these persistent data structures where it's really cheap to take a clone of a snapshot of the data structure in some state and then like move it to a background thread. And so like we can actually kind of provide shared memory access to the extensions. I mean, I guess you're copying to and from the WASM heap, whatever values you want to look at.
Starting point is 00:56:04 But like in general, you know, we'll be able to really... In VS Code, they're running all the extensions in a totally separate process. So everything that... That was one of the cool things about Atom. It was a nightmare because inviting extensions into your main thread is just like, say goodbye. Asking for it it now we actually have like the best of both worlds where we can run an extension in a wasm runtime um in wasm time in a background thread but provide it first class access to the underlying data structures like
Starting point is 00:56:40 in memory um i'm really excited about that. Yeah. Yeah, I love it. I want the extensibility. And it sounds like the best of both worlds, certainly. The downside is just like, if we only go with Wasm, and I wouldn't rule out like potentially embedding VA or going with JavaScript core, something like that. It's just a bit of a bigger lift. Because the cool thing about that is,
Starting point is 00:57:05 while I don't know how feasible it would be to just run a VS Code extension, there is something to be said for the fact that Emmet has probably a pile of JavaScript code or TypeScript code that could probably be pretty quickly brought to bear but then again with ai it's like you could pretty quickly translate some things obviously there are different languages i don't know so that's that's the debate what's appealing about javascript is just all that extension code out there for vs code but then i don't, there was also something appealing of just like, well, I want to write Rust. And all the APIs already are Rust. So anyway. Yeah, that's a tough one because it's hard not to gobble up
Starting point is 00:57:53 all that existing code and just make it available and set your favorite plugin easily ported or maybe no code changes for the case that there's very little API service that it touches. That was one of the things that I think helped Sublime Text get a foothold was that it immediately supported TextMate themes and plugins, I believe, very early on. And so it was like, there goes your barrier to adoption.
Starting point is 00:58:24 You're like, we'll just bring your stuff with you over. Because people have their pet plugins. And I mean, same thing with Chrome extensions and stuff. There's certain things where it's like, well, I would ditch Chrome, except I have this one extension that my entire life revolves around. It's not available on Firefox or whatever it is. And that will stop a lot of people. The lack of extensibility in total is stopping a bunch of people right now. of extensibility in total is stopping a bunch of people right now the fact that you're getting there is spectacular by the way adam you can now download the dracula theme via the z extensions repository i'm not sure if dracula was built in as well but it's there now seems like we should bundle that one because it seems
Starting point is 00:58:59 pretty popular i would think so i would think so but you don't have to because it's there now. It's in the theme registry. What's up, friends? As someone who's always been mindful of what I put in my brain and what I put in my body, I was so excited to get a chance to work with Factor. I've been a fan of Factor for a while and recently had a chance to get them on as a sponsor. Now, this is a little off center from our normal sponsor style because, hey, it's about food. But I believe you are only as good as what you put into your body. And that begins with food. Eating better can be easier with factors, delicious, ready to eat meals. meals every fresh never frozen meal is chef crafted dietician approved and ready to go in just two minutes you'll have over 35 different options to choose from every week including calorie smart protein plus that's mine and keto also there are more than 60 add-ons to help you stay fueled up and feeling good all day long. Now, what are you waiting for?
Starting point is 01:00:05 Get started today and get after your eating goals. Two-minute meals, pancake smoothies, no prep, no mass meals, flexible for your schedule. Factor is the perfect solution if you're looking for fast, premium options with no cooking required. And of course, you can sign up and save. We've done the math. Factor is less expensive than takeout and every meal is dietitian approved to be nutritious and delicious. So head to factormeals.com slash changelog50 and use our code changelog50 to get 50% off. That's right, 50% off. That code, again, is changelog50, and go to factormeals.com slash changelog50. That's F-A-C-T-O-R-M-E-A-L-S dot com slash changelog50. I would love to go back to the open source stuff, if you guys don't mind,
Starting point is 01:01:05 because we talked about it, but we didn't dive into the details. I feel like you did this thoughtfully. You didn't just slap the MIT on everything and say, let's rock and roll. But you actually went section by section through Zed and applied different licensing to different areas of the overall product. So you have GPUI, and that one is the UI framework that you all built custom and allows for those silky smooth rendering and all this kind of stuff,
Starting point is 01:01:36 except for Theo's machine, but now it does. And that is Apache 2. So that's like as permissive as you could get, right? Pretty much. Yeah, I mean, maybe you could do like MIT is even more permissive, but it's fine. It's like really permissive. It's pretty close, right?
Starting point is 01:01:52 Yeah. And then the code for Zed itself, which maybe you can help us define exactly what that means, is... Just the binary that you run in your machine. Okay. So that's GPL. Right. And then there's server-side components, which are also open source those are agpl right and then does that cover all the split
Starting point is 01:02:12 outs or is there any other licenses that apply no that's it yeah and the idea behind that was just i want people to be able to build whatever they want with gpu i like that just seems good for us in general if there's just more gpi apps out there even if they are closed source and so yeah may as well make it permissive it's not our priority right now to turn it into like a rails level experience but i would love to get there if that ends up making sense like if there ends up being demand for that right now, I'd say like it's in the repo, right? So anybody that would build anything with it
Starting point is 01:02:50 is probably like pulling it in as a directory into their own repo. It's not a separate repo on GitHub. It's not like a standalone project. Right. And the reason for that is just like any change to GPOI can't break Zed anyway. Like the builds are already interconnected.
Starting point is 01:03:06 It's just like we're not there yet with that to give you a silky smooth onboarding experience to building on GPUI. But if you want to experiment with it, you can do whatever you want with that code. Zed itself is copyleft basically just because I want... I don't want it to be forked and taken back closed. I don't know.
Starting point is 01:03:27 I think there would be plenty of companies that might want to do that. And I don't know. I just worked pretty hard on the software. And I want improvements to it to benefit the entire community. And I think it protects our, leaves us some optionality from a business perspective to have some advantages that we might need to monetize in terms of, yeah, just, yeah, if you want to build with that code,
Starting point is 01:03:56 you need to make it open. Whereas we could potentially release, you know, a version of Zed that had, you know, 1% or less closed source components targeting commercial use cases or something, you know, we could do the schlep that makes Zed work well in the enterprise setting or whatever it would be. Whereas there's not as much of an economic incentive for some other actor to go do that because they can't really like, I don't know. If closed source is ever a lever
Starting point is 01:04:27 that we would need to pull on a small amount of code to advantage ourselves from a monetization perspective, like we would be able to do that. And I think that that's helpful in just Zed continue to exist as a thing. But what I like about the GPL is it doesn't limit anybody from doing anything they want to from an open source perspective. And, you know, you can take it and modify it to
Starting point is 01:04:51 your heart's content and run it. I don't know. I think it's, it's a, I don't know, there may be some people that are like, that's not enough. It should have been MIT'd. And I don't know what to say. Like, we're trying to be as open as we can be while being sane. Yeah. I think what a lot of people would have done would be to have the server-side stuff private. Like to maybe MIT the editor or whatever. Not copyleft, a permissive license on the editor, but then the server-side bits they they keep them to themselves and say okay well you can obviously write your own server side bits if you want to compete with us or whatever and you haven't done that you've open sourced everything
Starting point is 01:05:32 but you've agpl'd the server side stuff is that right that's right yeah and the idea there is just like zed is like it's it's just hard to develop for that it's a collaborative editor right like we need the server there like it just would have introduced a lot of awkwardness to the development experience of an open source person plus we have this like come into our channels like like i just really wanted the doors to be wide open and not create weird at least from my day-to-day development experience not create like parts of the code people day-to-day development experience, not create like parts of the code people couldn't see and couldn't see. It's just, it's all out there. Yeah. Well, in that way, I think you actually did more than what most people do.
Starting point is 01:06:13 I mean, I'm sure there's somebody saying you didn't do enough, but I think you've done more. Thanks. More probably than I suspected, you know? Yeah. Yeah. And again, it's like, that's not to say that there's, who knows what we're going to need to do down the line. Maybe we will have an on-prem offering, for example, that is closed source, and it's just designed for a big enterprise to run inside their data center. And that's something that we can make some money on. And maybe that wouldn't be there but at least we have this reference implementation of the server or i mean and that's the server we're running in production right now so like there it is like yeah well i don't know if you guys saw what plausible did just recently they were they still are agpl so they're primarily a server-side service. It's an analytics service that's open source
Starting point is 01:07:07 and also kind of a bootstrapped startup that's been quite successful doing GDPR-compliant analytics and cookie lists and stuff. It's cool stuff. We've been friends with them for a long time, and long-time customers of theirs as well for our stuff. But they recently, they were AGPL everything, and they recently said that for some reason.
Starting point is 01:07:29 And I don't know the details of this. I want to talk to them as well. But I do know that they recently have now forked themselves and have a community edition. And so they're going to have that remain AGPL, but they're going to have their own proprietary bits. And mostly it's because people are cloning and doing stuff and they're having a hard time
Starting point is 01:07:48 remaining competitive because of the fact that they're open source even with the AGPL so I'm curious to talk to them about it but this stuff is difficult. It's hard to get right. We see a lot of people changing their minds we see a lot of people acting as if they're open source but they're
Starting point is 01:08:04 not and then we have people who are cool with open-ish their minds. We see a lot of people acting as if they're open source, but they're not. And then we have people who are cool with open-ish. And I like open source more, but I think open-ish is better than closed-ish. So I get it, but it's not easy. And so I feel like you did it slow and somewhat methodically. Did you talk to lawyers? Did you have a lot of conversations about how to do this? And I'm sure your, your investors probably were on board with it, but probably needed some explaining or some conversations there too. Was it a big, was it a big decision how to do it? Uh, yeah, yeah. I mean, I knew we wanted to do it. Um, I didn't know exactly how and I, yeah, I flirted with the idea of like,
Starting point is 01:08:44 what if we keep the server closed? And yeah, just different, yeah, different levers we could try to pull. But yeah, who did I, I mean, I had over the years, like, you know, various conversations with different, I don't, yeah, I don't even remember them all, but different people that had a take on open source and open source business models. And yeah, we talked to some attorneys, but ultimately we made the decision of what to do and our board supported us. I mean, I think Redpoint supports a lot of open source companies and they were really excited to go open source and they thought it made sense. So it wasn't a tough conversation with the board at all. I think they get it. Community response.
Starting point is 01:09:30 I'm sure you saw a big update. I saw that you guys were topping Hacker News for a day. So that had to feel good in terms of you got a lot of attention around the announcement. Probably got a bunch of people kicking the tires because of that. But yeah, excitement, naysaying, a little bit of both, maybe. A little bit of both. Yeah, I've seen. Yeah, I saw some definite naysaying was a little bit of both maybe a little bit of both yeah i've seen yeah i saw some definite naysaying on youtube it was like yikes this is rough at this point like i've got a thick skin after adam adam like had a lot more problems and the things that really hurt that people would say about adam were the things that I knew they were right, but they were just being so mean about it.
Starting point is 01:10:05 It's like, God, I'm just trying to figure it out. And, you know, there's some of that now, but there's some people that are just, they're just like, well, like someone made a video saying we were a VS Code killer, which like, I don't want to, I'm just doing my thing over here. Like, I don't want to kill anybody or anything.
Starting point is 01:10:23 But someone's like, you can't be a VS Code killer if you're not on Linux. And I'm just like, okay, well, first of all, I never claimed to be that. And second of all... Now we know when he said yes to Linux, Adam. Now we know what got him over the hill on Linux. That one anonymous commenter, yeah. But anyway, overall, the response has been blowing my mind positive. And I didn't really know.
Starting point is 01:10:48 I just had an instinct, like, we have to open source this. We're just getting it to the spot where it needed to go. But the difference has been like 10x, maybe, the level of interest, maybe a little under that, but pretty close. And what's been really cool is to see a big uptick in users who are using that a lot because that's like a really important metric for us is basically people that are really using it every day like that 10x and that is what i'm more excited about than just a number like weekly actives it's like yeah weekly highly engaged people. But yeah, then just like, I guess, anecdotally, you know, just looking at Twitter, it's like every time I look at Twitter, there's like a new little badge of a notification going on. So it's just like, I feel that there's definitely a lot more interest.
Starting point is 01:11:39 And I was happy about that because it's like, that made sense to me. Like, of course, there's more interest from programmers in an open source editor. That just makes sense. But I'm glad we didn't open source it only to have nothing happen. You know, like, until you do it, you don't really know. How do you handle contributions then? So when you say open, is it open as an also open source, of course, but open contributions. What do you want from being open source in terms of collaboration or contribution?
Starting point is 01:12:11 Yeah, to be honest, I have not been as involved as I probably should, but that doesn't mean members of the team aren't in giving people feedback and merging pull requests. We've merged, I don't know, it was like 150 a while ago. So it's been quite a bit more than that. I don't have a hard number. I should probably look that up,
Starting point is 01:12:32 but we're definitely merging stuff. In terms of the process, I guess like if you're fixing a bug, just please open a pull request. If you're taking a deeper cut, like it might make sense to try to talk to us open a discussion yeah just i guess the scale the contribution the bigger the contribution the more it makes sense to talk to us and even you know sometimes uh we've actually done some pairing where like
Starting point is 01:12:58 i think conrad's done this other members of the team have done this where they've just been like hey do you want to pair like let's schedule a time and actually just review this together live where we can talk it through and even make a few changes live so there's a there's a mix but overall my attitude has always been like yeah it's tough it's yet another thing to balance against all these different things we've been talking about right it? It's like picking up the phone, being there. That was a place where we didn't always, I think we're doing better than we did on Adam at that so far of just like being responsive to people that want to contribute.
Starting point is 01:13:36 But yeah, I mean, that's a challenge as well. At some point, I want to start maintaining like a sort of metrics about what's our throughput on pull requests. What's the latency to like getting a reply to somebody. We don't have those in place yet. It's something we've talked about, but Joseph, who does a lot of our metrics, it's also stretched really thin. So, I mean, it's not there yet, but I think we're engaging. Are we perfect? I would say say no but we've merged quite a bit of contribution from the community there's tooling for that we've spoken with people who
Starting point is 01:14:11 provide open source tooling so you don't have to build all that stuff custom beautiful adam can you remember the project that we talked about at open source summit last year where they are doing metrics for open source projects, Project Health specifically. And it was specifically for this, like managers of open source projects inside orgs being able to see how everything is going,
Starting point is 01:14:36 see if there's something falling through the cracks, et cetera. I do recall that. Yeah, that was episode 542 from the anthology there, Maintaining Maintainers. We talked to some repeaters from GitHub, Dr. Don Foster, yeah that was episode 542 from the anthology there maintaining maintainers we talked to some repeaters from github, Dr. Don Foster
Starting point is 01:14:50 director of open source community and strategy at VMware and Angie Byron about some cool stuff in the open source world around Drupal and things she's done but I think Dr. Don Foster was the one exactly and I think it was the chaos if I recall correctly C-H-A-O-S-S, which stands for Community Health Analytics in Open Source Software.
Starting point is 01:15:12 There you go. It is a Linux Foundation project too, so definitely something worth diving deeper into. I agree. Yeah, and I know that, I mean, luckily, yeah, I work with a bunch of really great people who are conscientious on top of it. And some people like to, yeah, I think there are people that are engaging more with contribution than others, but there's quite a bit of engagement happening. But I also know that overall to do well at it, it would be a good idea to measure it
Starting point is 01:15:42 and look at that measurement and sort of hold ourselves accountable to some sort of sla if that makes sense uh on getting back to people or engaging well just a matter of how seriously do you take it if you're gonna take it seriously you know if you don't track it it doesn't happen what's that saying if a metric isn't tracked it's not real no that's not the saying yeah i read this read this book measure what matters and i think the title says it all so there you go those are the best books you know you don't have to read them you just read the title like gtd you know getting things done i'm done i read it like i'm gonna get some stuff done now. Exactly.
Starting point is 01:16:26 Oh, good stuff. Good stuff. So the AI stuff is interesting. I feel like at a certain point, we're going to get into small feature requests slash bug reports. And I'm wondering if we should keep that for like plus plus only because it's going to get into the weeds
Starting point is 01:16:39 and you may end up like being like, let's screen share. But before we get to that, I do think that the AI stuff is interesting in terms of like, there's screen share. But before we get to that, I do think that the AI stuff is interesting in terms of like there's GitHub Copilot integration, but then there's also like the Zed AI assistant. And I don't, I would just love like your thought process on why there's both,
Starting point is 01:16:56 maybe because Copilot's like specifically asked for it. I'm sure it works differently. Can you talk about just how you went through building out that part of it? Yeah, I mean, the Copilot integration was one of our top requests when we initially launched the beta. So we just added it because people wanted it.
Starting point is 01:17:15 The ZAI stuff is, I mean, it's not, there's not much to it right now, other than I think we've done a good job executing on the UI of think we've done a good job executing on the ui of what we've done but basically it's it's almost like an api client for for chat gpt for gpt4 where you've got this kind of like freeform editor that you know it's got these like you know timestamp headings or whatever user assistant system and you can like toggle between the different roles and just edit it and you're sort of just basically essentially editing the json that gets submitted
Starting point is 01:17:50 to the language model it's a very kind of bare bones approach but i actually kind of like it like i can get a lot of done in a lot done in a 150k token conversation with the model. And one thing that like I'm just rearing to do and things keep getting in the way, like this bug we're fixing is making that process recursive because we've got the assisted panel and then we've also got the inline assist where you can highlight some text
Starting point is 01:18:19 and hit control enter and enter like a transformation prompt. But what we don't have yet is the inline assist in the assisted panel where you could use ai to almost like boil down aspects of this conversation from the past or whatever and sort of just like it's literally the entire interaction is like this unfolding gpt4 api call that you're editing in place. So I don't know.
Starting point is 01:18:46 It's very like, yeah, it's literally designed around me trying to write code with chat GPT on GPT-4 and them rate limiting me. But then me having an API key and going into the OpenAI API playground so that I could keep using GPT-4 even after they'd rate limited me and then just being like, this editor is annoying. I just want this in Z
Starting point is 01:19:11 and that's the assistant panel. So we have a lot of work to do there. How do we get things into that context window more conveniently? Indexing the code. Yeah, that's the kind of stuff that I want to start digging into yeah in the
Starting point is 01:19:27 coming weeks is that something that incurs a cost to you as a company like is that affecting your burn to provide that oh well right now it's just you put your api key in so it's not affecting our burn at all so if i have an api key and i have a paid version i can use it i gotcha okay cool but it will affect our burn a little bit i think to offer yeah that out of the box like day zero experience where without having to fumble around with setting up an api key or whatever just like let's give you this experience and i don't know that as a startup we can really run that meter as long as a big company could. But we can at least let somebody experience what might motivate them to just either pay us and then we can provide it or go do the open AI thing, which is fine as well. Obviously, I'd love that people pay us, but I don't know.
Starting point is 01:20:23 We're not I'm not here to. Yeah, someone would just fork it and add that anyway, us, but I don't know. We're not, I'm not here to, yeah. Someone would just fork it and add that anyway, like it's open source, right? So I think that would be a convenience factor more than anything for now. But I think overall we can start indexing. We could start doing more in the cloud that would be a value add on top of that offering.
Starting point is 01:20:41 But for me, it would be more about like the best way to rate limit demand is to charge a price. I know it can't be unlimited. So that's where my head's at there. What does indexing in cloud look like? What are you doing? What does that mean? So it means like embedding all of your code base into a vector space that we could basically use as a queryable source of data. I think I have a lot to learn about this, like embedding models. Are they where they need to be? I know we can use OpenAI embeddings or there's open source ones. How do we want to craft those embeddings to be optimal? We had some local embedding that we were doing with a semantic search feature, but it just
Starting point is 01:21:26 didn't really quite get off the ground. And what I actually realized is, I think I want my fuzzy search, I want to use those embeddings to do a quick nav, where I just open it up and it's kind of like fuzzy finding on files or whatever. But instead, you're just typing whatever you think would like get your query into the same part of the vector space as where the code you're looking for is, you know, it's like a fuzzier query, a semantic query, but then we can show you previews of those spots as like a quick means of
Starting point is 01:21:59 navigating it. And then the idea of like looping back, you know, if you go down and pick the third, then using that like multiple negatives ranking loss to kind of learn on the fly, like, or yeah, even feedback in as a team and become more intelligent, basically train the embeddings from the process of people actually using it for different use cases like navigation or pulling code into their context window. Anyway, I'm rambling on and on about it
Starting point is 01:22:29 and we haven't done any of it yet, but that's what I'm excited to do. So much to do. I think your roadmap definitely plots it out quite well for you. It seems like some of these things are maybe in the roadmap part of it, not the objectives. Like I don't really see embeddings or, you know, this indexing in your roadmap part of it.
Starting point is 01:22:50 Maybe that's part of the larger AI push of it, but, you know, or I guess embrace AI as part of your objective. So it's like one bullet is good for that. Yeah. I think the problem right now with AI is it just is, it's not really reflected in this roadmap here. This roadmap is kind of the adoption roadmap. And then these other two objectives are things that are kind of not on this roadmap. And they're more, this one's exploratory.
Starting point is 01:23:15 Embracing AI, I think, is kind of in an exploratory phase. And then, yeah, Zed and Zed with our community. I mean, we actually, we have more detail if you go to, you know, the collab channel, probably open notes in collab, right-clicking open notes like you. We have a roadmap, you know, specifically geared toward collaboration. Maybe we should link to it from those parent notes.
Starting point is 01:23:40 And this is kind of like, we're exploring like how we're even tracking work, et cetera. But what is cool is we're still using issues for sort of inbound bugs, like actual issues. But whereas we used to kind of, yeah, initially we would use Markdown in a tracking issue or something to track a big project. And then eventually we switched to linear for a while, which like kind of worked out, but it's kind of awkward for open source anyway. And it wasn't really working out.
Starting point is 01:24:13 So now I think we're back to GitHub issues for actual issues. And then we've been using these like notes to kind of just in a lightweight way, track more like work where we're sort of setting the agenda, if that makes sense, like long running feature work. We're just tracking in these notes and markdown. On the AI front, one thing that's happening is that OpenAI's API is becoming a bit of a de facto standard for a lot of interfaces, much like S3 became de facto API standard.
Starting point is 01:24:45 Everybody said S3 compliant. Well, everybody's starting to say OpenAI API compliant. And so you could potentially pretty easily provide a bring-your-own-model kind of a setup where on the back end, you all are just doing the same exact OpenAI API calls, but you're swapping out the actual base URL or whatever, however you do it. Ollama, for instance, is like a bring your own run models locally open source project that has OpenAI API support now. Nice. So you can get CodeLlama on there. That'd be super easy to use
Starting point is 01:25:16 in Zed right now. You could set a configuration key, which is like OpenAI API URL, and you'll be hitting your local server. Yeah. So that'd be a good option for a lot of people, especially people with fast laptops. Yeah. And I haven't even played with it. I'm ashamed to say, but I'm pretty intrigued by Ollama. And if I weren't firefighting a bug that was causing things to flicker on hover because we're painting things in the wrong order that's not quite what it is but yeah i might be playing with it right now but i've just been greedy with my time lately anyway well you want it to be fast and flicker free so i mean that's hot that's top priority
Starting point is 01:25:55 right yeah it's just embarrassing i yeah honestly for anyone listening to this like i'm sorry and we're working hard to fix it. Clearly. Nathan Sobo issues an apology to all users for the Flickr. Well, I mean, too much to work on. It's exciting times. We'd love to have you back on and get incremental updates on progress because you've won me over for the time being. I am a fickle fan though.
Starting point is 01:26:25 So I may, I do end up back on sublime texts every once in a while, just cause it's, I'll tell you this, the first, the last time you're on the show, I was talking about the search on sublime and how it's just lightweight and so fast and so good.
Starting point is 01:26:37 And you were talking about Zed search and how there's similarities. But one thing you can do in Zed search that you can't do over in sublime is you can actually edit the buffers right there inside of the search results. And I didn't really understand what you meant by that at the time. And I'm used to clicking over new tab through the search results and then editing over there and saving that. And I do find that actually Zed's buffer editing right there in the search results is pretty fantastic because it just saves me a tab open and then a save and then tab close and so you're you're winning me over and i would love to have you tried multi-cursor in the search results no because that can be that easy tell me more well it's like you pull up a bunch of search
Starting point is 01:27:19 results oftentimes they'll have like similar structure yeah and so i mean i experience this even better in like a compile error type situation where you know i'll pull up 10 compilers they're all pulled up in a multi-buffer and they're all sort of the same error and so i can play games with syntactic nav or and multi-cursors to just like fix all the compile errors in one shot. I love that. That's like a, when it works, when it works out. And yeah, I mean, that's another area where I'd love to invest making multi-buffers more intuitive. Like some people don't even know that you can edit in them. Well, I wouldn't have, unless you told me. Right. And it's like, how can we make that more obvious?
Starting point is 01:28:01 Because it's not what you expect to be able to do right there. Yeah. Yeah. There's tons of user experience wins that are just, like, low-hanging fruit for you. I know you have too many things to focus on. But, like, there's, like I said earlier, the nugget, the gold nugget's there. But it's, like, covered in, you know, dirt and grime and stuff. And you've got to just polish that sucker up. You've got a chocolate bar.
Starting point is 01:28:24 But the rest of my thoughts are all uh feature requests and bug reports so should we end the official show we can go to plus plus and and really drill down on them real quick sounds good yeah i know adam has a bug report he'd like to i mean i got a gripe really all right it's not really air worthy i'm gonna take notes in the this week channel which is internal uh so you guys can. Cool. I guess, actually, let me take the notes in the Zed channel so you can actually see what I'm writing. Okay.
Starting point is 01:28:51 I don't know, where do I want to put them? I'll put them down, I'll put them here, which is like... We do see it. Changelog. Feedback. Conversation. Feedback, feedback, there you go.
Starting point is 01:29:01 This is like my old joke about our podcast being a Trojan horse for feature requests. That's right. We ask people onto our show, and then we're nice to them. And then by the end, we're like, hey, by the way, this would be cool. Okay, I'll build that for you. So everybody that's been listening for like an hour-ish or hour 20-ish, something like that, right? What is it?
Starting point is 01:29:18 Yeah, around an hour and 30, gosh. The show has ended, and stick around for Plus Plus. We're going to talk in session with Nathan inside of Zed. And there you go. So that's the end of this show. Bye friends. Bye friends. And here we go. Okay.
Starting point is 01:29:39 So we started recording our feature requests and bug reports for a changelog Plus plus bonus but we also just kept talking after that so plus plus people you're pretty much getting an entire second episode right after this seriously it's like 51 minutes oh and it also includes a hilarious slip of the tongue by adam that he refused to keep in the main show i hate to tease too much but it's so funny here's a bit of the fallout let me rewind all again assume nothing i don't know i think we leave it at no no no we can't do that that's
Starting point is 01:30:12 embarrassing and just politically not good it's gonna be your face i will have to put my foot down on that one ah but but entertainment value is like peaking, you know? I mean, Nathan's red in the face is so good. I love to laugh and that was pretty funny. Adam is embarrassed. I guess we'll leave it to the maybe very end. We'll leave it in. We left it in at the very end for our most loyal supporters.
Starting point is 01:30:41 If you want to be one of them, learn more at changelog.com slash plus plus. It's better. Thanks again to our partners at Fly.io and to our beat-freaking residents, Breakmaster Cylinder. The new Dance Party album is a hit. It's so good. And we have more in store. But right now, BMC is working on fresh beats for our recently rebooted Ship It pod. I like it.
Starting point is 01:31:02 Maybe you will like it too, you know. And of course, thank you to our longtime sponsors at Sentry. Get yourself $100 off their team plan when you use code CHANGELOG while signing up. That also helps Sentry know that we're bringing them value, so please do use the code CHANGELOG. Sentry is awesome. We've been using it for years. Next week on the Changelog, news on Monday, internet pioneer and DNS expert Paul Vixie on Wednesday. And on Friday, I'm not sure.
Starting point is 01:31:29 I'm taking my wife on a little getaway next week, so Adam will be solo on Friends. He says he has a plan, but he didn't tell me what it was. So I might find out at the same time as you. Have a great weekend. Share The Change Log with your friends who might dig it. And let's talk again real soon.

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.