<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <!-- Homepage -->
  <url>
    <loc>https://jaakkohyoty.com/</loc>
    <lastmod>2026-06-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>
  <!-- Blog Listing -->
  <url>
    <loc>https://jaakkohyoty.com/blog</loc>
    <lastmod>2026-06-30</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.8</priority>
  </url>
  <!-- Privacy Policy -->
  <url>
    <loc>https://jaakkohyoty.com/privacy</loc>
    <lastmod>2026-06-30</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.3</priority>
  </url>
  <!-- Article: Securing JWTs in Production: Common Vulnerabilities and Mitigations -->
  <url>
    <loc>https://jaakkohyoty.com/blog/secure-jwt-session-management</loc>
    <lastmod>2026-06-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <!-- Article: Why We Use OAuth 2.0 and JWT (And How They Actually Work) -->
  <url>
    <loc>https://jaakkohyoty.com/blog/oauth-jwt-demystified</loc>
    <lastmod>2026-06-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <!-- Article: Transforming SharePoint Lists into Beautiful Timelines with Custom Coded Pages -->
  <url>
    <loc>https://jaakkohyoty.com/blog/custom-sharepoint-calendar</loc>
    <lastmod>2026-05-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
</urlset>
