import { defineConfig } from 'astro/config'; import mdx from '@astrojs/mdx'; import sitemap from '@astrojs/sitemap'; // Canonical origin. Drives canonical URLs, OG tags, and the sitemap. const SITE = process.env.PUBLIC_SITE_URL ?? 'https://adr.smlcompany.ca'; export default defineConfig({ site: SITE, // Static output is the point of this rebuild — see docs/04-seo-spec.md. // Do not switch to a server adapter without an AGENTS.md Change Log entry. output: 'static', // Directory-style URLs with a trailing slash, matched by the CloudFront // trailing-slash function. See docs/06-deployment.md. trailingSlash: 'always', build: { format: 'directory', inlineStylesheets: 'auto' }, integrations: [ mdx(), sitemap({ filter: (page) => !page.includes('/legal/'), changefreq: 'monthly', lastmod: new Date(), }), ], image: { // Explicit dimensions everywhere; never base64-inline an image. service: { entrypoint: 'astro/assets/services/sharp' }, }, // Opt-in only. `prefetchAll: true` with the viewport strategy injects Astro's // prefetch script and an IntersectionObserver into EVERY page and speculatively // fetches every link that scrolls into view — against CLAUDE.md's "default to // zero JS" and AGENTS.md §7's "most pages ship zero JS", with no Change Log // entry justifying it. Add data-astro-prefetch to individual links that earn it. prefetch: { prefetchAll: false, defaultStrategy: 'hover' }, });