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