What Changed In Astro 7
Astro 7 is mostly about speed and making previously experimental server features stable.
flowchart TD
astro7[Astro 7] --> build["Faster builds"]
astro7 --> routing["Request control"]
astro7 --> cache["Stable route caching"]
astro7 --> agents["Agent-friendly dev"]
build --> vite["Vite 8 + Rolldown"]
build --> compiler["Rust .astro compiler"]
build --> satteri["Sätteri Markdown"]
build --> queued["Queued rendering"]
routing --> fetchFile["src/fetch.ts"]
cache --> astroCache["Astro.cache"]
agents --> bg["astro dev --background"]
The Big Pieces
| Area | Astro 6 | Astro 7 |
|---|---|---|
| Bundler | Vite 7-era toolchain | Vite 8 with Rolldown/Oxc under the hood |
.astro compiler | Go compiler by default | Rust compiler only |
| Markdown/MDX | unified pipeline by default | Sätteri by default, unified opt-in |
| Route caching | experimental | stable Astro API |
| Advanced routing | experimental | stable and enabled by default |
src/fetch.ts | ordinary project file | reserved advanced routing entrypoint |
| AI dev server | normal foreground dev server | agent detection can start background mode |
What Most Projects Need To Do
Most projects start here:
npx @astrojs/upgrade
npm run build
Then inspect the real failure modes:
- build errors from stricter
.astroparsing - missing spaces between inline elements after the
compressHTML: 'jsx'default - Markdown plugin output changes
- stale experimental config flags
- accidental
src/fetch.tsconflicts - removed
@astrojs/dborastro:transitionsinternals
Gotcha: Vite 8 is a breaking dependency upgrade, but Astro app authors usually only feel it if they use custom Vite plugins, Vite internals, or advanced build config.
What Not To Do
Do not treat every new feature as something to adopt immediately.
| Feature | Default stance |
|---|---|
| Advanced routing | Ignore until you need custom request ordering |
| CDN cache providers | Treat as experimental host-specific integration |
| Sätteri plugin migration | Only port plugins you actually need |
compressHTML: true rollback | Use only if visual whitespace fixes are too risky |