Astro 7 Is Here Astro 7 has been released, featuring a Rust-rewritten compiler, faster builds (15-61% improvement), Vite 8 with Rolldown bundler, advanced routing, and AI-assisted development support. The update stabilizes route caching and adds experimental CDN cache providers for Netlify, Vercel, and Cloudflare. Astro 7 is here This release is all about speed. The .astro compiler has been rewritten in Rust. Markdown and MDX processing now runs through a new Rust-powered pipeline. The rendering engine has been replaced with a faster queue-based approach. Together with Vite 8 and its new Rolldown bundler, Astro 7 builds are 15-61% faster in our benchmarks. The fastest build is the one that doesn’t happen at all, so Astro 7 also stabilizes route caching and adds experimental CDN cache providers for Netlify, Vercel, and Cloudflare. Astro 7 also introduces Advanced Routing, giving you a src/fetch.ts entrypoint with full control over Astro’s request pipeline. For AI-assisted development, Astro can now detect coding agents, run the dev server in the background, and output structured JSON logs when agents need machine-readable feedback. Full release highlights include: Upgrade now To upgrade an existing project to Astro 7, use the automated @astrojs/upgrade CLI tool: For new projects, simply use: See the upgrade guide https://docs.astro.build/en/guides/upgrade-to/v7/ for detailed migration steps. Vite 8 Astro 7 upgrades to Vite 8 https://vite.dev/blog/announcing-vite8 , the most significant Vite release in years. The headline change: Vite now ships Rolldown https://rolldown.rs/ , a Rust-based bundler that replaces both esbuild and Rollup with a single, unified bundler. Rolldown is 10-30x faster than Rollup https://github.com/rolldown/benchmarks in benchmarks while supporting the same Rollup and Vite plugin APIs. For Astro users, this means faster builds with no configuration changes for most projects. Vite 8 includes a compatibility layer that auto-converts existing esbuild and rollupOptions configuration to their Rolldown equivalents. If your project uses custom Vite plugins, most of them should continue to work because Rolldown supports the same plugin API as Rollup. Performance Astro 7 is the fastest version of Astro to date. As usage has grown, more teams have been pushing the boundaries of what type of site can be built with Astro. After we released Astro 6 and its big internal refactor, we set our sights on helping Astro scale to larger and more complex sites. This is how Astro builds work: - Bundle the site’s pages, content, and client components into JavaScript. - Run the bundled code like a little server, create requests for each prerendered page, and save the resulting HTML. Astro 7 improves both steps, but focuses on the first: bundling the site. The biggest gains come from moving some of the slowest parts of the build into native code written in Rust. The generation step is also faster, thanks to a new rendering strategy that more effectively queues sections to be rendered. In our testing, overall build times improved by 15–61%, with some sites building more than twice as fast . Sites where .astro compilation and Markdown processing make up a larger share of the build see the biggest gains, since those are exactly the parts that moved to Rust. These benchmarks were run on a MacBook Pro Apple M4 Pro with 48 GB of memory: | Website | Before | After | |---|---|---| | https://astro.build https://astro.build ~308 pages https://biomejs.dev https://biomejs.dev ~6,488 pages https://developers.cloudflare.com https://developers.cloudflare.com 8,431 pages https://tauri.app https://tauri.app 7,117 pages https://aspire.dev https://aspire.dev 13,275 pages Rust Compiler We built a new compiler for the .astro component format, now written in Rust. The compiler is a full rewrite of our previous Go-based compiler that is mostly backwards compatible, except for: No more HTML correction. The Go compiler silently rewrote your markup to be “valid HTML” by reordering elements, auto-closing tags, and moving nodes around in ways that often surprised users and caused hard-to-debug issues. The new compiler treats your markup as-is. JSX-style strictness. Unclosed tags like