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

  <!-- Static pages -->
  <url>
    <loc>https://naveenkarthik.com/</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/projects</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>

  <!-- Projects -->
  <url>
    <loc>https://naveenkarthik.com/projects/holdings-analyzer</loc>
    <lastmod>2026-04-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/projects/perf-planner</loc>
    <lastmod>2026-05-19</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Articles — Performance series -->
  <url>
    <loc>https://naveenkarthik.com/articles/01-browser-rendering-pipeline</loc>
    <lastmod>2026-03-01</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/02-critical-rendering-path</loc>
    <lastmod>2026-03-03</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/03-reflow-repaint-layout-thrashing</loc>
    <lastmod>2026-03-06</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/04-css-js-animations</loc>
    <lastmod>2026-03-09</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/05-css-containment</loc>
    <lastmod>2026-03-12</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/06-event-loop-task-queue</loc>
    <lastmod>2026-03-15</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/07-devtools-performance-profiler</loc>
    <lastmod>2026-03-18</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/08-core-web-vitals</loc>
    <lastmod>2026-03-21</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/09-lighthouse-and-rum</loc>
    <lastmod>2026-03-24</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/10-resource-loading-strategies</loc>
    <lastmod>2026-03-27</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/11-image-optimization</loc>
    <lastmod>2026-03-30</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/12-font-optimization</loc>
    <lastmod>2026-04-02</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/13-compression-brotli-gzip</loc>
    <lastmod>2026-04-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/14-browser-networking-and-caching</loc>
    <lastmod>2026-04-08</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/15-http2-and-http3</loc>
    <lastmod>2026-04-11</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/16-resource-hints</loc>
    <lastmod>2026-04-14</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/17-priority-hints-fetch-priority</loc>
    <lastmod>2026-04-17</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/18-intersection-observer-debounce-throttle</loc>
    <lastmod>2026-04-20</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/19-v8-jit-compilation</loc>
    <lastmod>2026-04-23</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/20-memory-leaks-garbage-collection</loc>
    <lastmod>2026-04-26</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/21-web-workers-offscreencanvas</loc>
    <lastmod>2026-04-29</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/22-ssr-csr-ssg-isr</loc>
    <lastmod>2026-05-02</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/23-react-performance-patterns</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/24-virtual-scrolling-windowing</loc>
    <lastmod>2026-05-08</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/25-perceived-performance</loc>
    <lastmod>2026-05-11</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/26-bundle-optimization</loc>
    <lastmod>2026-05-14</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/27-third-party-scripts</loc>
    <lastmod>2026-05-17</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/28-service-workers-and-caching</loc>
    <lastmod>2026-05-20</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/29-adaptive-loading</loc>
    <lastmod>2026-05-23</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/30-performance-budgets</loc>
    <lastmod>2026-05-26</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.8</priority>
  </url>

  <!-- Articles — Other -->
  <url>
    <loc>https://naveenkarthik.com/articles/holdings-analyzer</loc>
    <lastmod>2026-05-01</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/web-performance-planner</loc>
    <lastmod>2026-04-28</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/claude-figma-mcp-integration</loc>
    <lastmod>2026-04-25</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/figma-llm-problem</loc>
    <lastmod>2026-04-25</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Articles — React series -->
  <url>
    <loc>https://naveenkarthik.com/articles/react-virtual-dom-reconciliation</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>

  <!-- Articles — Glossary / Explainers -->
  <url>
    <loc>https://naveenkarthik.com/articles/what-is-virtual-dom</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/what-is-cssom</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/what-is-reconciliation</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/what-is-main-thread</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/what-is-hydration</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/what-is-microtask-queue</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/what-is-react-fiber</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/what-are-long-tasks</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/what-is-ttfb</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/what-are-compositing-layers</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/what-is-preload-scanner</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://naveenkarthik.com/articles/what-is-stale-while-revalidate</loc>
    <lastmod>2026-05-05</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>

  <!-- Articles — JavaScript series -->
  <url>
    <loc>https://naveenkarthik.com/articles/settimeout-setinterval</loc>
    <lastmod>2026-05-04</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.7</priority>
  </url>

</urlset>
