<?xml version="1.0" encoding="UTF-8"?>
<!--
  https://excede.dev/sitemap.xml

  Two entries, and that is the whole public surface: the landing page at /
  and the About page at /about. Everything else the site serves is either
  behind a sign-in (/home, /workspace/:id, /settings, /profile) or explicitly
  <meta name="robots" content="noindex"> (/login, /settings, /profile, and the
  two legal documents), and a sitemap that lists a noindex URL earns a
  "Submitted URL marked noindex" error in Search Console rather than a page in
  the index.

  /about is a real document with its own canonical, which is why it is here.
  #about and #features are still only fragments of /, not URLs of their own,
  so they do not belong here — Google resolves them to the same document.

  lastmod is the date index.html itself last changed, not the date this file
  was generated. Stamping "today" on every deploy trains Google to ignore the
  field, which is the one thing it is actually for.

  When public workspace pages come back (/@user/slug — see the 23 Aug revert),
  this file should be generated at build time from the published-workspace
  list rather than hand-maintained.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://excede.dev/</loc>
    <lastmod>2026-09-10</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://excede.dev/about</loc>
    <lastmod>2026-09-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
</urlset>
