<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://www.zianebadreddine.me</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr" />
<lastmod>2026-10-01T05:17:07.029Z</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/fr</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr" />
<lastmod>2026-10-01T05:17:07.029Z</lastmod>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/blog</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/blog" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/blog" />
<lastmod>2026-10-01T05:17:07.029Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/fr/blog</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/blog" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/blog" />
<lastmod>2026-10-01T05:17:07.029Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/contact</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/contact" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/contact" />
<lastmod>2026-10-01T05:17:07.029Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/fr/contact</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/contact" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/contact" />
<lastmod>2026-10-01T05:17:07.029Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/playground</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/playground" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/playground" />
<lastmod>2026-10-01T05:17:07.029Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/fr/playground</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/playground" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/playground" />
<lastmod>2026-10-01T05:17:07.029Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/blog/bun-in-production</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/blog/bun-in-production" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/blog/bun-in-production" />
<lastmod>2026-09-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/blog/java-interview-questions</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/blog/java-interview-questions" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/blog/java-interview-questions" />
<lastmod>2026-09-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/blog/motion-animations-ux-performance</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/blog/motion-animations-ux-performance" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/blog/motion-animations-ux-performance" />
<lastmod>2026-09-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/blog/react-vs-vue-2026</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/blog/react-vs-vue-2026" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/blog/react-vs-vue-2026" />
<lastmod>2026-09-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/blog/tanstack-query-crash-course</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/blog/tanstack-query-crash-course" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/blog/tanstack-query-crash-course" />
<lastmod>2026-09-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/blog/why-i-chose-opaque-tokens-over-jwt-for-my-spring-boot-api</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/blog/why-i-chose-opaque-tokens-over-jwt-for-my-spring-boot-api" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/blog/why-i-chose-opaque-tokens-over-jwt-for-my-spring-boot-api" />
<lastmod>2026-09-27T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://www.zianebadreddine.me/blog/why-i-stopped-optimizing-early</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://www.zianebadreddine.me/blog/why-i-stopped-optimizing-early" />
<xhtml:link rel="alternate" hreflang="fr" href="https://www.zianebadreddine.me/fr/blog/why-i-stopped-optimizing-early" />
<lastmod>2026-09-18T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
