<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"
        xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
  <url>
    <loc>https://vipjavascript.com/</loc>
    <lastmod>2026-03-15</lastmod>
    <changefreq>weekly</changefreq>
    <priority>1.0</priority>
    <image:image>
      <image:loc>https://vipjavascript.com/vip-javascript-book-cover.png</image:loc>
      <image:title>VIP JavaScript Book Cover</image:title>
      <image:caption>Simplified JavaScript for Very Important Programmers book cover</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vipjavascript.com/author/</loc>
    <lastmod>2026-03-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
    <image:image>
      <image:loc>https://vipjavascript.com/ebenezer-don.png</image:loc>
      <image:title>Ebenezer Don Author Photo</image:title>
      <image:caption>Ebenezer Don - Software Engineer, Author and Educator</image:caption>
    </image:image>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/</loc>
    <lastmod>2026-03-15</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/run-qwen-locally-with-ollama</loc>
    <lastmod>2026-03-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/qwen-3-5-comprehensive-guide</loc>
    <lastmod>2026-03-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/qwen-3-5-small-models-guide</loc>
    <lastmod>2026-03-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/why-i-wrote-get-insanely-good-at-ai</loc>
    <lastmod>2026-03-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/gemini-3-pro-vs-claude-opus-4-5-comprehensive-comparison</loc>
    <lastmod>2025-12-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/google-gemini-3-pro-and-antigravity-ide</loc>
    <lastmod>2025-11-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/durable-web-workers-cancellation-and-pools</loc>
    <lastmod>2025-10-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/structured-clone-vs-json-stringify</loc>
    <lastmod>2025-10-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/firebase-google-oauth-custom-domain</loc>
    <lastmod>2025-10-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/fixing-firebase-dns-on-namecheap-remove-domain-from-host</loc>
    <lastmod>2025-10-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/javascript-modules-dynamic-imports</loc>
    <lastmod>2025-07-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/javascript-proxies-and-reflect-comprehensive-guide</loc>
    <lastmod>2025-07-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/deno-2-vs-bun-comprehensive-comparison</loc>
    <lastmod>2025-07-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/import-maps-and-slow-departure-from-bundlers</loc>
    <lastmod>2025-07-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/parallel-javascript-and-sharedarraybuffer-isolation</loc>
    <lastmod>2025-07-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/regexp-unicode-sets</loc>
    <lastmod>2025-06-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/promise-with-resolvers</loc>
    <lastmod>2025-06-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/javascript-closures-explained</loc>
    <lastmod>2025-06-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/mastering-array-grouping</loc>
    <lastmod>2025-06-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/dom-manipulation-best-practices</loc>
    <lastmod>2025-06-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/mastering-async-await</loc>
    <lastmod>2025-06-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/javascript-array-methods-guide</loc>
    <lastmod>2025-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/error-handling-strategies</loc>
    <lastmod>2025-06-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://vipjavascript.com/blog/javascript-performance-optimization</loc>
    <lastmod>2025-06-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
</urlset>