Add robots.txt to block aggressive AI scrapers (GPTBot, Bytespider,
SemrushBot, etc.) and set crawl delays for legitimate search engines.
Add Cache-Control headers for HTML pages (1h TTL with
stale-while-revalidate) so repeat visits are served from Netlify's
CDN edge cache instead of origin.
Defer below-fold video components from client:load to client:visible
so their JS chunks only load when scrolled into view — bots and users
who don't scroll never trigger those requests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Install @astrojs/netlify adapter with imageCDN enabled so all raster
images are optimized at the edge (AVIF/WebP format negotiation, resizing)
instead of at build time. All existing <Image> and getImage() usage
works with zero code changes.
- Add netlify() adapter with imageCDN: true
- Add image.domains for YouTube thumbnails
- Remove dead vite.build.assets config
- Remove format:"webp" from getImage() calls in Audiodotcom to let
Netlify auto-negotiate the best format
- Remove unused @fontsource/twinkle-star dependency
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Delete dead code: NewsletterForm component, .secret-form page, and
.form-success page. These are no longer used anywhere in the site.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Switch icon font from TTF to WOFF2 for smaller file size and better
browser compression support.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Set GitHub Actions deploy workflow to manual-only since Netlify is now
the primary host. Add netlify.toml with build config and disable
redundant post-processing (Astro handles bundling and compression).
Add .netlify to .gitignore for local state files.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Move cookie-policy.md to /legal/cookie-policy
- Move desktop-privacy-notice.md to /legal/privacy-notice
- Add 301 redirects for old URLs
- Trim VPAT summary to essential info only