<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

  <!-- Homepage -->
  <url>
    <loc>https://4thewords.com/</loc>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
  </url>

  <!-- Features -->
  <url>
    <loc>https://4thewords.com/writing-software</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://4thewords.com/writing-battles</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://4thewords.com/writing-streaks</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://4thewords.com/all-features</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://4thewords.com/goals</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://4thewords.com/writing-stats</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://4thewords.com/multiplayer</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://4thewords.com/game-world</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://4thewords.com/hero-building</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Use Cases -->
  <url>
    <loc>https://4thewords.com/what-is-4thewords</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://4thewords.com/novel-writing</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://4thewords.com/habit-building</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://4thewords.com/train</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://4thewords.com/writing-community</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://4thewords.com/forum-and-friends</loc>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Company / Info -->
  <url>
    <loc>https://4thewords.com/about-us</loc>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://4thewords.com/pricing</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://4thewords.com/our-writers</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://4thewords.com/gifts</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://4thewords.com/community-pool</loc>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <!-- /writefest was listed here but 404s: there is no writefest route in the router and no
       screen for it, so the URL rendered the not-found page while the sitemap advertised it as
       indexable. Commented rather than deleted, since it reads like a seasonal page that may come
       back. Uncomment when the route exists again, and drop the stale link in llms.txt too. -->
  <url>
    <loc>https://4thewords.com/writefest</loc>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://4thewords.com/special-events</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Account / Auth -->
  <url>
    <loc>https://4thewords.com/signup</loc>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Chrome extension. LISTED as of the public launch. Three things had to be true before this
       entry could go in, and all three now are: the route resolves in every environment (it stopped
       being flag-gated in d746ea8, 2026-08-10), the route's robots "noindex, nofollow" is gone from
       router.js, and the page's og:image and JSON-LD are in place. The robots removal and this entry
       belong together: if either is ever reverted, revert both in the same change, or the sitemap
       advertises a page that tells crawlers to go away.

       VITE_EXTENSION_PAGE is a GitHub Actions ENVIRONMENT variable that gates the off-page surfaces
       linking here (the nav entries, the homepage showcase, the pricing row, table row and FAQ entry).
       It is true in production since 2026-08-12 and false in staging, so those surfaces are absent on
       staging by design. Vite bakes VITE_* in at BUILD time: a change needs a deploy run to take effect.

       The in-app surfaces are a SEPARATE, LATER launch: front-end-vue3-vite gates its own extension
       promos behind VITE_EXTENSION_LAUNCH (also false in production). Neither flag covers the other
       repo, and this entry does not depend on that one. -->
  <url>
    <loc>https://4thewords.com/extension</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <!-- Desktop app. Listed before the Oct 22 release on purpose: the page is indexable (no robots
       line in router.js) and reads "Available Thu Oct 22" until VITE_DESKTOP_DOWNLOAD_BASE is set. -->
  <url>
    <loc>https://4thewords.com/desktop</loc>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- Legal & Policy -->
  <url>
    <loc>https://4thewords.com/privacy-policy</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://4thewords.com/terms-of-use</loc>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <url>
    <loc>https://4thewords.com/ai-policy</loc>
    <changefreq>yearly</changefreq>
    <priority>0.5</priority>
  </url>

</urlset>
