Using web technology (Electron) for desktop apps limits performance and user experience, necessitating a move to native code with Rust and a custom UI framework.
After creating Atom with Electron, Nathan Sobo realized the browser abstraction overhead limited performance and aesthetics, leading to the decision to build Zed in Rust with a custom UI framework (GPUI) for direct hardware control. ✦ AI generated
Nathan Sobo · Syntax · 2026-08-12 · original ↗
starts at this moment · 4:32
“Was Rust the choice initially or did you land on Rust somehow?”
the trade-off that we made, the devil's bargain that we made was that um the overhead of the browser and sort of the abstraction that it presents, which is this kind of lowest common denominator common standard that needs to run in a backward compatible way on all these different browsers. Well, all of that is reducing down, but still it's like it really put a a limit on the performance of and the user experience that we could yield. And so, after Atom sort of ran its course and Microsoft acquired GitHub and uh I was sitting there using Visual Studio Code, I just wasn't happy. Like I just couldn't see a future where I continued writing all my software in this web browser masquerading as a desktop app. Um just what the performance wasn't there, the aesthetics weren't there for me, this collaborative dimension even though they did introduce live share, like it never really worked as well as I wanted it to. Um and so that led me to one inexorable conclusion that we had to get closer to the metal.
verbatim transcript · starts at 4:32
4:32we would sort of achieve our goal of this flexible hackable system that ran on all the three platforms. And we did. Um but unfortunately, uh the trade-off that we made, the devil's bargain that we made was that um the overhead of the browser and sort of the abstraction that it presents, which is this kind of lowest common denominator common standard that needs to run in a backward compatible way on all
5:01these different browsers. Well, all of that is reducing down, but still it's like it really put a a limit on the performance of and the user experience that we could yield. And so, after Atom sort of ran its course and Microsoft acquired GitHub and uh I was sitting there using Visual Studio Code, I just wasn't happy. Like I just couldn't see a future where I continued writing all my software
5:31in this web browser masquerading as a desktop app. >> [laughter] >> Um just what the performance wasn't there, the aesthetics weren't there for me, this collaborative dimension even though they did introduce live share, like they it never really worked as well as I wanted it to. Um and so that led me to one inexorable conclusion that we had to get closer to the metal. And luckily, around that time, Rust, you
6:01know, yeah, it was There were We were working on it for quite a while before we started Zed. And, you know, as we worked on it, Rust hit 1.0, async await got introduced, like Rust really matured as a viable option. And you know, after being covered in blood from learning the language, we were finally traverse the learning curve and and figured out how to build a UI
6:25framework, which really didn't exist at the time. >> And if you want to see all of the errors in your application, you'll want to check out Sentry at sentry.io/syntax. You can sign up today and get 2 months for free. Sentry is just a really incredible tool for not only tracking your performance, making sure your application has no bugs, but even just seeing what goes wrong when something
6:48goes wrong because things go wrong all the time when we're coding, and you don't want a production application out there that, well, you have no visibility into in case something is blowing up, and you might not even know it. So, head on over to sentry.io/syntax. Again, we've been using this tool for a long time, and it totally rules. All right. >> I didn't even know how to begin building