<?xml version="1.0" encoding="UTF-8"?>
<!--
  SHIFT.mu — public sitemap.

  This app is a client-side single-page app (see src/App.tsx's ViewName
  state machine) with no server-side router: almost every "page" (features,
  pricing, about, FAQ, legal) is a React view reached only by in-app
  navigation, not a distinct URL a crawler could fetch on its own — so
  there is nothing to list for those. Only the handful of views that are
  also wired to a real, bookmarkable URL (see wantsLoginView/wantsTermsView/
  wantsPrivacyView/wantsRefundView in App.tsx, all reading location.hash)
  are included below, minus login itself (an authentication entry point,
  deliberately excluded along with every authenticated portal, billing, and
  admin view — none of which have a distinct public URL to begin with).

  Note: search engines do not index a URL fragment (the #part) as a
  separate page from its base URL — Google in particular canonicalizes
  https://www.shift.mu/#terms down to https://www.shift.mu/ for indexing
  purposes. The three fragment URLs below are included because they are
  genuinely public and independently linkable, not because Google is
  expected to rank them as separate search results; only the homepage
  itself is indexed as a distinct page under the current architecture.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://www.shift.mu/</loc>
    <lastmod>2026-09-09</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://www.shift.mu/#terms</loc>
    <lastmod>2026-09-09</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://www.shift.mu/#privacy</loc>
    <lastmod>2026-09-09</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://www.shift.mu/#refund</loc>
    <lastmod>2026-09-09</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
</urlset>
