We’re building Zed because we want to write code in a tool that is:
</p>
<h3 class="mt-10 mb-4 leading-tight text-white font-display font-extralight">Mission-critical tools should be hyper-responsive.</h3>
<p class="mt-5 leading-relaxed">
When you move the cursor or type a character, you should see pixels on the next refresh of your display–every time. Even sub-perceptual pauses add up over the course of a day to create unnecessary stress. Joyful coding starts with an editor that stays out of your way.
When you move the cursor or type a character, you should see pixels on the next refresh of your display–every time. Even sub-perceptual pauses add up over the course of a day to create unnecessary stress. Joyful coding starts with an editor that stays out of your way.
</p>
<h3 class="mt-10 mb-4 leading-tight text-white font-display font-extralight">Keystrokes are the fundamental unit of change.</h3>
<p class="mt-5 leading-relaxed">
When you move the cursor or type a character, you should see pixels on the next refresh of your display–every time. Even sub-perceptual pauses add up over the course of a day to create unnecessary stress. Joyful coding starts with an editor that stays out of your way.
<p class="mt-5 leading-relaxed">Early access to Zed will open up mid-2022 for small teams and individuals in our <a class="underline hover:no-underline" href="/community">community</a>.</p>
<p class="mt-5 leading-relaxed">With performance and reliability being our priority, writing Zed in <span class="font-semibold">Rust</span> was an obvious choice.</p>
<p class="mt-5 leading-relaxed">In the past to write software with this performant you would need to use C++. Rust, for the first time, enables us to write software at that level as a very small team.</p>
<p class="mt-5 leading-relaxed">While Rust enables us to build performant, reliable software, it's constraints make rending custom UIs a challenge. To attack this, we created <code>gpui</code>, a rust library that rethinks the entire rendering stack that goes all the way to the graphics hardware.</p>
<p class="mt-5 leading-relaxed">We started <code>gpui</code> as an extension of that desire to write apps that are fast and fluid, yet easy to develop itteratively. <code>gpui</code> rethinks the way we draw UI in response to the constraints of Rust. By controlling the entire stack we remove layers of extra code that would reduce performance.</p>
<p class="mt-5 leading-relaxed">Without building <code>gpui</code> the most viable way to build a cross-platform app would have been Electron. It's well documented performance limitations and single threaded nature made it a deal-breaker for us. Taking full advantage of local hardware was important to use to ensure that we can squeeze out the best performance.</p>
<p class="mt-5 leading-relaxed">We’re building <code>gpui</code> and Zed in parallel, and may consider opening <code>gpui</code> up for usage outside of it in the future.</p>
<p class="mt-5 leading-relaxed">Like <code>gpui</code> enables performant UI, <code>crdt</code> is the key to making code collaborative as it is being written.</p>
<p class="mt-5 leading-relaxed">A <code>crdt</code> allows us to version control the codebase on the keystroke level—Every keystroke can be revisited, commented on or undone. Entire sessions can be replayed and scrubbed in a session, from the point of view of any player.</p>
<p class="mt-5 leading-relaxed">This level of granularity in our version control allows us to explore ideas like time traveling the codebase.</p>
<p class="mt-5 leading-relaxed">Often the best way to understand code is to experience it's creation chronologically. Imagine if you could jump to the point a piece of code was created and watch it be written in real time.</p>
<p class="mt-5 leading-relaxed">Excited about what we are doing? <a class="underline hover:no-underline" href="/community">Sign up for updates</a> to follow along in our development process.</p>