Upgrade Checklist
Use this when moving an Astro 6 project to Astro 7.
1. Upgrade Astro And Official Integrations
npx @astrojs/upgrade
For pnpm:
pnpm dlx @astrojs/upgrade
Then run your normal checks:
npm run build
npm run check
Use your project’s actual scripts if they differ.
2. Confirm Node
Astro 7 requires Node.js >=22.12.0.
node --version
If CI or hosting still uses Node 20, fix that before debugging framework errors.
3. Remove Old Experimental Flags
Delete Astro 6 experimental config for features that are now stable/default:
export default defineConfig({
cache: {
provider: memoryCache(),
},
routeRules: {
'/blog/[...path]': { maxAge: 300, swr: 60 },
},
});
4. Check Known Breakpoints
| Check | Command Or Action |
|---|---|
Invalid .astro HTML | run astro build and fix compiler errors |
| Inline whitespace | visually inspect pages with inline text/components |
| Markdown plugins | compare pages that use remark/rehype/recma plugins |
src/fetch.ts | search for existing file and decide whether it is advanced routing |
| Astro DB | remove @astrojs/db and replace it |
| Transition internals | search imports from astro:transitions and astro:transitions/client |
| Vite config | review custom Vite plugins and Rollup/esbuild options |
5. Decide On Markdown Processor
If the build passes and Markdown output looks right, keep Sätteri.
If plugin behavior breaks, temporarily switch to unified:
npm install @astrojs/markdown-remark
import { defineConfig } from 'astro/config';
import { unified } from '@astrojs/markdown-remark';
export default defineConfig({
markdown: {
processor: unified(),
},
});
6. Do Not Adopt New APIs Prematurely
You do not need route caching or advanced routing to upgrade. Add them only when they solve a current problem.