<?xml version="1.0" encoding="UTF-8"?>
<!-- www, not the apex: branchmark.app 308-redirects to www.branchmark.app, and
     a canonical or a sitemap entry pointing at a redirect reintroduces exactly
     the ambiguity they exist to remove. If Vercel is ever flipped to serve the
     apex as primary, all four of these move together: here, robots.txt, and
     canonical plus og:url in index.html.

     The app itself is one address: Comparison, Branches, Author and the rest are
     React state, not routes. If views ever get real URLs, they belong here. -->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.branchmark.app/</loc>
    <lastmod>2026-08-30</lastmod>
    <changefreq>monthly</changefreq>
  </url>
  <!-- The six view URLs (/app/branches, /app/author, ...) are deliberately
       absent. They exist so a link can point at a screen, and they work — but
       every one serves byte-identical HTML that only differs once React runs.
       Submitting six addresses with the same pre-render body would offer a
       crawler duplicate content, not six pages. Only the two URLs whose served
       HTML actually differs are listed: the static page at the root, and the
       app shell. -->
  <url>
    <loc>https://www.branchmark.app/app</loc>
    <lastmod>2026-08-30</lastmod>
    <changefreq>weekly</changefreq>
  </url>
</urlset>
