<?xml version="1.0" encoding="UTF-8"?>
<!--
  perf-02: static sitemap for the public/marketing surface of the SPA
  (apps/web/src/router/index.ts — read-only reference, not edited here).

  Canonical domain: slate.tito33.com — the first/primary entry in
  production's PUBLIC_APP_ORIGINS allowlist (apps/api/wrangler.toml
  [env.production].routes lists slate.tito33.com before
  eskayscience.tito33.com; apps/api/src/lib/origins.ts's
  resolveCanonicalOrigin() falls back to "the allowlist's first entry" for
  exactly this kind of off-request-path link). Both domains serve
  byte-identical content from the same Worker, so this single sitemap
  (deployed once, unchanged per-hostname) is valid for either — indexing
  under one canonical host avoids duplicate-content SEO dilution across the
  two live-mapped domains.

  robots.txt (apps/api/src/routes/ops.ts) already points each domain's own
  robots.txt at "<that domain>/sitemap.xml" (same file, since dist is
  identical on both hosts) — this file is served as a plain static asset
  from apps/web/dist/sitemap.xml (this file is copied there verbatim by
  Vite's public/ passthrough), NOT proxied through the Hono Worker (see
  apps/api/wrangler.toml's [assets].run_worker_first — "/sitemap.xml" was
  removed from that list as part of this fix so static-asset serving
  handles it directly instead of 404ing on the Worker's catch-all).

  Only routes marked `public: true` or `guest: true` (i.e. reachable without
  an existing session) in the router are listed; authenticated app shells
  (/app/teacher/*, /admin/*, /app/learn/*, /my) and one-shot
  auth-flow utility screens (verify-email, forgot-password, reset-password,
  invite/accept — transactional, not something search should index) are
  intentionally excluded.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://slate.tito33.com/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://slate.tito33.com/plans</loc>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://slate.tito33.com/library</loc>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://slate.tito33.com/app/login</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
</urlset>
