<?xml version="1.0" encoding="UTF-8"?>
<!--
  eastagiletracker.com — story #531408.

  The apex origin is a client-rendered SPA, so there is no server to generate
  this per request: CloudFront's SPA rewrite used to answer /sitemap.xml with
  the index.html shell (HTTP 200, text/html), a soft 404 that Search Console
  rejects. Vite copies public/ into dist/ verbatim, so this file is the
  deployed artifact.

  This list must stay equal to src/prerender/routes.json (story #531407) — the
  marketing routes the build prerenders real HTML for and the CloudFront
  function serves from those files. Those are exactly the apex URLs a crawler
  can read without running JavaScript, so they are the indexable set. Adding a
  page to that table and not to this file leaves it undiscoverable; the reverse
  advertises a URL that answers with the empty SPA shell.

  Auth pages (/signin, /signup, …), app routes (/projects/…, /account/…) and
  parameterised routes (/s/:code) stay out — see the NOT_INDEXED table in
  scripts/check-sitemap.mjs, which also fails when a new route in src/App.tsx
  is left unclassified.

  The docs site keeps its own sitemap (Starlight generates
  https://docs.eastagiletracker.com/sitemap-index.xml); robots.txt names both.

  No <lastmod>: a hand-maintained date rots on the first edit that forgets it,
  and Google discounts timestamps it cannot corroborate. No <changefreq> or
  <priority> — the major crawlers ignore both.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://eastagiletracker.com/</loc>
  </url>
  <url>
    <loc>https://eastagiletracker.com/terms</loc>
  </url>
  <url>
    <loc>https://eastagiletracker.com/privacy</loc>
  </url>
  <url>
    <loc>https://eastagiletracker.com/cookies</loc>
  </url>
  <url>
    <loc>https://eastagiletracker.com/acceptable-use</loc>
  </url>
</urlset>
