<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://www.pawanrathnayake.com/</loc>
<changefreq>monthly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/work</loc>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog</loc>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/about</loc>
<changefreq>yearly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog/infinite-scroll-that-doesn-t-break-the-back-button</loc>
<lastmod>2026-08-20T09:19:02.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog/server-components-changed-how-i-think-about-data-fetching</loc>
<lastmod>2026-08-20T09:19:02.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog/a-pragmatic-guide-to-core-web-vitals-on-a-large-content-site</loc>
<lastmod>2026-08-20T09:22:26.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog/design-tokens-are-a-contract-not-a-colour-palette</loc>
<lastmod>2026-08-20T09:19:02.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog/playwright-the-setup-decisions-that-mattered-a-year-later</loc>
<lastmod>2026-08-20T09:19:02.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog/modelling-content-properly-is-a-frontend-concern</loc>
<lastmod>2026-08-20T09:19:02.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog/the-accessibility-bugs-i-find-in-every-code-review</loc>
<lastmod>2026-08-20T09:19:02.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog/why-i-stopped-reaching-for-a-state-management-library</loc>
<lastmod>2026-08-20T09:19:02.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog/css-has-quietly-become-good</loc>
<lastmod>2026-08-20T17:51:26.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog/migrating-a-sitecore-front-end-to-next-js-incrementally</loc>
<lastmod>2026-08-20T09:19:02.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog/dark-mode-without-the-flash</loc>
<lastmod>2026-08-20T09:19:02.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/blog/reading-the-framework-source-is-a-reasonable-debugging-step</loc>
<lastmod>2026-08-20T09:19:02.000Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/work/rebuilding-a-global-enterprise-site-on-the-app-router</loc>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/work/a-component-library-two-brands-could-share</loc>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/work/making-an-internal-data-workspace-usable-on-a-tablet</loc>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/work/a-publishing-pipeline-editors-actually-wanted-to-use</loc>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://www.pawanrathnayake.com/work/cutting-a-test-suite-nobody-trusted-down-to-one-that-runs</loc>
<changefreq>yearly</changefreq>
<priority>0.7</priority>
</url>
</urlset>
