zed/server/templates/home.hbs
2021-09-23 19:31:36 -04:00

92 lines
6.8 KiB
Handlebars
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{{#> layout }}
<div class="max-w-screen-lg p-10 mx-auto font-extralight text-main lg:p-20">
<article class="max-w-xl">
<h1 class="mb-10 text-4xl leading-tight text-white font-display font-extralight">Introducing Zed&mdash;A lightning-fast, collaborative code editor written in Rust.</h1>
<p class="mt-5 leading-relaxed">
We think theres a better way to write code, and it starts with the following assumptions:
</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 displayevery time. Even sub-perceptual pauses add up over the course of a day to create unnecessary stress.
</p>
<p class="mt-5 leading-relaxed">
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">Real-time collaboration produces better software.</h3>
<p class="mt-5 leading-relaxed">
Pull requests have their place, but sometimes you just want to code together. Its more fun than code review, builds trust between colleagues, and its one of the best ways to distribute knowledge through a team. But it has to be easy.
</p>
<p class="mt-5 leading-relaxed">
If you want someones perspective on a piece of code, it should be as easy as sending a message to pull them into your working copy and start coding.
</p>
<h3 class="mt-10 mb-4 leading-tight text-white font-display font-extralight">Conversations about software should happen close to the code.</h3>
<p class="mt-5 leading-relaxed">
If you want to talk about code on GitHub you have to commit and push it first, and pasting code into a chat application sucks.
</p>
<p class="mt-5 leading-relaxed">
By treating keystrokes as the fundamental unit of change and integrating chat into the editor, we can make it easy to have a conversation about any line of code in any working copywhether it was committed last year or just typed ten seconds ago.
</p>
<h3 class="mt-10 mb-4 leading-tight text-white font-display font-extralight">Our goal is to make you as efficient as possible.</h3>
<p class="mt-5 leading-relaxed">
If youre living in a tool for hours every day, you want it to disappear. Every pixel must carry its weight, and the software youre creating should always be the focus. So we constantly ask ourselves how we can maximize signal and minimize noise.
</p>
<p class="mt-5 leading-relaxed">
Do we need an icon? Do we need a gradient? We all want to achieve mastery. Our goal is to find the most efficient way to accomplish each coding task and make it accessible. We will never dumb things down.
</p>
<p class="mt-10 mb-10 leading-7">&mdash;&mdash;&mdash;</p>
<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-10 leading-relaxed">
<span class="inline-block pr-5"><a href="/story" class="inline-block underline hover:no-underline">Read our story</a>.</span>
<span class="inline-block pr-5 opacity-60"><a href="/community" class="inline-block no-underline hover:underline">Join the waitlist</a>.</span>
</p>
<h2 class="mt-16 mb-5 leading-tight text-white font-display font-extralight">Under the hood</h2>
<h3 class="mt-5 mb-4 leading-tight text-white font-display font-extralight">Rust</h3>
<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>
<h3 class="mt-10 mb-4 leading-tight text-white font-display font-extralight">GPUI</h3>
<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">Were 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>
<h3 class="mt-10 mb-4 leading-tight text-white font-display font-extralight">CRDT</h3>
<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&mdash;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-10 mb-10 leading-7">&mdash;&mdash;&mdash;</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>
</article>
</div>
{{/layout}}