Upgrade Astro to v6, Starlight to v0.38, and Tailwind to v4 in blog apps#647
Upgrade Astro to v6, Starlight to v0.38, and Tailwind to v4 in blog apps#647
Conversation
…n template/blog and opensaas-sh/blog Co-authored-by: vincanger <70215737+vincanger@users.noreply.github.com>
Co-authored-by: vincanger <70215737+vincanger@users.noreply.github.com>
JiwaniZakir
left a comment
There was a problem hiding this comment.
The removal of customCss: ["./src/styles/tailwind.css"] from the starlightBlog config in astro.config.mjs is worth verifying carefully. With Tailwind v4's Vite plugin approach, CSS processing is handled differently than v3's @astrojs/tailwind integration — but that only works if there's a CSS entry point somewhere that contains @import "tailwindcss" (or equivalent). The diff doesn't show any changes to src/styles/tailwind.css or a new CSS import in src/layouts / global styles, so it's unclear whether Tailwind utility classes used in custom components (e.g., TitleWithBannerImage.astro, PageFrameWithCookieConsent.astro) will still be picked up by the content scanner. If that file was the sole Tailwind entry point and it's now unreferenced, custom utility classes could silently disappear from the build output.
Also, @astrojs/starlight-tailwind jumps from ^2.0.3 to ^5.0.0 — a three-major-version bump. It's worth confirming whether the starlight-tailwind integration still needs to be listed as a dependency at all under the Tailwind v4 + Vite plugin model, or if its role has been superseded, to avoid shipping a potentially unused or conflicting package.
Upgrades both
template/blogandopensaas-sh/blogfrom Astro 4 to Astro 6, with all required ecosystem migrations.Package changes
astro:^4.16.15→^6.0.5@astrojs/starlight:^0.29.2→^0.38.1starlight-blog:^0.15.0→^0.26.1@astrojs/starlight-tailwind:^2.0.3→^5.0.0sharp:^0.32.5→^0.34.5@astrojs/tailwind(incompatible with Astro 6)tailwindcss@^4.2.1+@tailwindcss/vite@^4.2.1Tailwind v4 migration
@astrojs/tailwindintegration with@tailwindcss/viteVite plugintailwind.config.mjsandpostcss.config.cjs; theme config now lives in CSS via@theme@astrojs/starlight-tailwindv5 is now a CSS import rather than a JS pluginAstro 6 content layer migration
src/content/config.ts→src/content.config.tsdocsLoader()/i18nLoader()from@astrojs/starlight/loadersStarlight breaking changes
socialconfig: object → array format (changed in Starlight v0.33)starlight-blogvirtual module:virtual:starlight-blog-config→virtual:starlight-blog/configThemeSelectoverride updated to wrapstarlight-blog/components/ThemeSelect.astroNull safety fixes
HeadWithOGImage,TitleWithBannerImage, andBlogPostSchemanow guard againstundefinedid/entryprops, which occur on virtual pages (404, author pages, tag pages) that have no content entry.Contributor Checklist
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
telemetry.astro.build/home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/open-saas/open-saas/template/blog/node_modules/.bin/astro check(dns block)/home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/open-saas/open-saas/template/blog/node_modules/.bin/astro build -main/dist/ripgrep/bin/linux-x64/rg(dns block)/home/REDACTED/work/_temp/ghcca-node/node/bin/node node /home/REDACTED/work/open-saas/open-saas/template/blog/node_modules/.bin/astro build(dns block)If you need me to access, download, or install something from one of these locations, you can either:
Original prompt
template/app#646✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.