<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://yacine-ouardi.com/</loc>
<lastmod>2026-04-03T22:20:13.606Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog</loc>
<lastmod>2026-04-03T22:20:13.606Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts</loc>
<lastmod>2026-04-03T22:20:13.606Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/migrate-design-systems-gracefully-with-multiple-tailwind-css-configs-in-next-js</loc>
<lastmod>2025-05-23T16:15:44.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/when-to-stop-refactoring-how-much-is-too-much</loc>
<lastmod>2025-05-15T13:33:40.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/the-myth-of-clean-code-in-large-projects-why-perfection-can-be-the-enemy-of-progress</loc>
<lastmod>2025-05-15T13:33:49.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/tech-debt-is-not-your-enemy-it-s-your-shadow</loc>
<lastmod>2025-06-08T14:23:51.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/frontend-architecture-the-road-to-reusable-scalable-and-maintainable-components</loc>
<lastmod>2025-05-06T14:23:37.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/the-hidden-costs-of-building-scalable-frontend-applications</loc>
<lastmod>2025-05-03T11:49:15.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/why-handling-errors-in-javascript-is-harder-than-you-think</loc>
<lastmod>2025-05-15T13:34:53.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/how-to-effectively-balance-ux-and-performance-in-complex-web-applications</loc>
<lastmod>2025-05-30T16:04:07.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/advanced-state-management-when-redux-is-overkill-and-other-solutions-you-should-consider</loc>
<lastmod>2025-05-19T11:11:11.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/rediscovering-vanilla-javascript-streaming-and-simplicity-in-2025</loc>
<lastmod>2025-08-21T11:38:34.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/the-modern-frontend-fatigue-why-every-project-feels-like-a-framework-migration</loc>
<lastmod>2025-11-15T12:08:11.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/how-to-make-your-react-app-truly-accessible-more-than-just-color-contrast</loc>
<lastmod>2025-05-15T13:33:23.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/agile-scrum-training-real-world-lessons</loc>
<lastmod>2025-12-31T12:27:42.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://yacine-ouardi.com/blog/posts/the-modern-frontend-fatigue-why-every-project-feels-like-a-framework-migration</loc>
<lastmod>2025-11-15T12:08:11.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
</urlset>
