--- // src/content/config.ts import { defineCollection, z } from 'astro:content'; const blog = defineCollection({ type: 'content', schema: z.object({ title: z.string(), publishDate: z.date(), }), }); export const collections = { blog }; --- title: Zero JS by Default publishDate: 2026-08-01 --- Astro ships static HTML unless a component explicitly opts into hydration via a client directive. --- title: Islands Explained publishDate: 2026-08-03 --- Each interactive island hydrates independently, on its own schedule. --- // src/layouts/BaseLayout.astro interface Props { title: string; } const { title } = Astro.props; ---