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

CheckCommand Or Action
Invalid .astro HTMLrun astro build and fix compiler errors
Inline whitespacevisually inspect pages with inline text/components
Markdown pluginscompare pages that use remark/rehype/recma plugins
src/fetch.tssearch for existing file and decide whether it is advanced routing
Astro DBremove @astrojs/db and replace it
Transition internalssearch imports from astro:transitions and astro:transitions/client
Vite configreview 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.