Changelog & Friends — Episode 129

Zed's secret sauce

Nathan Sobo discusses Zed's evolution as an open-source text editor with built-in collaboration features, Linux support, extensibility via WebAssembly, and AI integration.

Speakers
Adam Stacoviak, Jerod Santo, Nathan Sobo
Duration
Transcript(229 segments)
  1. Adam Stacoviak

    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.

  2. Jerod Santo

    Yes, let's talk about Tailscale. As you know, around here we love Tailscale. At least I do.

  3. Adam Stacoviak

    I don't think Jared uses it. I know Gerhard loves it. I love it. Also 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. 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 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 pie 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 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. 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 even more crucial on, you know, 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 in quotes 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 Law 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 9 million listens across the network in 2023. I think we'll do almost 11 if we keep the same momentum in 2024. We brought ShipIt back this year with Justin and Autumn. 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. ChangeLaw.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. We're hitting the fringes and the edges of, you know, in quotes, software and business intersections where we're talking about home lab, we're talking about, you know, just lots of fun things. It's crazy.

  4. Jerod Santo

    Can I interrupt to ask a question about something that particularly piqued my interest?

  5. Adam Stacoviak

    Sure. Yeah.

  6. Jerod Santo

    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.

  7. Adam Stacoviak

    Yeah. Well, we have to thank Gerhard for that because Gerhard helped us learn, I don't know about you Ger, but I learned it from Gerhard.

  8. Jerod Santo

    Yeah.

  9. Adam Stacoviak

    I learned about kaizen through Gerhard and Gerhard's been working with us since 2016. He's been our in quotes, SRE in residence, but he is very much in charge of change log infrastructure. Jared, he worked 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 be improving. 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 describe it, Jared, but that's how I 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 we fail? It's more like, where do we not do so well and can improve?

  10. Jerod Santo

    Right.

  11. Adam Stacoviak

    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. And that's where we kind of 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. And so we've kind of formalized it in that way. And like we have a thing called kaizen that we do. And it's kind of like what a standup or a retro would be, I guess. But just as a podcast episode, we also just hang out and chit chat, you know? So we're kind of bringing our community and our listeners along 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 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 has 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 going to talk about it. I got to have something to talk about. But as software developers, even like just that, I mean, we all talk about that fast feedback loop and how important it is. And that's what kaizen is all about, right? Like, this isn't perfect, but let's ship this and then iterate and improve and continuously do that.

  12. Jerod Santo

    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.

  13. Adam Stacoviak

    Right.

  14. Jerod Santo

    I've even was met with some skepticism of like, around open sourcing that I've 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? But that can't be perfection, because that's not realistic. But it can be like, pretty good.

  15. Adam Stacoviak

    That being said, you're releasing new versions of Zed constantly, I mean, sometimes twice a day I've seen.

  16. Jerod Santo

    Yeah. I mean, when they're more frequent than a week, it's because we're fixing something. So it's not always great. But yeah, the kaizen that we're shooting for is a week, Zed's day. Zed's 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 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 to ask 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 anyway, to minimize it. But yeah, I guess we're still putting out a lot of binaries, which is okay.

  17. Adam Stacoviak

    Yeah, totally. Yeah. Whether 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.

  18. Jerod Santo

    That's awesome.

  19. Adam Stacoviak

    You got a user. I'm happy to hear that. Last year, when we had you on the show, I downloaded it. I checked it out, and I thought, okay, lots of potential, 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, you know, missing things, right? And it wasn't open source yet. And I have a little bit of like hesitancy of like, 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. 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, 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.

  20. Jerod Santo

    Really happy to hear that.

  21. Adam Stacoviak

    I'm loving it. I've got feature requests.

  22. Jerod Santo

    Yeah, I mean, speaking of Kaizen, like, but the cool thing is, is like, I know we can get there. Like, we, we all care so much about getting there, because it's our frickin 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. 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 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 indirect 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. Right. I don't know, kind of getting back to that Kaizen idea. Yeah.

  23. Adam Stacoviak

    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 with 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. It's like, how many environments are you failing people potentially? And that first experience is so crucial. Like, there's a lot of offerings, there's a lot of good editors out there, I might try something and be like, and I'm like, never, you might never get a second chance with me, you know? Now you did, because we know you. And also, we were urging you to open source at that 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. But there's so many people out there that you just don't even know about. It's like, what was their first experience? And how could it have been better? You know,

  24. Jerod Santo

    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 that. 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 the silly little like, tiny thing that can just destroy the experience. Right. Anyway, but we fixed that too. And now 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 Adam days, it's just like, you know, it's running out there in the wild, a little far from your eyes and control.

  25. Adam Stacoviak

    Right. Do you have telemetry? Do you desire telemetry?

  26. Jerod Santo

    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 that I thought that was helpful, it would be helpful for if people leave it on. And the hope is like, if they can see exactly what we're sending, then the world more likely to leave it on.

  27. Adam Stacoviak

    That's cool. How do you see it? Oh, I see.

  28. Jerod Santo

    It's in the help 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, 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 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 like we were rendering the frames really fast, but we still didn't know like we were the display wasn't asking us for them quickly enough.

  29. Adam Stacoviak

    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 or are you I know web is a fish is going to be a target. I know Linux is on the roadmap or somewhere Linux is happening right now. Yeah. Okay. And so you're going to open it up to tons of different environments after that, right?

  30. Jerod Santo

    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. I mean, I think a lot of that wouldn't be possible without them live kit. I don't know if you've ever talked to Russell. But they're like a, they have an open source client. They're like a web RTC, you know, as a service, basically. And like porting that piece to Linux is a little more challenging. And that's not something we can expect the community to do 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? He's been like working on a whole graphics back end for Z or for GPU, I 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.

  31. Adam Stacoviak

    To manage is the team that you have in place now at Z are a lot of users on Linux already. So they can be sort of first class citizens in terms of wanting to have Z on Linux. So they are Linux users, what's the percentage?

  32. Jerod Santo

    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, you know, 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. But I think as soon as they, and there may be other people, like, I don't know what Kirill ultimately would want to do, I'll probably stay on Mac, just 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.

  33. Adam Stacoviak

    Yeah, I just wonder, you know, how much, because when we talked last time, I think I'd mentioned, because we talked about Sublime Text quite a bit, you know, because your 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 ProDisplay and display syncracies and all that stuff, like it's just one more layer of essential pain that you can bring on yourself, like, is now the right time? Obviously, eventually it makes sense, but, you know, is Linux, is there a large, and I'm a Linux user, but not a Linux desktop user, is there a large Linux desktop user that's aching for Z?

  34. Jerod Santo

    Yeah, it's a good, it's a good question. I guess for me, it's like people have shown up to help, and they're trying to contribute this work to Z, 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? 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, like just figure that out and amortize the cost of it. But yeah, I don't know that it's the right decision.

  35. Adam Stacoviak

    No, it is true. That was a rhetorical question, really. Like, it is true. Yeah. I agree with that. That's the logical way to get to multi-platform, is to be multi-platform.

  36. Jerod Santo

    I think you could have went Windows, you could have went Web, that was like the Linux as

  37. Adam Stacoviak

    the choice.

  38. Jerod Santo

    Yeah. 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 don't know. I've had people I'm not going to name names 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 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 engineers on that platform, we'll solve the major problems. I know there's like Wayland versus X. I don't know. Yeah. It's potentially a very long tail, I think, is one of the challenges.

  39. Adam Stacoviak

    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 it, you know, 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 it's, you know, Zed is now open source. That is a great thing. I think, you know, 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?

  40. Jerod Santo

    I mean.

  41. Adam Stacoviak

    The company.

  42. Jerod Santo

    I don't know. I don't think I fully even understand what it's going to get take to get to Linux, but I think we can get there within low single digit months of a fraction of the team. 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, 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. I'm happy to take people's money. And one thing we're thinking about is just like 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 or bring your own local model. Or if you want to just like, give us your credit card, we'll take your money there. But it's not really our like key focus right now is like generating a ton of revenue. I think the key focus is like, let's build the community and get a ton of users using this thing so that we can like 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 are planning and eventually like, you know, offering facilities that are our flagship build. But hopefully it being open source gives people the reassurance that if we're too annoying about that, you know, you can always build it from source or get it from somebody else. But I think we're going to 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 know, 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 right 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.

  43. Adam Stacoviak

    I was glad you mentioned that because I was referencing our transcript, Jared, where you mentioned if you want to search for this, 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, like, when you reference this channel, what exactly is a channel? How do you get granted right access to things? Like, what are some of these terminologies? How do, if a user's list, or if a listener's listening to this, they go pick up Zed, how do they interact with channels? What is that to an everyday user, and what is that to you all and how you've been using

  44. Jerod Santo

    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, 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, yeah, in the lower left, there's like a little people icon, and if you click that, like, that's sort of your channel's panel, and so you can create a new channel, or you can go to the Zed channel. I don't even know if we have that in there by default.

  45. Adam Stacoviak

    I don't see a Zed channel personally. I do see you.

  46. Jerod Santo

    Yeah, because I'm a contact of yours, yeah, so.

  47. Adam Stacoviak

    How did you become a contact of mine?

  48. Jerod Santo

    Probably when I originally sent you, like, the invite to the Zed alpha.

  49. Adam Stacoviak

    Is he a contact for you too, Jared? Yes, he's online. I also see the Zed channel.

  50. Jerod Santo

    You do see the Zed channel. I don't see the Zed channel.

  51. Adam Stacoviak

    Well, I might have clicked on that, because I think in your open source announcement, you talked about the fireside hacks, and there's gonna 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, seems like a cool concept.

  52. Jerod Santo

    We need to start doing them more frequently, but there's just, yeah.

  53. Adam Stacoviak

    Anyways, so then I think that's when I, somehow I added the Zed channel in preparation for that, but I never actually, like, followed through.

  54. Jerod Santo

    Engaged with it, and we need to be doing a much better job explaining to you what the hell this thing is, and.

  55. Adam Stacoviak

    Yeah, like, I honestly.

  56. Jerod Santo

    Well, that's what this podcast is for, you know what I'm saying?

  57. Adam Stacoviak

    I'm excited about channels, but, like, when I click over on that tree over there in the collab bar, like, I don't know what's going on, so. Yeah. Could you invite me to the Zed channel? Like, right now, would I see it real time if you invited me to this channel? Is that a thing? You invite folks to channels if you create it?

  58. Jerod Santo

    Yeah, I can just copy a link here, let's see, copy channel link, I'll paste it up to you. Does Riverside have a.

  59. Adam Stacoviak

    I'm just curious how it works.

  60. Jerod Santo

    A chat.

  61. Adam Stacoviak

    Yeah, there's a chat. There's a chat session here, yeah. So I'm gonna click this link, it's zed.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.

  62. Jerod Santo

    No, it's fine, yeah, this is public. Anybody can come here. Okay. Oh, but it's in this nightly format, can you just take nightly out of that URL? I'm so sorry. That's annoying.

  63. Adam Stacoviak

    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, feedback might be, since I'm already in contact, just simply add me inside of zed and not have to interact with the link so that I just immediately see the channel.

  64. Jerod Santo

    No, I mean, we should just add every zed user to the zed channel and make it easy to delete.

  65. Adam Stacoviak

    Okay, I just heard a little ding too, 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.

  66. Jerod Santo

    Oh yeah, because now you are actually in the zed channel, so I could go in there too.

  67. Adam Stacoviak

    I do see you now.

  68. Jerod Santo

    And so, obviously, we're talking in Riverside, but you might hear me twice.

  69. Adam Stacoviak

    I do hear you twice. This is so freaky, y'all.

  70. Jerod Santo

    I'll mute myself.

  71. Adam Stacoviak

    Thank you.

  72. Jerod Santo

    And then I'll share my project. And so, yeah, I want to show you this AAB tree.

  73. Adam Stacoviak

    No one's seeing this, by the way, so they're following via audio only, they're not seeing this necessarily. Okay. And I will confess that I am not even following because I think I'm in a 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.

  74. Jerod Santo

    Like, it's just me here. Yes. Weird. I can narrate for you, Jared, to some degree.

  75. Adam Stacoviak

    Oh, let me click. No, no, no, give me a second.

  76. Jerod Santo

    I'm going to click the link. Just remove Knightly from it and go to that link. Yeah. And then Knightly out while you're at it.

  77. Adam Stacoviak

    Yep. Did it. Yes. Get out. I'm launching zed. Okay. I got two zed channels. So yes, I had my own personal zed channel previously. Nice. And now I got a bunch of stuff going on.

  78. Jerod Santo

    Hello. And now I hear Jared in there too. I don't hear you, but I do see you. I see your icon at least.

  79. Adam Stacoviak

    I'm in there. All right, keep going, Nathan. Describe to everybody what's going on.

  80. Jerod Santo

    Okay. There's some rough edges around the UX that we will iron out. But the idea is that you should see up at the top of the channels panel, under my avatar, there's a zed folder hanging off. Or maybe you're both already following me. So here I am in this bound street, right?

  81. Adam Stacoviak

    I am following.

  82. Jerod Santo

    So you'd have to sign the CLA and we don't have that integrated into the app right now, but that's all coming. And we're also... Wait, maybe I actually can. Oh yeah, I can grant you mic 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. That's too annoying. But that's how hard it is, which is too hard, but 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 like, no, no, no, I'm going to... What about this? Or you could gesture, you can navigate around anyway. That's how we've been engaging with a small number of zed community members that have cleared some of the rough edges.

  83. Adam Stacoviak

    So I'm looking at boundstree.rs, I see you moving stuff around. Am I looking at a zed repo that's on your machine or is this somewhere?

  84. Jerod Santo

    Yes, exactly.

  85. Adam Stacoviak

    Okay.

  86. Jerod Santo

    I'm looking at yours. And you can actually open any files you wanted, et cetera.

  87. Adam Stacoviak

    And so I'm collapsing, I'm folding line 315. Do you see that also?

  88. Jerod Santo

    I don't see your fold. I do see... Yeah, I see Jared Santo on line 322 here.

  89. Adam Stacoviak

    Yeah, I'm there.

  90. Jerod Santo

    Great.

  91. Adam Stacoviak

    But I don't have right access, so anything I do is just changing my view of the current file, basically.

  92. Jerod Santo

    I think so. Can you edit? No, no, no. I cannot edit. I tried to make it trees versus tree, but you know...

  93. Adam Stacoviak

    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.

  94. Jerod Santo

    Yeah. So anyway, that's kind of what the collaborative experience is like. And I think 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 annoying, where you're on a screen sharing session and you're asking somebody to navigate on your behalf, or you're sort of like 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. You can navigate independently, yeah.

  95. Adam Stacoviak

    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 listener, you'd be thinking like, what in the world are they talking about? Well, when I clicked and when Jared clicked that link, we essentially got open. We got invited into this Z channel where Nathan was already there hanging out with a particular file open. And our Z 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 Z, 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. 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.

  96. Jerod Santo

    Now, sure, there's probably some stuff inside of the terminal itself, maybe inside of Vim that I'm not familiar with, Jared, maybe you are, that's sort of like this that gives you that real time stuff.

  97. Adam Stacoviak

    But this... VS code has some stuff similar to this, but I haven't used it, so I can't say 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?

  98. Jerod Santo

    I mean, I don't know that it's, I don't really know exactly what their UX looks like. I tried it many times quite a while ago and I just found that it wasn't very reliable. 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 Live Share 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 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. And we still have bugs in the parts that we haven't tested that way, namely following, although following's 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, is basically an eventually consistent data structure, whether you're using that buffer in single-player mode or multi-player mode, it's all the same. We carry a small overhead for that, 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 when the AI, like when we're doing the AI rewrite, you're not necessarily collaborating with a human, you're kind of collaborating with something. And it's important to have that eventual consistency and concurrency-friendly design to the buffer so that you can keep making changes while the AI is making changes. So that's paid off. So yeah, it's designed from the ground up for this use case. 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 your feedback.

  99. Adam Stacoviak

    So somebody else just joined the Zed channel and is now talking to us. Do you hear that, Adam? I did. 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 of you guys at the same time. Yeah.

  100. Jerod Santo

    How do we get... I'm recording a podcast right now and I was just showing them the feature, but...

  101. Adam Stacoviak

    Tell Torsten we say hi. Yeah.

  102. Jerod Santo

    What's up, Torsten? The guys from The Changelog say hi, Adam and Jared. He said, hey, Jared, we met at Strangeloop in September and I wanted to say hi.

  103. Adam Stacoviak

    Yes. Awesome. This is a serendipity right here. This is amazing.

  104. Jerod Santo

    All right. See you, Torsten.

  105. Adam Stacoviak

    Yeah. I actually joined their... They were in the VIM file inside of the Zed channel or something. I don't know. I'm not sure what was happening or what I was actually clicking on the street, but I joined their channel and...

  106. Jerod Santo

    There's a VIM channel. Okay. Yeah. And so like Conrad is hanging out in there with a member of the community, just like working on VIM stuff.

  107. Adam Stacoviak

    Well, friends, I have some good news for you. It is launch week once again for Sentry and I'm here with Rahul Chabria from the product team at Sentry. So, Rahul, can you tell me about the launch week this year for Sentry?

  108. Jerod Santo

    In March, we're making a huge investment into our product platform. We're trying to make it faster, better. In November, we shared a sneak peek about our new metrics offering. So now developers will be 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 the customer experiences that they've committed to. And that's going to be available in an alpha. People can sign up to get access, we'll turn it off for them in a couple of days once they ride in, and they can get going right away. On top of that, 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... 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? Our goal is not to have you sit in Sentry all day long. Our goal is not have us be the 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 there's something you should care about, here's how to fix 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 the burden on them? 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 just ghost issues. Those are the two major things coming out. It's thinking about more like defining the metrics you care about, also figuring out ways to 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. 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. 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. It's definitely something there. I'll just fix it, push release, and hopefully those about the crash rates go up and the crash for user rates go up. But it's always like this idea, I still need to figure out where is that bank of use to old devices for someone running 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 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.

  109. Adam Stacoviak

    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. 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. S-E-N-T-R-Y dot I-O. I'm sure they'll link it up somewhere. Or check the show notes for a link. While you're at it, use the code CHANGELOG to get 100 bucks off the team plan.

  110. Jerod Santo

    Again, use the code CHANGELOG, go to sentry dot I-O.

  111. Adam Stacoviak

    There's so much potential here, Nathan. It's like, how can you work on other stuff and not just work on this part?

  112. Jerod Santo

    Because yeah, that's what I was going to go with.

  113. Adam Stacoviak

    There could be discovery, you could like schedule hacks, you know, like I could, people could hang out. There's like the dev side of Twitch streaming and stuff. Like there's a lot of opportunity here. And it just is like, I'm seeing a nugget of potential and like you need to polish that.

  114. Jerod Santo

    Here you are trying to go to Linux, I mean, which is cool, whatever.

  115. Adam Stacoviak

    I would, that's what I was going to say, Jared, like I see the opportunity and the potential here and I would just be so laser focused on proving this out.

  116. Jerod Santo

    That's really good feedback.

  117. Adam Stacoviak

    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, but I would, this is the secret of all the secret sauces in your sauce.

  118. Jerod Santo

    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 be using 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. Like 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 an ongoing cost, but it's just something that we've been in the habit of balancing with the, yeah, because like, yeah, Jared, you said you've been, 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 discovered 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.

  119. Adam Stacoviak

    I think you may be wrong. Okay. Personally, I think it's the feature. It's a, well, it may not be there yet. I think it has the potential to be there to be the attractor. So I think it is both not and or meaning that I don't think people come to ZED because it's amazing. And then discover you can do this. I think it's, well, I can do this and it's an amazing editor I should already be using. 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 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 it in internally. Like Torsten and Conrad were already collaborating. We just essentially ZED bombed them, I guess, right? ZED channel bombed them essentially because like I went into their VIM channel just because I was clicking around when 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.

  120. Jerod Santo

    Yeah. Thanks for saying that. And yeah, I mean, it's tough. We definitely need to hire, but hiring well is hard for me. It's 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. We were spreading ourselves too thin to your point about Linux and I should have just said no again.

  121. Adam Stacoviak

    It was not too late to say no. But anyways.

  122. Jerod Santo

    Yeah. And we're also working on other stuff like 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 the mood, et cetera, the thing I'm doing. I do use it pretty heavily and it's an important feature to me. 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 think a lot of developers are like, AI is overhyped and it's annoying and shut up. But I think that's probably true, 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 and the ZED assistant, I want people to experience that. So we invested some effort there. Yeah. It's tough to balance all the opportunity, but yeah, Linux has never been at the top of my list, but I also, what is at the top of my list is like 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.

  123. Adam Stacoviak

    Yeah. Plus it's your early adopters, it'll be your evangelists, right? It'll be the people who love ZED the most that are the ones talking to you right now. And I think Linux users will be, I mean, the squeaky wheel does get the oil.

  124. Jerod Santo

    They are very squeaky. Yes.

  125. Adam Stacoviak

    Tell me Linux users are squeaky. And so they get what they want and now they're getting it. So there's that.

  126. Jerod Santo

    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, you know, diluting our focus from the thing that yeah, Adam's excited about, for example.

  127. Adam Stacoviak

    Yeah. Well, next time we have you on, you can tell us, you can, you'll have enough. It'll be in the rear view mirror enough a year from now or whatever. You can say, actually, you guys were dead wrong. Linux was a great idea.

  128. Jerod Santo

    That's right.

  129. Adam Stacoviak

    Or you can come back and say, Adam, you, you were so right. Why did I do this? You know, time will tell.

  130. Jerod Santo

    I don't think he's actually wrong.

  131. Adam Stacoviak

    I think the question I would probably ask is like, do you have a flow chart to kind of large choices? Like you said, I want to do what the community wants, what the Zed team wants, then I would say there's like a, 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, you want to satisfy the Zed community who's adopting and you know, buying into the idea. So they're actually 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.

  132. Jerod Santo

    So if you right click on the Zed channel and click open notes, this is sort of, did you do that?

  133. Adam Stacoviak

    Yes.

  134. Jerod Santo

    We're there. Yeah. So this is basically our, our 2024 objectives, you know, tried to be, yeah, this, so the top three are sort of drive adoption. You can't edit cause you don't have right access, I think, but I don't want to write

  135. Adam Stacoviak

    it. I want to read it. I want, I want to tell the listeners what they're seeing.

  136. Jerod Santo

    Well, we're seeing it. Oh yeah. Anybody can see this and you can watch, we edited in real time, right? Like you're seeing this.

  137. Adam Stacoviak

    Yes. I see that.

  138. Jerod Santo

    Yeah. I love it. So like not only could anybody see our roadmap, you can literally watch me either edit it live or if I'm feeling timid, I might write it somewhere else and paste it, but I usually just edit it live.

  139. Adam Stacoviak

    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, you're doing that to a certain extent and embrace AI and you're certainly doing that. So you're, you're on all three of your 2024 missions.

  140. Jerod Santo

    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, like, you know, this is something that we just started breaking ground on of just like, again, like we have so many pull requests coming into Zed that we're just adding language support because we hadn't finished the work to like move that to web assembly. We were briefly flirting with JavaScript, but actually discovered that the, I forget what it's like, basically a web assembly interface definition language or whatever has actually evolved to the point where we think we could actually use it to do web assembly based extensibility, which I don't know, there's a lot of, 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 that's something that we've been working on. It's pretty like a dazzling, 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 is 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, haven't pulled the trigger on that yet. Although we rewrote the fricking UI framework, you know, so it's like, it's not like we're not investing there either.

  141. Adam Stacoviak

    Yeah. Well, you're investing all over the place. I think, you know, I get excited about this stuff. It's hard for me to focus right now cause 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, is that extensions now? That was one of my number one things even from last year, but from this time when I 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 Zed, you know, from Sublime Text 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? And I'll just text expand them and 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.

  142. Jerod Santo

    Yeah, so when we announced it, we said like, we're announcing initial support for the extension registry and, you know, I worry that some people saw that and they're like, oh, they support, you know, a full fledged API that does everything you could possibly do, which is not the case. But where we chose to focus first obviously was, yeah, 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 of the WASM into our heap so that we can use like 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. And then there's also these WebAssembly-based like language server adapters, 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? Like I think we already have, I don't remember, I think Max maybe gives you access to the work tree, but like, because it's in Rust, we designed the whole system using all these like persistent data structures where it's really cheap to take like a, you know, 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. But like, in general, you know, we'll be able to really, like in VS code, they're running it on all the extensions in like a totally separate process. So everything that, you know, that was one of the cool things about Adam, it was a nightmare because like inviting extensions into your main thread is just like, say goodbye. Now we actually have like the best of both worlds where we can run an extension in a WASM runtime in WASM time in a background thread, but provide it first class access to the underlying data structures, like in memory. I'm really excited about that.

  143. Adam Stacoviak

    Yeah. Yeah, I love it. I want the extensibility and it sounds like the best of both worlds, certainly.

  144. Jerod Santo

    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, while I don't know how feasible it would be to like, just run a VS code extension, there is something to be said for the fact that like, 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 the debate. What's appealing about JavaScript is just all that extension code out there for VS code. But then I don't know, there is also something appealing of just like, well, I want to write Rust. And all the APIs already are Rust. So anyway.

  145. Adam Stacoviak

    Yeah, that's a tough one, because it's hard not to gobble up 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. There's so much things. I mean, that was one of the things that I think helps 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. You're like, well, 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 had this one extension that my entire life revolves around. It's not available on Firefox or whatever it is, you know? And that will stop a lot of people. The lack 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.

  146. Jerod Santo

    Seems like we should bundle that one, because it seems pretty popular.

  147. Adam Stacoviak

    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.

  148. Jerod Santo

    So 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,

  149. Adam Stacoviak

    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. You are only as good as what you put into your body, and that begins with food. Eating better can be easier with Factor's delicious, ready-to-eat meals. Every fresh, never frozen meal is chef-crafted, dietitian 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? 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.

  150. Jerod Santo

    That's F-A-C-T-O-R-M-E-A-L-S dot com slash changelog50.

  151. Adam Stacoviak

    I would love to go back to the open source stuff, if you guys don't mind, 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 GPU UI, and that one is the UI framework that you all built custom and allows for those silky smooth rendering, all this kind of stuff, except for Theo's machine, but now it does. And that is Apache 2. So that's as permissive as you could get, right? Pretty much.

  152. Jerod Santo

    And maybe you could do like MIT is even more permissive, but it's fine. It's like really permissive.

  153. Adam Stacoviak

    It's pretty close.

  154. Jerod Santo

    Right.

  155. Adam Stacoviak

    Yeah. And then the code for ZED itself, which maybe you can help us define exactly what that means,

  156. Jerod Santo

    is... Just the binary that you run in your machine.

  157. Adam Stacoviak

    Okay. So that's GPL.

  158. Jerod Santo

    Right.

  159. Adam Stacoviak

    And then there's server-side components, which are also open source. Those are AGPL. Right. And then does that cover all the split outs or is there any other licenses that apply?

  160. Jerod Santo

    No, that's a... Yeah. I mean, that was just... I want people to be able to build whatever they want with GPUi, that just seems good for us in general, if there's just more GPUi 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 a Rails level experience, but I would love to get there if that ends up making sense, if there ends up being demand for that. Right now, I'd say it's in the repo, right? So anybody that would build anything with it is probably pulling it in as a directory into their own repo.

  161. Adam Stacoviak

    It's not a separate repo on GitHub, it's not like a standalone project.

  162. Jerod Santo

    Right. And the reason for that is just any change to GPUi can't break ZED anyway. The builds are already interconnected. It's just not... 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 don't want it to be forked and taken back closed. I don't know, 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 leaves us some optionality from a business perspective to have some advantages that we might need to monetize in terms of, yeah, if you want to build with that code, you need to make it open. Whereas we could potentially release a version of ZED that had 1% or less closed source components targeting commercial use cases or something. 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... I don't know. If closed source is ever a lever that we would need to pull on a small amount of code to advantage ourselves from a monetization perspective, 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 can take it and modify it to your heart's content and run it. I don't know. I think it's... 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. We're trying to be as open as we can be while being sane.

  163. Adam Stacoviak

    Yeah. Yeah. Well, I think what a lot of people would have done would be to have the server-side stuff private, to maybe MIT the editor or whatever, not copyleft, a permissive license on the editor, but then the server-side bits, 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, but you've AGPL'd the server-side stuff. Is that right?

  164. Jerod Santo

    That's right. Yeah. And the idea there is just like, Z is like, it's just hard to develop for Z. It's a collaborative editor. We need the server there. It just sort of introduced a lot of awkwardness to the development experience of an open source person. Plus, we have this like, come into our channels. 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 parts of the code people couldn't see and couldn't see. It's all out there. Yeah.

  165. Adam Stacoviak

    Well, in that way, I think you actually did more than what most people do. I'm sure there's somebody saying you didn't do enough, but I think you've done more.

  166. Jerod Santo

    Thanks.

  167. Adam Stacoviak

    More probably than I suspected. Yeah.

  168. Jerod Santo

    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. And that's the server we're running in production right now. So there it is. Yeah.

  169. Adam Stacoviak

    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 and also kind of a bootstrapped startup that's being quite successful doing GDPR compliant analytics and cookie lists and stuff. And it's cool stuff. We've been friends with them for a long time and longtime customers are theirs as well for our stuff, but they recently, they were AGPL everything. And they recently said that for some reason, 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 remaining competitive because of the fact that they are 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 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 investors probably were on board with it, but probably needed some explaining or some conversations there too. Was it a big decision how to do it?

  170. Jerod Santo

    Yeah. Yeah. I mean, I knew we wanted to do it. I didn't know exactly how. And I flirted with the idea of what if we keep the server closed and just different different levers we could try to pull. But yeah. Who did I? I mean, I had over the years, various conversations with different, 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.

  171. Adam Stacoviak

    Community response. I'm sure you saw a big uptake. 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. Yeah. Excitement, naysaying, a little bit of both maybe.

  172. Jerod Santo

    A little bit of both. Yeah. I saw some definite naysaying on YouTube, but it was like, yikes, this is rough. At this point, I've got a thick skin after Adam. Adam 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. It's like, God, I'm just trying to figure it out. There's some of that now, but there's some people that are just like, well, someone made a video saying we were a VS code killer, which I don't want to, I'm just doing my thing over here. I don't want to kill anybody or anything, but someone's like, you can't be a VS code killer if you're not on Linux. And then just like, okay, well, first of all, I never claimed to be that. And second of all...

  173. Adam Stacoviak

    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.

  174. Jerod Santo

    But anyway, overall, the response has been blowing my mind positive. And I didn't really know, I just had an instinct, like we have to open source this. You'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 like 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 of like weekly actives. It's like, yeah, weekly, highly engaged people. But yeah, then just like, I guess, anecdally, 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. 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. Like until you do it, you don't really know.

  175. Adam Stacoviak

    How do you handle contributions then? So when you say open, is it open as an also open source, of course, but open contributions? How do you, what do you want from being open source in terms of collaboration or contribution?

  176. Jerod Santo

    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 like giving people feedback and merging pull requests. We've merged like, 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. 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 we've actually done some pairing where like, I think Conrad's done this, other members of the team have done this where they've 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 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? 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. 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. That's something we've talked about, but Joseph, who does a lot of our metrics, is also stretched really thin. So I mean, it's not there yet, but I think we're engaging. Are we perfect? I would say no, but we've merged quite a bit of contribution from the community.

  177. Adam Stacoviak

    There's tooling for that. We've spoken with people who provide open source tooling, so you don't have to build all that stuff custom.

  178. Jerod Santo

    Beautiful.

  179. Adam Stacoviak

    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 specifically for this, like managers of open source projects inside orgs, being able to see how everything is going, see if there's something falling through the cracks, et cetera.

  180. Jerod Santo

    I do recall that. Yeah, that was episode 542 from the anthology there, Maintaining Maintainers. We talked to somebody, Peters from GitHub, Dr. Don Foster, Director of Open Source Community and Strategy at VMware, and Angie Byron about some cool stuff in the just open source world around Drupal and things she's done. But I think that...

  181. Adam Stacoviak

    Dr. Don Foster was the one.

  182. Jerod Santo

    Exactly. I think it was the CHAOSS, if I recall correctly, C-H-A-O-S-S, which stands for Community Health

  183. Adam Stacoviak

    Analytics in Open Source Software. There you go. It is a Linux Foundation project too, so definitely something worth diving deeper into.

  184. Jerod Santo

    I agree. Yeah. And I know that... I mean, luckily, yeah, I work with a bunch of really great people who are conscientious and 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. And look at that measurement and hold ourselves accountable to some sort of SLA, if that makes sense, on getting back to people or engaging.

  185. Adam Stacoviak

    Well, just a matter of how seriously do you take it? If you're gonna take it seriously, 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 same.

  186. Jerod Santo

    Yeah, I read this book, Measure What Matters, and I think the title says it all.

  187. Adam Stacoviak

    There you go. Those are the best books. You don't have to read them. You just read the title. Like GTD, getting things done. I'm done. I read it. I'm gonna get some stuff done now. Exactly. Oh, good stuff, good stuff. So the AI stuff is interesting. I feel like at a certain point, we're gonna get into small feature requests slash bug reports. And I'm wondering if we should keep that for plus plus only because it's gonna get into the weeds and you may end up being like, let's screen share. But before we get to that, I do think that the AI stuff is interesting in terms of there's GitHub co-pilot integration, but then there's also the Zed AI assistant. And I would just love your thought process on why there's both, maybe because co-pilots 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?

  188. Jerod Santo

    Yeah. I mean, the co-pilot integration was one of our top requests when we initially launched the beta. So we just added it because people wanted it. The Zed AI stuff is... I mean, there's not much to it right now other than I think we've done a good job executing on the UI of what we've done. But basically it's almost like an API client for chat GPT, for GPT-4, where you've got this kind of free form editor that has got these timestamp headings or whatever of user assistant system, and you can toggle between the different roles and just edit it. And you're just basically essentially editing the JSON that gets submitted to the language model. It's a very bare bones approach, but I actually like it. I can get a lot done in a 150K token conversation with the model. And one thing that 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 texts 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 GPT-4 API call that you're editing in place. So I don't know, it's very like, yeah, it's literally designed around me trying to write code with chat GPT on GPT-4 and then 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 zed 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 coming weeks.

  189. Adam Stacoviak

    Is that something that incurs a cost to you as a company? Like is that affecting your burn to provide that?

  190. Jerod Santo

    Oh, well right now it's just you put your API key in, so it's not affecting our burn at all.

  191. Adam Stacoviak

    So if I have an API key and I have a paid version, I can use it. I gotcha. Okay, cool.

  192. Jerod Santo

    But it will affect our burn a little bit, I think, to offer 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, 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 out on top of that offering. 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.

  193. Adam Stacoviak

    What does indexing in the cloud look like? What are you doing? What does that mean?

  194. Jerod Santo

    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 open AI embeddings or there's open source ones. How do we want to craft those embeddings to be optimal? We had like some local embedding that we were doing with a semantic search feature, but it just didn't really quite get off the ground. And what I actually realized is I think I want my like fuzzy search, like I want to use those embeddings to do like a quick nav, like where I just open it up and it's kind of like fuzzy finding on files or whatever. But instead you're just like 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. It's like a fuzzier query, a semantic query. But then we could show you previews of those spots as like a quick means of navigating it. And then the idea of like looping back, if you go down and pick the third, then using that like multiple negatives ranking loss to kind of learn on the fly, or yeah, even feed back 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 and we haven't done any of it yet, but that's what I'm excited to do.

  195. Adam Stacoviak

    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 this indexing in your roadmap part of it. 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.

  196. Jerod Santo

    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 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 click and open notes like you. We have a roadmap specifically geared toward collaboration. Maybe we should link to it from those parent notes. And this is kind of like, we're exploring like how we're even tracking work, et cetera. But what is cool is like, 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. 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.

  197. Adam Stacoviak

    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, you know, de facto API standard. 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, you know, on the backend you all are just doing the same exact OpenAI API calls, but you're, you know, 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.

  198. Jerod Santo

    That'd be super easy to use instead right now, you could set a configuration key, which is like OpenAI API URL, and you'll be hitting your local server.

  199. Adam Stacoviak

    Yeah. So that'd be a good option for a lot of people, especially people with fast, you know, laptops.

  200. Jerod Santo

    Yeah. And I haven't even played with it. And a shame to say, but I'm pretty intrigued by Ollama. And if I weren't like 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.

  201. Adam Stacoviak

    Well, you want it to be fast and flicker free. So I mean, that's hot. That's top priority, right?

  202. Jerod Santo

    Yeah. It's just embarrassing. Yeah. Honestly, for anyone listening to this, like, I'm sorry, and we're working hard to fix it.

  203. Adam Stacoviak

    Clearly. Clearly. Nathan Sobel issues an apology to all users for the flicker. Well, I mean, too much to work on. A lot, it's exciting times. We'd love to have you back on and get incremental updates on progress because you won me over for the time being. I am a fickle fan though, so I may, I do end up back on Sublime Text every once in a while, just because 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. 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, you know, 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...

  204. Jerod Santo

    Have you tried multi cursor in the search results?

  205. Adam Stacoviak

    No.

  206. Jerod Santo

    Cause that can be dope. Is that easy?

  207. Adam Stacoviak

    Tell me more.

  208. Jerod Santo

    Well, it's like you pull up a bunch of search results, oftentimes they'll have like similar structure. Yeah. And so, I mean, I experienced this even better in like a compile error type situation where, you know, I'll pull up 10 compilers. They're all pulled up at 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 just 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.

  209. Adam Stacoviak

    Well, I wouldn't have, unless you told me.

  210. Jerod Santo

    Right.

  211. Adam Stacoviak

    How can we make that more obvious? Cause it's not what you expect to be able to do right there.

  212. Jerod Santo

    Yeah.

  213. Adam Stacoviak

    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, like I said earlier, the nugget, the gold nuggets there, but it's like covered in, in, you know, dirt and grime and stuff. And you got to just polish that. Chocolate bar. Polish that sucker. Chocolate bar. But the rest of my thoughts are all feature requests and bug reports. So should we end the official show and go to plus plus and really drill down on him real quick? That's good. Yeah.

  214. Jerod Santo

    I know Adam has a bug report.

  215. Adam Stacoviak

    He'd like to, I mean, I got a gripe really, and it's not really airworthy.

  216. Jerod Santo

    I'm going to take notes in the this week channel, which is internal so you guys can, I guess actually let me, let me take the notes in the Z channel so you can actually see what I'm writing. Okay. 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. Hinge log. Feedback. Conversation. Feedback.

  217. Adam Stacoviak

    Feedback. There you go. This is like my old joke about our podcast being a Trojan horse for a feature request. That's right. We ask people onto our show and then we're nice to them.

  218. Jerod Santo

    And then by the end, we're like, Hey, by the way, this would be cool. Okay. I'll build that for you.

  219. Adam Stacoviak

    So everybody that's been listening for like an hour ish or hour 20 ish, something like that, right? What is it? Yeah. Around an hour and 30. Gosh. The show has ended and stick around for plus plus we're going to talk and session with Nathan inside of Zed and there you go. So that's the end of this show. Okay.

  220. Jerod Santo

    Bye friends. Bye friends. And here we go. Okay.

  221. Adam Stacoviak

    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.

  222. Jerod Santo

    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 embarrassing. And just politically. Not good. I will have to put my foot down on that one, but, but entertainment value is like peaking,

  223. Adam Stacoviak

    you know? I mean, Nathan's red in the face is so good.

  224. Jerod Santo

    I love to laugh and that was pretty funny. Adam is embarrassed. I guess we'll leave it to the maybe very end. We leave it in.

  225. Adam Stacoviak

    We left it in at the very end for our most loyal supporters. If you want to be one of them, learn more at changelog.com slash plus plus.

  226. Jerod Santo

    It's better.

  227. Adam Stacoviak

    Thanks again to our partners at fly.io and to our beat freaking residents, break master 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 to ship it pod.

  228. Jerod Santo

    I like it. Maybe you will like it too. You know?

  229. Adam Stacoviak

    And of course, thank you to our longtime sponsors at Sentry. Get yourself 100 bucks 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 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 changelog with your friends who might dig it. And let's talk again real soon.