[blog] New 0.21 release post (#1899)

* v0.21 release post

* chore: update formatting

Co-authored-by: Nate Moore <nate@skypack.dev>
This commit is contained in:
Fred K. Schott 2021-11-19 12:16:17 -08:00 committed by GitHub
parent f7b23d5cf1
commit 8fc48fb2a0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 52 additions and 30 deletions

View file

@ -26,7 +26,7 @@ const { title, author, publishDate, heroImage, heroImageAlt } = Astro.props;
</header>
<main class="content">
<slot />
<BackArrow url={'/blog/'} title={'Back to all blogposts'}/>
<BackArrow url={'/blog/'} title={'Back to all blog posts'}/>
</main>
</article>
<GoogleAnalytics />

View file

@ -34,8 +34,6 @@ header {
text-align: left;
align-items: flex-start;
justify-content: center;
padding-bottom: 2rem;
}
.title,

View file

@ -0,0 +1,41 @@
---
title: 'Astro 0.21'
author: 'fred'
description: 'Astro v0.21.0 is finally here!'
publishDate: 'November 19, 2021'
permalink: 'https://astro.build/blog/astro-021-release'
lang: 'en'
heroImage: '/assets/blog/astro-021-preview/hero.png'
heroImageAlt: 'Spacecraft overlooking Earth'
---
Astro v0.21.0 is finally here! This is by far our biggest release ever, including a ground-up rewrite of some major Astro internals. After months of development and public testing, we are so excited to get this new version of Astro into your hands, featuring:
- A new Astro compiler, **written in [Go](https://golang.org/)**
- A new build engine, **powered by [Vite](http://vitejs.dev/)**
- [Components in Markdown](https://docs.astro.build/migration/0.21.0#components-in-markdown) (like MDX, but without the JSX)
- Improved npm package support (also powered by Vite!)
- Improved errors, stack traces, HMR, and overall dev experience
- A grab-bag of other new features for you to explore
[Try Astro v0.21.0 today](https://astro.new) right in your browser. Or, run `npm install astro@latest` in any new or existing project directory to get started. [Read our v0.21 Early Preview](/blog/astro-021-preview) post for more details on what is included in this release.
Thank you to every contributor and early preview tester who made this release possible. Thank you to [Nate Moore](https://twitter.com/n_moore), [Matthew Philips](https://twitter.com/matthewcp), and [Drew Powers](https://twitter.com/drwpow) for your tireless work over the last few months getting v0.21 out the door.
**With these new long-term investments, Astro isn't going anywhere.** Next stop, v1.0!
## Migrate to v0.21
Very little has changed in the v0.21.0 API to make your migration as easy as possible. Check out the new [v0.21 migration guide](https://docs.astro.build/migration/0.21.0) for a full breakdown of meaningful changes.
Leave feedback, report bugs, and get involved with Astro's development in our [Discord server](https://astro.build/chat). You can also [follow along](https://twitter.com/astrodotbuild) with our community on Twitter.
## Why Rewrite? Why Now?
Most people don't know this, but the first version of the Astro compiler was originally forked from [Svelte](https://svelte.dev/docs#Compile_time). Forking an existing compiler let us get up and running quickly, but cost us some unneccesary complexity that only grew over time.
Big rewrites are rarely easy, and this one was no exception.
Ultimately, it came down to timing. The timing was right for us to make a big investment in Astro now and deprecate our original forked compiler in favor of something designed with Astro in mind. This new compiler (written in Go) and new Vite-powered build engine will form a stable foundation that will last this project for years to come.
*Thank you to Rich Harris and the entire Svelte team for building a great open source compiler that served Astro well in its early days.*

View file

@ -7,6 +7,8 @@ let title = 'Astro Blog';
let description = 'Everything you need to know about Astro, direct from mission control.';
let permalink = 'https://astro.build/blog';
let lang = 'en';
const posts = Astro.fetchContent('../../data/blog-posts/*.md').sort((a, b) => (new Date(b.publishDate) - new Date(a.publishDate)));
---
<html lang={ lang ?? 'en' }>
@ -67,33 +69,14 @@ let lang = 'en';
<p>{description}</p>
</section>
<section aria-label="Blog post list">
<BlogPostPreview title="Astro 0.21 Preview: Vite + WASM = ⚡️" publishDate="October 6, 2021" href="/blog/astro-021-preview">
<span>Get a sneak preview of what's next for Astro, including our new Vite build engine and WASM-powered Go compiler.</span>
</BlogPostPreview>
<BlogPostPreview title="Astro Demo Day September Edition" publishDate="September 20, 2021" href="/blog/demo-day-2021-09">
<span>Astro September Demo Day was today and we had 4 amazing talks, including one with big announcements on the future direction of Astro.</span>
</BlogPostPreview>
<BlogPostPreview title="Introducing the Astro REPL" publishDate="September 17, 2021" href="/blog/astro-repl">
<span>The power of Astro, right in your browser.</span>
</BlogPostPreview>
<BlogPostPreview title="Netlify Becomes Astro's Official Hosting Partner" publishDate="September 9, 2021" href="/blog/netlify-astro-hosting-sponsorship">
<span>We are happy to announce that Netlify has become Astros first corporate sponsor and exclusive hosting partner, donating $2,500 each month towards the ongoing open source maintenance and development of Astro.</span>
</BlogPostPreview>
<BlogPostPreview title="Astro 0.19" publishDate="August 18, 2021" href="/blog/astro-019">
<span>Introducing: Next.js-inspired file routing • Astro.resolve() • client:only components • translations.</span>
</BlogPostPreview>
<BlogPostPreview title="Astro 0.18" publishDate="July 27, 2021" href="/blog/astro-018">
<span>Introducing: Responsive partial hydration • Solid.js support • Lit SSR support • Named slots • Global style support.</span>
</BlogPostPreview>
<BlogPostPreview title="Introducing Astro: Ship Less JavaScript" publishDate="June 8, 2021" href="/blog/introducing-astro">
<span>We're excited to announce Astro as a new way to build static websites and deliver lightning-fast performance without sacrificing a modern developer experience.</span>
</BlogPostPreview>
{posts.map(p => {
const href = `/blog/${p.file.pathname.split('/').pop().split('.').shift()}`;
return (
<BlogPostPreview title={p.title} publishDate={p.publishDate} href={href}>
<span>{p.description}</span>
</BlogPostPreview>
);
})}
</section>
</main>
</div>