<?xml version="1.0" encoding="UTF-8"?>
<!--
  LaplandVibes app — XML sitemap.

  🔴 WHAT BELONGS HERE. 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, it is a duplicate of the front page. That is what
  de-indexed 83 network URLs on 2026-08-08. src/test/sitemap.test.ts enforces
  the rule; do not add a <loc> to get around it.

  🔴 DELIBERATELY ABSENT — each of these is a decision, not 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. Google only trusts it if it is
  consistently right. Event pages carry 2026-08-09 (the evening the Tausta
  sections and the image-led cards landed, commit bd67c5a); the front page and
  the legal pages carry 2026-08-10 (per-route titles and canonicals). Bump 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>
