Marketing sites win when they ship minimal JavaScript by default and hydrate only where interaction demands it. Astro makes that contract explicit—here is how we keep Core Web Vitals honest while still using React islands.
Islands and boundaries
Co-locate interactive components and lazy-load them at meaningful breakpoints. Avoid hydrating layout chrome that could remain static.
Prefer CSS for motion where possible; reserve JS-driven animation for inputs that truly need it.
Assets, fonts, and metadata
Self-host variable fonts with preload for critical weights; subset aggressively for Latin marketing pages.
Generate canonical URLs, Open Graph images, and sitemaps from one source of truth so previews stay trustworthy.
CI budgets and profiling
Track bundle size deltas on PRs and run Lighthouse in CI against representative routes—not only the homepage.
Prefetch only high-confidence next navigations; aggressive prefetch can waste bandwidth on cellular visitors.
