<?xml version="1.0" encoding="UTF-8"?>
<!-- Sitemap for groundtracks. The mission designer is a single-page app: every
     app route is served the same index.html, so the only indexable app URL is
     the landing page (/s/<id> share links are intentionally excluded — see
     robots.txt). The blog adds real, distinct content URLs under /blog; they're
     listed here too so one sitemap covers the whole site. (blog.groundtracks.com
     is an optional vanity redirect to /blog — see HOSTING.md — so the canonical
     blog URLs live on the main domain.) Served at /sitemap.xml. -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://groundtracks.com/</loc>
    <lastmod>2026-06-08</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- Blog -->
  <url>
    <loc>https://groundtracks.com/blog</loc>
    <lastmod>2026-06-08</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://groundtracks.com/blog/validating-groundtracks-against-orekit-tudat</loc>
    <lastmod>2026-06-09</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://groundtracks.com/blog/thirty-day-pass-match-six-orbit-classes</loc>
    <lastmod>2026-06-09</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <!-- Draft articles (src/blog/posts/ with `draft: true`) are intentionally
       absent; add each one here when its draft flag is flipped. -->
</urlset>
