AstroEco is Releasing…
Display your GitHub releases using astro-loader-github-releases

Patch Changes
-
#14020
9518975
Thanks @jp-knj and @asieradzk! - Prevent double-prefixed redirect paths when using fallback and redirectToDefaultLocale togetherFixes an issue where i18n fallback routes would generate double-prefixed paths (e.g.,
/es/es/test/item1/
) whenfallback
andredirectToDefaultLocale
configurations were used together. The fix adds proper checks to prevent double prefixing in route generation. -
#14199
3e4cb8e
Thanks @ascorbic! - Fixes a bug that prevented HMR from working with inline styles

Patch Changes
-
#14066
7abde79
Thanks @alexanderniebuhr! - Refactors the internal solution which powers Astro Sessions when running local development with ˋastro devˋ.The adapter now utilizes Cloudflare's local support for Cloudflare KV. This internal change is a drop-in replacement and does not require any change to your projectct code.
However, you now have the ability to connect to the remote Cloudflare KV Namespace if desired and use production data during local development.
-
Updated dependencies []:
- @astrojs/underscore-redirects@1.0.0

Minor Changes
-
#14190
438adab
Thanks @Adammatthiesen! - Adds support for enum support for text columns in Astro DB tables.import { column, defineTable } from 'astro:db'; // Table definition const UserTable = defineTable({ columns: { id: column.number({ primaryKey: true }), name: column.text(), rank: column.text({ enum: ['user', 'mod', 'admin'] }), }, }); // Resulting type definition type UserTableInferInsert = { id: string; name: string; rank: 'user' | 'mod' | 'admin'; };

