<?xml version="1.0" encoding="UTF-8"?>
<!--
  Allen Code Co — sitemap.xml

  Lives at https://www.allencodeco.com/sitemap.xml and is referenced from
  /robots.txt.

  ROUTES LISTED (as of 2026-08-24)
    src/App.jsx used to mount the app inside a <HashRouter>, which made
    every route below the homepage a URL fragment (/#/products, and so
    on) — invisible to crawlers, since everything after '#' is dropped
    before the request is ever made and Google retired the AJAX-crawling
    scheme that used to work around that.

    That's fixed: App.jsx now uses <BrowserRouter>, and vercel.json adds
    the rewrite so a direct hit on any of these paths serves index.html
    instead of 404ing (excluding /api/*, which stays routed to the
    serverless functions). Every real route is now a genuine, separately
    fetchable URL, so all of them are listed here.

    Deliberately NOT listed: /checkout-success (post-purchase
    transactional page, not something search should surface) and the
    catch-all 404 route.

  KNOWN LIMITATION — SOCIAL PREVIEW CRAWLERS
    This is still a client-rendered SPA with no server-side rendering.
    Google indexes it fine because Googlebot executes the JS and renders
    each route before indexing. Facebook/LinkedIn/Twitter/Slack link-
    preview bots do NOT execute JavaScript — they only read the raw HTML
    Vercel returns for a given path, which is the same static index.html
    for every route. Until per-route static HTML or prerendering exists,
    sharing a deep link (e.g. /products/underfire-ai) on social platforms
    will show the homepage's Open Graph tags, not that page's own. Search
    indexing is unaffected by this; only social link previews are.

  NAMESPACE
    Correct sitemaps.org namespace (singular "sitemap" in the old xmlns
    value would fail Search Console validation).

  LAST MODIFIED
    Update <lastmod> on a given <url> whenever that page's content is
    materially edited, so re-crawling is prioritized correctly.
-->
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <url>
    <loc>https://www.allencodeco.com/</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <url>
    <loc>https://www.allencodeco.com/products</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>

  <url>
    <loc>https://www.allencodeco.com/products/my-teachers-toolbox</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://www.allencodeco.com/products/underfire-ai</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://www.allencodeco.com/products/founders-helm</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://www.allencodeco.com/products/crew-advisors</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <url>
    <loc>https://www.allencodeco.com/services</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://www.allencodeco.com/templates</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <url>
    <loc>https://www.allencodeco.com/about</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

  <url>
    <loc>https://www.allencodeco.com/contact</loc>
    <lastmod>2026-08-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>

</urlset>
