release notes
release notes
Published 12/12/2025
Contains breaking changes#14956 0ff51df Thanks @matthewp! - Astro v6.0 upgrades to Zod v4 for schema validation - (v6 upgrade guidance)
#14759 d7889f7 Thanks @florian-lefebvre! - Updates how schema types are inferred for content loaders with schemas (Loader API) - (v6 upgrade guidance)
#14306 141c4a2 Thanks @ematipico! - Removes support for routes with percent-encoded percent signs (e.g. %25) - (v6 upgrade guidance)
#14759 d7889f7 Thanks @florian-lefebvre! - Removes the option to define dynamic schemas in content loaders as functions and adds a new equivalent createSchema() property (Loader API) - (v6 upgrade guidance)
#14306 141c4a2 Thanks @ematipico! - Removes RouteData.generate from the Integration API - (v6 upgrade guidance)
#14989 73e8232 Thanks @florian-lefebvre! - Deprecates exposed astro:transitions internals - (v6 upgrade guidance)
#14758 010f773 Thanks @florian-lefebvre! - Removes the setManifestData method from App and NodeApp (Adapter API) - (v6 upgrade guidance)
#14826 170f64e Thanks @florian-lefebvre! - Removes the experimental.failOnPrerenderConflict flag and replaces it with a new configuration option prerenderConflictBehavior - (v6 upgrade guidance)
#14923 95a1969 Thanks @florian-lefebvre! - Deprecates astro:schema and z from astro:content in favor of astro/zod - (v6 upgrade guidance)
#14844 8d43b1d Thanks @trueberryless! - Removes exposed astro:actions internals - (v6 upgrade guidance)
#14306 141c4a2 Thanks @ematipico! - Changes the shape of SSRManifest properties and adds several new required properties in the Adapter API - (v6 upgrade guidance)
#14306 141c4a2 Thanks @ematipico! - Changes integration hooks and HMR access patterns in the Integration API - (v6 upgrade guidance)
#14306 141c4a2 Thanks @ematipico! - Removes the unused astro:ssr-manifest virtual module - (v6 upgrade guidance)
#14306 141c4a2 Thanks @ematipico! - Adds new optional properties to setAdapter() for adapter entrypoint handling in the Adapter API
Changes:
devEntrypoint?: string | URL - specifies custom dev server entrypointentryType?: 'self' | 'legacy-dynamic' - determines if the adapter provides its own entrypoint ('self') or if Astro constructs one ('legacy-dynamic', default)Migration: Adapter authors can optionally add these properties to support custom dev entrypoints. If not specified, adapters will use the legacy behavior.
#14826 170f64e Thanks @florian-lefebvre! - Adds an option prerenderConflictBehavior to configure the behavior of conflicting prerendered routes
By default, Astro warns you during the build about any conflicts between multiple dynamic routes that can result in the same output path. For example /blog/[slug] and /blog/[...all] both could try to prerender the /blog/post-1 path. In such cases, Astro renders only the highest priority route for the conflicting path. This allows your site to build successfully, although you may discover that some pages are rendered by unexpected routes.
With the new prerenderConflictBehavior configuration option, you can now configure this further:
prerenderConflictBehavior: 'error' fails the buildprerenderConflictBehavior: 'warn' (default) logs a warning and the highest-priority route winsprerenderConflictBehavior: 'ignore' silently picks the highest-priority route when conflicts occurimport { defineConfig } from 'astro/config';
export default defineConfig({
+ prerenderConflictBehavior: 'error',
});
#14946 95c40f7 Thanks @ematipico! - Removes the experimental.csp flag and replaces it with a new configuration option security.csp - (v6 upgrade guidance)
6849e38 Thanks @Princesseuh! - Fixes images outside the project directory not working when using astro:assets in development moderelease notes
Published 12/12/2025
Contains breaking changes#14956 0ff51df Thanks @matthewp! - Astro v6.0 upgrades to Zod v4 for schema validation - (v6 upgrade guidance)
#14759 d7889f7 Thanks @florian-lefebvre! - Updates how schema types are inferred for content loaders with schemas (Loader API) - (v6 upgrade guidance)
#14306 141c4a2 Thanks @ematipico! - Removes support for routes with percent-encoded percent signs (e.g. %25) - (v6 upgrade guidance)
#14759 d7889f7 Thanks @florian-lefebvre! - Removes the option to define dynamic schemas in content loaders as functions and adds a new equivalent createSchema() property (Loader API) - (v6 upgrade guidance)
#14306 141c4a2 Thanks @ematipico! - Removes RouteData.generate from the Integration API - (v6 upgrade guidance)
#14989 73e8232 Thanks @florian-lefebvre! - Deprecates exposed astro:transitions internals - (v6 upgrade guidance)
#14758 010f773 Thanks @florian-lefebvre! - Removes the setManifestData method from App and NodeApp (Adapter API) - (v6 upgrade guidance)
#14826 170f64e Thanks @florian-lefebvre! - Removes the experimental.failOnPrerenderConflict flag and replaces it with a new configuration option prerenderConflictBehavior - (v6 upgrade guidance)
#14923 95a1969 Thanks @florian-lefebvre! - Deprecates astro:schema and z from astro:content in favor of astro/zod - (v6 upgrade guidance)
#14844 8d43b1d Thanks @trueberryless! - Removes exposed astro:actions internals - (v6 upgrade guidance)
#14306 141c4a2 Thanks @ematipico! - Changes the shape of SSRManifest properties and adds several new required properties in the Adapter API - (v6 upgrade guidance)
#14306 141c4a2 Thanks @ematipico! - Changes integration hooks and HMR access patterns in the Integration API - (v6 upgrade guidance)
#14306 141c4a2 Thanks @ematipico! - Removes the unused astro:ssr-manifest virtual module - (v6 upgrade guidance)
#14306 141c4a2 Thanks @ematipico! - Adds new optional properties to setAdapter() for adapter entrypoint handling in the Adapter API
Changes:
devEntrypoint?: string | URL - specifies custom dev server entrypointentryType?: 'self' | 'legacy-dynamic' - determines if the adapter provides its own entrypoint ('self') or if Astro constructs one ('legacy-dynamic', default)Migration: Adapter authors can optionally add these properties to support custom dev entrypoints. If not specified, adapters will use the legacy behavior.
#14826 170f64e Thanks @florian-lefebvre! - Adds an option prerenderConflictBehavior to configure the behavior of conflicting prerendered routes
By default, Astro warns you during the build about any conflicts between multiple dynamic routes that can result in the same output path. For example /blog/[slug] and /blog/[...all] both could try to prerender the /blog/post-1 path. In such cases, Astro renders only the highest priority route for the conflicting path. This allows your site to build successfully, although you may discover that some pages are rendered by unexpected routes.
With the new prerenderConflictBehavior configuration option, you can now configure this further:
prerenderConflictBehavior: 'error' fails the buildprerenderConflictBehavior: 'warn' (default) logs a warning and the highest-priority route winsprerenderConflictBehavior: 'ignore' silently picks the highest-priority route when conflicts occurimport { defineConfig } from 'astro/config';
export default defineConfig({
+ prerenderConflictBehavior: 'error',
});
#14946 95c40f7 Thanks @ematipico! - Removes the experimental.csp flag and replaces it with a new configuration option security.csp - (v6 upgrade guidance)
6849e38 Thanks @Princesseuh! - Fixes images outside the project directory not working when using astro:assets in development modeThe web framework for content-driven websites. ⭐️ Star to support our work!