<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
        http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">

  <!-- ============================================================
       STATIC PAGES — taxable.ng root domain
       ============================================================ -->

  <!-- Homepage -->
  <url>
    <loc>https://taxable.ng/</loc>
    <lastmod>2026-03-02</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- About -->
  <url>
    <loc>https://taxable.ng/about</loc>
    <lastmod>2026-02-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Pricing -->
  <url>
    <loc>https://taxable.ng/pricing</loc>
    <lastmod>2026-02-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Insights — Blog Listing -->
  <url>
    <loc>https://taxable.ng/insights</loc>
    <lastmod>2026-03-02</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- Contact -->
  <url>
    <loc>https://taxable.ng/contact</loc>
    <lastmod>2026-01-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <!-- Privacy Policy -->
  <url>
    <loc>https://taxable.ng/privacy</loc>
    <lastmod>2026-01-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <!-- Terms of Service -->
  <url>
    <loc>https://taxable.ng/terms</loc>
    <lastmod>2026-01-10</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>

  <!-- ============================================================
       SUBDOMAIN LANDING PAGES
       Each subdomain has its own sitemap.xml for internal routes.
       These entries ensure the main sitemap references the
       canonical entry points for cross-domain discovery.
       ============================================================ -->

  <url>
    <loc>https://calc.taxable.ng/</loc>
    <lastmod>2026-03-02</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>

  <url>
    <loc>https://file.taxable.ng/</loc>
    <lastmod>2026-03-02</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>

  <url>
    <loc>https://vat.taxable.ng/</loc>
    <lastmod>2026-03-02</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://invoicing.taxable.ng/</loc>
    <lastmod>2026-03-02</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- ============================================================
       DYNAMIC BLOG POSTS — Generated at build time from Sanity.io

       At build time, query Sanity for all published posts and append
       a <url> block for each. Example Next.js implementation:

       // app/sitemap.ts (Next.js App Router)
       import { client } from '@/lib/sanity'

       export default async function sitemap() {
         const posts = await client.fetch(
           `*[_type == "post" && defined(slug.current)] | order(publishedAt desc) {
             "slug": slug.current,
             "lastmod": publishedAt
           }`
         )

         const staticPages = [
           { url: 'https://taxable.ng/', lastModified: new Date(), priority: 1.0, changeFrequency: 'weekly' },
           { url: 'https://taxable.ng/about', lastModified: '2026-02-15', priority: 0.7, changeFrequency: 'monthly' },
           { url: 'https://taxable.ng/pricing', lastModified: '2026-02-15', priority: 0.8, changeFrequency: 'monthly' },
           { url: 'https://taxable.ng/insights', lastModified: new Date(), priority: 0.9, changeFrequency: 'daily' },
           { url: 'https://taxable.ng/contact', lastModified: '2026-01-20', priority: 0.6, changeFrequency: 'monthly' },
           { url: 'https://taxable.ng/privacy', lastModified: '2026-01-10', priority: 0.3, changeFrequency: 'yearly' },
           { url: 'https://taxable.ng/terms', lastModified: '2026-01-10', priority: 0.3, changeFrequency: 'yearly' },
         ]

         const blogPages = posts.map((post) => ({
           url: `https://taxable.ng/insights/${post.slug}`,
           lastModified: post.lastmod,
           priority: 0.7,
           changeFrequency: 'weekly',
         }))

         return [...staticPages, ...blogPages]
       }

       When using the programmatic sitemap above, this static XML
       file becomes a fallback only. The Next.js route takes
       precedence at /sitemap.xml.
       ============================================================ -->

  <!-- Example blog post entries (replace with dynamic generation):

  <url>
    <loc>https://taxable.ng/insights/understanding-paye-under-nta-2026</loc>
    <lastmod>2026-02-28</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://taxable.ng/insights/cit-allowable-expenses-guide</loc>
    <lastmod>2026-02-20</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://taxable.ng/insights/vat-act-compliance-checklist</loc>
    <lastmod>2026-02-14</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>

  -->

</urlset>