Minor Changes
-
#14188
e3422aa
Thanks @ascorbic! - Adds support for specifying a host to load prerendered error pagesBy default, if a user defines a custom error page that is prerendered, Astro will load it from the same host as the one that the request is made to. This change allows users to specify a different host for loading prerendered error pages. This can be useful in scenarios such as where the server is running behind a reverse proxy or when prerendered pages are hosted on a different domain.
To use this feature, set the
experimentalErrorPageHost
adapter option in your Astro configuration to the desired host URL. For example, if your server is running on localhost and served via a proxy, you can ensure the prerendered error pages are fetched via the localhost URL:import { defineConfig } from 'astro/config'; import node from '@astrojs/node'; export default defineConfig({ adapter: node({ // If your server is running on localhost and served via a proxy, set the host like this to ensure prerendered error pages are fetched via the localhost URL experimentalErrorPageHost: 'http://localhost:4321', }), });
For more information on enabling and using this experimental feature, see the
@astrojs/node
adapter docs.

Patch Changes
- #14175
1e1cef0
Thanks @ematipico! - Fixes a bug where the adapter would cause a runtime error when callingastro build
in CI environments.

Patch Changes
- #14186
9fe883e
Thanks @Adammatthiesen! - Fixes types for optional and primary key columns in Astro DB tables.

Patch Changes
- Updated dependencies [
0567fb7
]:- @astrojs/internal-helpers@0.7.1

Patch Changes
-
0567fb7
Thanks @ascorbic! - Adds//
to list of internal path prefixes that do not have automated trailing slash handling -
#13894
b36e72f
Thanks @florian-lefebvre! - Removes Astro Studio commands from the CLI help -
Updated dependencies [
0567fb7
]:- @astrojs/internal-helpers@0.7.1
- @astrojs/markdown-remark@6.3.5

Minor Changes
-
#13894
b36e72f
Thanks @florian-lefebvre! - Removes support for Astro StudioAstro Studio has been discontinued since September 2024. If you still haven't migrated yet to Turso, check our guide.

Patch Changes
- Updated dependencies [
0567fb7
]:- @astrojs/internal-helpers@0.7.1
- @astrojs/markdown-remark@6.3.5

Patch Changes
- Updated dependencies []:
- @astrojs/markdown-remark@6.3.5


Patch Changes
- Updated dependencies [
0567fb7
]:- @astrojs/internal-helpers@0.7.1

Patch Changes
- Updated dependencies [
0567fb7
]:- @astrojs/internal-helpers@0.7.1
- @astrojs/underscore-redirects@1.0.0

Patch Changes
- Updated dependencies [
0567fb7
]:- @astrojs/internal-helpers@0.7.1


Patch Changes
-
#13894
b36e72f
Thanks @florian-lefebvre! - Removes special handling of theASTRO_STUDIO_APP_TOKEN
environment variable -
Updated dependencies [
0567fb7
]:- @astrojs/internal-helpers@0.7.1
- @astrojs/underscore-redirects@1.0.0

Patch Changes
- Updated dependencies [
f4e8889
]:- @astrojs/internal-helpers@0.7.0

Patch Changes
- Updated dependencies [
f4e8889
]:- @astrojs/internal-helpers@0.7.0
- @astrojs/underscore-redirects@1.0.0

Patch Changes
- Updated dependencies [
f4e8889
]:- @astrojs/internal-helpers@0.7.0
- @astrojs/underscore-redirects@1.0.0

Patch Changes
- Updated dependencies [
f4e8889
]:- @astrojs/internal-helpers@0.7.0
- @astrojs/markdown-remark@6.3.4

Patch Changes
- Updated dependencies [
f4e8889
]:- @astrojs/internal-helpers@0.7.0


Patch Changes
- Updated dependencies []:
- @astrojs/markdown-remark@6.3.4

Patch Changes
- Updated dependencies [
f4e8889
]:- @astrojs/internal-helpers@0.7.0

Patch Changes
-
#14169
f4e8889
Thanks @ascorbic! - Skips trailing slash handling for paths that start with/.
. -
#14170
34e6b3a
Thanks @ematipico! - Fixes an issue where static redirects couldn't correctly generate a redirect when the destination is a prerendered route, and theoutput
is set to"server"
. -
#14169
f4e8889
Thanks @ascorbic! - Fixes a bug that prevented images from being displayed in dev when using the Netlify adapter withtrailingSlash
set toalways
-
Updated dependencies [
f4e8889
]:- @astrojs/internal-helpers@0.7.0
- @astrojs/markdown-remark@6.3.4

Patch Changes
- #14158
89e9364
Thanks @bjohansebas! - Prevents deprecation warnings in Node 24

Patch Changes
-
#14153
29e9283
Thanks @jp-knj! - Fixes a regression introduced by a recent optimisation of how SVG images are emitted during the build. -
#14156
592f08d
Thanks @TheOtterlord! - Fix the client router not submitting forms if the active URL contained a hash -
#14160
d2e25c6
Thanks @ascorbic! - Fixes a bug that meant some remote image URLs could cause invalid filenames to be used for processed images -
#14167
62bd071
Thanks @ascorbic! - Fixes a bug that prevented destroyed sessions from being deleted from storage unless the session had been loaded

Patch Changes
- #14158
89e9364
Thanks @bjohansebas! - Prevents deprecation warnings in Node 24

Patch Changes
-
#14059
19f53eb
Thanks @benosmac! - Fixes a bug in i18n implementation, where Astro didn't emit the correct pages whenfallback
is enabled, and a locale uses a catch-all route, e.g.src/pages/es/[...catchAll].astro
-
#14155
31822c3
Thanks @ascorbic! - Fixes a bug that caused an error "serverEntrypointModule[_start] is not a function" in some adapters


Patch Changes
- #14148
e4d74ba
Thanks @ColoredCarrot! - fix(node): emit set-cookie header from middlewares for not-found routes (#14136)
Patch Changes
-
#3341
10f6fe2
Thanks @HiDeoo! - Prevents potential build issues with the Astro Cloudflare adapter due to the dependency on Node.js builtins. -
#3327
bf58c60
Thanks @delucis! - Fixes a routing bug for docs pages with a slug authored with non-normalized composition. This could occur for filenames containing diacritics in some circumstances, causing 404s.

Patch Changes
- #14127
2309ada
Thanks @florian-lefebvre! - Upgrades zod

Patch Changes
- #14127
2309ada
Thanks @florian-lefebvre! - Upgrades zod


Minor Changes
-
#14115
270e009
Thanks @ascorbic! - Removes "Open in x" badges from the README of the official Astro templates when a new project is created -
#14115
270e009
Thanks @ascorbic! - Adds support for marking sections in template READMEs to be removed when thecreate astro
command is used to create a new projectTheme authors can now use magic comments in template READMEs to mark sections that should not be included when a user runs
create-astro
with the--template
flag to create a new project.This allows templates to have content that is visible when viewed in the source repo but not when the template is copied for use in a new project. This is useful for content that is appropriate for a theme's own repository, but will not be useful to someone using the theme, such as
an "Open this repository in StackBlitz" badge where the URL is hardcoded .Use the magic comments
<!-- ASTRO:REMOVE:START -->
and<!-- ASTRO:REMOVE:END -->
to indicate content to be excluded from your README during thecreate astro
process.<!-- ASTRO:REMOVE:START --> [](https://stackblitz.com/github/withastro/astro/tree/latest/examples/basics) <!-- ASTRO:REMOVE:END -->
Note that these comments only remove content when new projects are created using
create astro
. When your theme template is forked, your README will be copied in its entirety.

🐞 Bug Fixes
- Update deps to fix #34 (incl. Astro 5.11.1 → 5.12.1) & minor style tweaks - by @lin-stephanie in #34 (1cc27)
View changes on GitHub



Patch Changes
- Exit early in 'repoList' mode when GitHub token is missing (
e2fdc33
)

Patch Changes
- Updated dependencies [
6bd5f75
]:- @astrojs/markdown-remark@6.3.3

Patch Changes
-
#13941
6bd5f75
Thanks @aditsachde! - Adds support for TOML files to Astro's built-inglob()
andfile()
content loaders.In Astro 5.2, Astro added support for using TOML frontmatter in Markdown files instead of YAML. However, if you wanted to use TOML files as local content collection entries themselves, you needed to write your own loader.
Astro 5.12 now directly supports loading data from TOML files in content collections in both the
glob()
and thefile()
loaders.If you had added your own TOML content parser for the
file()
loader, you can now remove it as this functionality is now included:// src/content.config.ts import { defineCollection } from "astro:content"; import { file } from "astro/loaders"; - import { parse as parseToml } from "toml"; const dogs = defineCollection({ - loader: file("src/data/dogs.toml", { parser: (text) => parseToml(text) }), + loader: file("src/data/dogs.toml") schema: /* ... */ })
Note that TOML does not support top-level arrays. Instead, the
file()
loader considers each top-level table to be an independent entry. The table header is populated in theid
field of the entry object.See Astro's content collections guide for more information on using the built-in content loaders.

Patch Changes
- Updated dependencies [
6bd5f75
]:- @astrojs/markdown-remark@6.3.3

🚀 Features
- page: Add
/photos
page to create your personal gallery - by @lin-stephanie in #31 (ebcff)
🐞 Bug Fixes
- photos:
- Dynamically adjust image auto-load threshold (
distanceToBottom
) based on viewport height (fix #33) - by @lin-stephanie (76920) - Stabilize masonry placeholders; delay lightbox image; drop redundant img attrs - by @lin-stephanie (c924f)
- Restore smooth scroll; hide scrollbar in image viewer without layout shift; unify scrollbar style - by @lin-stephanie (aca66)
- Dynamically adjust image auto-load threshold (
- Make favicon adapt to light/dark mode - by @lin-stephanie (ee0ec)
- Avoid showing hr without Giscus & remove Giscus lazy loading - by @lin-stephanie (37c72)
💅 Refactors
- Add
ImageCarousel
for basic auto-play (removedswiper
) - by @lin-stephanie (2077a)
🏡 Chore
- Update deps, Astro 5.7.13 → 5.11.1 - by @lin-stephanie (cb790)
- Update docs for image responsiveness and favicon - by @lin-stephanie (085bc)
- Update docs for new
/photos
page - by @lin-stephanie (a94ba) - Lil typo - by @Draco1js in #32 (417fd)
- Optimize styles and formatting - by @lin-stephanie (7624e)
- Update image src - by @lin-stephanie (efa22)
View changes on GitHub
Minor Changes
-
#2261
778b743
Thanks @shubham-padia! - Adds support for using any of Starlight’s built-in icons in asides. -
#3272
e7fe267
Thanks @delucis! - Adds a newgenerateId
option to Starlight’sdocsLoader()
This enables overriding the default sluggifier used to convert content filenames to URLs.
-
#3276
3917b20
Thanks @delucis! - Excludes banner content from search resultsPreviously, content set in
banner
in page frontmatter was indexed by Starlight’s default search provider Pagefind. This could cause unexpected search results, especially for sites setting a common banner content on multiple pages. Starlight’s defaultBanner
component is now excluded from search indexing.This change does not impact
Banner
overrides using custom components. -
#3266
1161af0
Thanks @HiDeoo! - Adds support for custom HTML attributes on autogenerated sidebar links using theautogenerate.attrs
option. -
#3274
80ccff7
Thanks @HiDeoo! - Fixes an issue where some Starlight remark and rehype plugins were transforming Markdown and MDX content in non-Starlight pages.⚠️ BREAKING CHANGE:Previously, some of Starlight’s remark and rehype plugins, most notably the plugin transforming Starlight's custom Markdown syntax for rendering asides, were applied to all Markdown and MDX content. This included content from individual Markdown pages and content from content collections other than the
docs
collection used by Starlight.This change restricts the application of Starlight’s remark and rehype plugins to only Markdown and MDX content loaded using Starlight's
docsLoader()
. If you were relying on this behavior, please let us know about your use case in the dedicated#starlight
channel in the Astro Discord or by opening an issue.
Patch Changes
-
#3266
1161af0
Thanks @HiDeoo! - Ensures invalid sidebar group configurations using theattrs
option are properly reported as a type error.Previously, invalid sidebar group configurations using the
attrs
option were not reported as a type error but only surfaced at runtime. This change is only a type-level change and does not affect the runtime behavior of Starlight which does not support theattrs
option for sidebar groups. -
#3274
80ccff7
Thanks @HiDeoo! - Prevents Starlight remark and rehype plugins from transforming Markdown and MDX content when using the AstrorenderMarkdown()
content loader API.
Minor Changes
- #2261
778b743
Thanks @shubham-padia! - Adds support for theicon
attribute in theaside
tag, allowing the use of any of Starlight’s built-in icons.
Patch Changes
- #3298
7bd02e3
Thanks @HiDeoo! - Fixes a potential issue withabsolutePathToLang()
plugin API not handling paths with spaces correctly.

Patch Changes
- #14063
de5a253
Thanks @RobbieTheWagner! - Allow settingdomains
toundefined
inimagesConfig
so thatremotePatterns
can be better utilized for images from a variety of domains.

Patch Changes
- #13972
db8f8be
Thanks @ematipico! - Fixes the internal implementation of the new featureexperimentalStaticHeaders
, where dynamic routes
were mapped to use always the same header.

Minor Changes
-
#14012
a125a14
Thanks @florian-lefebvre! - Adds a new experimental configuration optionexperimentalDisableStreaming
to allow you to opt out of Astro's default HTML streaming for pages rendered on demand.HTML streaming helps with performance and generally provides a better visitor experience. In most cases, disabling streaming is not recommended.
However, when you need to disable HTML streaming (e.g. your host only supports non-streamed HTML caching at the CDN level), you can now opt out of the default behavior:
import { defineConfig } from 'astro/config'; import node from '@astrojs/node'; export default defineConfig({ adapter: node({ mode: 'standalone', + experimentalDisableStreaming: true, }), });
-
#13972
db8f8be
Thanks @ematipico! - Adds support for the experimental static headers Astro feature.When the feature is enabled via the option
experimentalStaticHeaders
, and experimental Content Security Policy is enabled, the adapter will generateResponse
headers for static pages, which allows support for CSP directives that are not supported inside a<meta>
tag (e.g.frame-ancestors
).import { defineConfig } from 'astro/config'; import node from '@astrojs/node'; export default defineConfig({ adapter: node({ mode: 'standalone', experimentalStaticHeaders: true, }), experimental: { cps: true, }, });
Last fetched: | Scheduled refresh: Every Saturday
See Customizing GitHub Activity Pages to configure your own
Inspired by releases.antfu.me