<?xml version="1.0" encoding="UTF-8"?>
<!--
  LaplandVibes app — XML sitemap.

  Only URLs that (a) are a real path in App.tsx and (b) call usePageMeta() so the
  served page identifies itself. The app is a client-rendered SPA behind
  `_redirects: /* → /index.html 200`, so every path returns the same shell; a URL
  listed here without its own title and canonical is not a page to Google but a
  duplicate of the front page. src/test/sitemap.test.ts enforces the rule; do not
  add a <loc> to get around it.

  Deliberately absent, each a decision rather than an oversight:
    /blog/:slug          The same `blog_posts` rows are served by lapland.blog,
                         which has its own sitemap. Listing our copies would ask
                         Google to index the same article on two domains.
    /preview             Renders the identical <Index> as "/". Canonicalised to
                         "/" instead — it must stay crawlable for that to work,
                         so it is not in robots.txt Disallow either.
    /?tab=… , ?d=…       Tab and destination views share this page's title and
                         description; 31 municipality views would be 31 near
                         duplicates. Making them indexable needs per-destination
                         meta first — a feature, not a sitemap line.
    /auth                Sign-in.
    /coming-soon         Placeholder.
    /laplanddate/*       LAPLANDDATE_ENABLED is false in v1; the pages exist but
                         the product does not ship yet.

  lastmod is a fact, not a refresh button: change a date only when that page's
  content actually changed.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- ─── App front page ─────────────────────────────────────────────────── -->
  <url>
    <loc>https://app.laplandvibes.com/</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- ─── Event landing pages (src/data/categories.ts → events[]) ─────────
       Genuinely the app's own content: a per-event aurora composition, a
       history section, and its own title + description + canonical. -->
  <url>
    <loc>https://app.laplandvibes.com/events/skabmagovat-indigenous-film-festival</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/arctic-lapland-rally</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/tankavaara-gold-panning</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/sami-national-day</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/marianpaivat-hetta-sami-festival</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/levi-ski-marathon</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/jutajaiset-folklore-festival</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/midnight-sun-film-festival</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/ijahis-idja-indigenous-music-festival</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/ruska-hiking-season-peak</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/levi-alpine-ski-world-cup</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/santa-claus-season-opening</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/kaamosjazz-polar-night-jazz</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/polar-night-begins</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/snowcastle-of-kemi-opens</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/new-year-at-santa-claus-village</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/aurora-peak-season</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/events/kings-cup-reindeer-race</loc>
    <lastmod>2026-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- ─── Legal and account pages ────────────────────────────────────────
       Low search value, but real pages people look up by name, and the two
       Google Play links directly (privacy policy + account deletion). -->
  <url>
    <loc>https://app.laplandvibes.com/privacy-policy</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/cookie-policy</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/terms</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/contact</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://app.laplandvibes.com/delete-account</loc>
    <lastmod>2026-08-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

</urlset>
