
TL;DR
Astro 7.0 rewrites core components in Rust, upgrades to Vite 8 with Rolldown, and delivers significant performance gains for content-heavy sites.
| Source | Link |
|---|---|
| Astro 7.0 Release Blog | astro.build/blog/astro-7 |
| Vite 8 Announcement | vite.dev/blog/announcing-vite8 |
| Satteri Documentation | satteri.bruits.org |
| Rolldown GitHub | github.com/rolldown/rolldown |
| Hacker News Discussion | news.ycombinator.com/item?id=48821653 |
Last updated: July 13, 2026
Astro 7.0 shipped on July 7, 2026, and the release is all about speed. The framework rewrote its .astro compiler in Rust, upgraded to Vite 8 with the new Rolldown bundler, and introduced a faster rendering engine - resulting in build times that are 15-61% faster across their benchmarks.
The performance story has three parts:
Rust-based .astro Compiler. The parser and transformer that handles .astro files is now written in Rust. This isn't just a port - the new compiler enforces stricter HTML parsing rules, which is both a feature and a breaking change.
Vite 8 and Rolldown. The biggest upstream change is Vite 8, which ships Rolldown - a Rust-based bundler that replaces both esbuild (for dev) and Rollup (for production) with a single unified tool. Rolldown is 10-30x faster than Rollup in benchmarks while maintaining API compatibility with existing Rollup plugins.
Satteri Markdown Pipeline. Markdown and MDX processing now runs through Satteri, a new Rust-powered pipeline that replaces the remark/rehype JavaScript stack. This is particularly impactful for documentation sites and blogs with hundreds or thousands of markdown files.
Queued Rendering Engine. The internal rendering system has been replaced with a queue-based approach that's approximately 2.4x faster according to their benchmarks.
The Rust compiler is stricter about HTML. Tags must be properly closed, and attributes must be properly terminated. The old JavaScript compiler would silently fix these issues; the new one throws errors.
<!-- This now fails -->
<div>
<p>Unclosed paragraph
</div>
<!-- This works -->
<div>
<p>Properly closed paragraph</p>
</div>
Whitespace handling also changed. Newlines between inline elements no longer produce visible spaces, following JSX conventions:
<!-- In Astro 6: produces "Hello World" with a space -->
<!-- In Astro 7: produces "HelloWorld" -->
<span>Hello</span>
<span>World</span>
From the archive
Jul 7, 2026 • 5 min read
Jul 7, 2026 • 7 min read
Jul 7, 2026 • 7 min read
Jul 7, 2026 • 7 min read
The Hacker News discussion has 35 comments with a mix of reactions.
On the Rust rewrite. One commenter joked about "awaiting the rewrite to assembly," but the response from Princesseuh (who built the Rust compiler and Satteri) was informative: "Crossing data between Rust and JS is inherently kinda slow (relatively), so there's a constant push and pull between flexibility and performance that's not always easy to reason about."
On the strict HTML enforcement. This is the most debated change. One developer noted it "actively prevents upgrading sites which need to deal with remote content that is not written in strict HTML." The Astro team clarified this only affects .astro files - remote HTML loaded via set:html isn't affected.
On version velocity. Multiple commenters noted Astro 7 arrived shortly after Astro 6, leading to upgrade fatigue. The team explained this was timing - Vite 8/Rolldown shipped right after Astro 6, and Vite major versions typically require an Astro major version due to deep integration.
On actual performance gains. Not everyone saw improvements. Cassidy Williams (Astro's Head of Developer Experience) shared: "I upgraded my website recently and it's exciting! That being said, I admit my builds didn't get faster (they actually on average slowed down a bit)." The Astro team responded that performance gains are most visible on larger sites with thousands of pages, especially those using MDX.
On AI developer support. Astro 7 added features specifically for AI coding agents: a background dev server mode (astro dev --background) with automatic agent detection, structured JSON logging, and a health endpoint at /_astro/status. One commenter called this "a good model" for how frameworks should support agent workflows.
An underappreciated change: Astro's dependency count dropped from 247 packages in v6 to 190 in v7. The unified ecosystem (remark, rehype, and their plugins) contributed a significant portion of the old count. Satteri consolidates much of this while maintaining the same AST format for plugin compatibility.
The upgrade path is straightforward for most projects:
npx @astrojs/upgrade
The automated upgrade handles most migrations. The main manual work is fixing any strict HTML violations in .astro files - the compiler errors will point you to the specific issues.
If you are choosing between frameworks for a content-heavy site, see our comparison of Astro vs. Next.js 16 for how the two stack up beyond raw build speed.
Astro has positioned itself as the default choice for content-heavy sites - marketing pages, documentation, blogs - where you want server-rendered HTML with minimal client JavaScript. The 7.0 release reinforces that position.
The Rust investments are paying off. The JavaScript ecosystem has been trending toward Rust tooling for years (swc, esbuild, Rolldown, oxc, biome), and Astro is now part of that movement rather than just benefiting from it.
The AI developer support is also notable. Frameworks don't typically ship first-party features for agent workflows, but Astro is betting that "Claude Code + Astro" will be a common stack for quickly building sites.
Astro 7 delivers 15-61% faster builds depending on your project. The biggest gains come from the Rust-based .astro compiler, Vite 8 with Rolldown bundler, and the new Satteri markdown pipeline. Content-heavy sites with many markdown files see the largest improvements.
Rolldown is a Rust-based bundler that replaces both esbuild (for development) and Rollup (for production builds) with a single unified tool. It is 10-30x faster than Rollup while maintaining API compatibility with existing Rollup plugins.
Yes. The Rust compiler is stricter about HTML - tags must be properly closed and attributes must be properly terminated. Whitespace handling also changed: newlines between inline elements no longer produce visible spaces. Most migrations can be handled by running npx @astrojs/upgrade.
Satteri is a Rust-powered markdown and MDX pipeline that replaces the JavaScript-based remark/rehype stack. It maintains the same AST format for plugin compatibility while significantly improving processing speed for documentation sites and blogs.
Yes. Astro's dependency count dropped from 247 packages in v6 to 190 in v7. The consolidation of remark, rehype, and related plugins into Satteri accounts for much of the reduction.
Astro 7 includes a background dev server mode (astro dev --background) with automatic agent detection, structured JSON logging, and a health endpoint at /_astro/status. These features support AI coding agent workflows.
Read next
Microsoft ships TypeScript 7.0 with a complete Go rewrite of the compiler, delivering 8-12x build speedups and transforming IDE responsiveness across massive codebases.
6 min readAfter years of quiet development, Evan Czaplicki outlines the path to Elm 1.0 - starting with 0.19.2's compiler performance gains and previewing equatable and hashable types from the Acadia project.
5 min readRichard Feldman's team rewrote the Roc compiler from Rust to Zig in 487 days. The memory safety numbers challenge assumptions, and the 35ms incremental rebuilds are real. Here's the full breakdown.
7 min readTechnical content at the intersection of AI and development. Building with AI agents, Claude Code, and modern dev tools - then showing you exactly how it works.
Headless browser built in Rust for controlled AI-agent browser tasks. Lighter and faster than Chromium-based alternative...
View ToolHigh-performance code editor built in Rust with native AI integration. Sub-millisecond input latency. Built-in assistant...
View ToolAnthropic's smallest Claude 4.5 model. Near-frontier coding performance at one-third the cost of Sonnet 4 and up to 4-5x...
View ToolOpenAI's open-source terminal coding agent built in Rust. Runs locally, reads your repo, edits files, and executes comma...
View Tool
GitHub open-sourced casefold, a Rust crate that folds the case of every byte Blackbird indexes at memory bandwidth. The...

Tom Lockwood investigated the Bun Rust rewrite six weeks after it merged to main - 2,475 open PRs, no release tag, and c...

Julia Evans shares hard-won production lessons from running SQLite at scale - from the ANALYZE command that cut query ti...

Richard Feldman's team rewrote the Roc compiler from Rust to Zig in 487 days. The memory safety numbers challenge assump...

A developer reverse-engineered a travel itinerary app, discovered it was just reformatting JSON, and replaced the entire...

Andrew Kelley's blunt response to Anthropic's AI-assisted Bun rewrite sparked debate about AI marketing, language choice...

New tutorials, open-source projects, and deep dives on coding agents - delivered weekly.