<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://designdev.io</loc>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://designdev.io/authors</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://designdev.io/series</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags</loc>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://designdev.io/posts/publishing-your-first-react-component-to-npm-the-complete-setup</loc>
<lastmod>2026-04-30T06:34:46Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/how-to-structure-a-ui-library-that-scales-folders-exports-and-naming-conventions</loc>
<lastmod>2026-04-30T05:04:20Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/setting-up-a-react-component-library-with-vite-typescript-and-tailwind-v4</loc>
<lastmod>2026-04-29T14:57:10Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/why-i-m-building-my-own-react-ui-library-and-why-you-should-too</loc>
<lastmod>2026-04-30T06:47:15Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/css-cascade-layers-the-feature-that-finally-fixes-specificity-wars</loc>
<lastmod>2026-04-29T12:42:36Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/how-to-build-a-component-library-with-proper-versioning</loc>
<lastmod>2026-04-30T06:47:21Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/strict-mode-in-react-18-what-it-breaks-and-why-that-s-good</loc>
<lastmod>2026-04-29T09:17:52Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/how-to-manage-global-state-without-a-library</loc>
<lastmod>2026-04-29T08:31:39Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/the-render-props-pattern-is-not-dead-here-s-where-it-still-wins</loc>
<lastmod>2026-04-26T15:00:18Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/why-react-memo-doesn-t-always-help-and-when-it-does</loc>
<lastmod>2026-04-26T12:14:03Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/building-a-fully-accessible-modal-from-scratch-in-react</loc>
<lastmod>2026-04-30T06:47:24Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/react-reconciliation-explained-what-the-diffing-algorithm-actually-does</loc>
<lastmod>2026-04-26T12:13:46Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/how-to-lazy-load-components-the-right-way-and-avoid-the-trap</loc>
<lastmod>2026-04-26T12:13:36Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/compound-components-the-design-pattern-that-changed-how-i-build-uis</loc>
<lastmod>2026-04-26T12:13:15Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/typescript-generics-in-react-the-patterns-you-ll-use-every-week</loc>
<lastmod>2026-04-26T12:13:07Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/the-testing-pyramid-what-is-it-really</loc>
<lastmod>2026-04-26T12:12:59Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/how-to-test-custom-hooks-with-react-testing-library</loc>
<lastmod>2026-04-26T12:12:42Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/controlled-vs-uncontrolled-components-the-decision-you-keep-making-wrong</loc>
<lastmod>2026-04-26T12:12:34Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/server-state-management-and-how-tanstack-query-fits-in</loc>
<lastmod>2026-04-26T12:12:26Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/the-complete-guide-to-react-error-boundaries</loc>
<lastmod>2026-04-26T12:12:20Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/react-memo-what-is-it-actually-doing</loc>
<lastmod>2026-04-26T12:12:12Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/how-usedeferredvalue-and-usetransition-work-with-real-examples</loc>
<lastmod>2026-04-26T12:12:04Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/stop-colocating-everything-a-better-way-to-structure-react-features</loc>
<lastmod>2026-04-26T12:11:52Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/useref-the-hook-that-remembers-without-re-rendering</loc>
<lastmod>2026-04-26T12:11:44Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/make-use-of-usememo-like-you-mean-it</loc>
<lastmod>2026-04-26T12:11:35Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/did-you-know-usecallback-can-actually-do-this</loc>
<lastmod>2026-04-26T12:11:27Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/useeffect-what-is-it-really</loc>
<lastmod>2026-04-26T11:34:01Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/react-context-vs-zustand-when-each-one-actually-makes-sense</loc>
<lastmod>2026-04-29T09:55:37Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/how-to-build-a-custom-hook-that-actually-earns-its-abstraction</loc>
<lastmod>2026-04-26T11:34:01Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/the-key-prop-is-not-just-for-lists-here-s-what-you-re-missing</loc>
<lastmod>2026-04-26T11:34:01Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/react-server-components-explained-without-the-hype</loc>
<lastmod>2026-04-26T11:34:01Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/why-i-stopped-using-useeffect-for-data-fetching-and-what-i-use-instead</loc>
<lastmod>2026-04-26T11:34:01Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/posts/we-re-not-a-blog-we-re-a-team</loc>
<lastmod>2026-04-26T14:46:27Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://designdev.io/authors/dev-okonkwo</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/authors/ren-calloway</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/authors/kai-lindstroem</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/authors/sena-aruoba</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/authors/muhammad-athar</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/authors/alex-chen</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/authors/sam-vickers</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/authors/jordan-reef</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/authors/priya-nolan</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/authors/mira-halsted</loc>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/series/css-design-systems</loc>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://designdev.io/series/building-a-react-ui-library-from-scratch</loc>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://designdev.io/series/announcement</loc>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://designdev.io/series/react-foundations</loc>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://designdev.io/series/from-the-builder</loc>
<changefreq>weekly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://designdev.io/tags/content</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/changelog</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/tailwind</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/side-hustle</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/vite</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/architecture</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/typescript</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/ai</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/css</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/web</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/react</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/intro</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/publishing</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/ui-library</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/seo</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/versioning</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://designdev.io/tags/npm</loc>
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
