<?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://cunguyen.com/</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/" />
<lastmod>2026-04-13T15:23:11.467Z</lastmod>
<changefreq>daily</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://cunguyen.com/api-docs</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/api-docs" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/api-docs" />
<lastmod>2026-04-13T15:23:11.467Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://cunguyen.com/blog</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog" />
<lastmod>2026-04-13T15:23:11.467Z</lastmod>
<changefreq>daily</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://cunguyen.com/contact</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/contact" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/contact" />
<lastmod>2026-04-13T15:23:11.467Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://cunguyen.com/journey</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/journey" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/journey" />
<lastmod>2026-04-13T15:23:11.467Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://cunguyen.com/projects</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/projects" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/projects" />
<lastmod>2026-04-13T15:23:11.467Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nextjs-16-new-era</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nextjs-16-new-era" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nextjs-16-new-era" />
<lastmod>2026-03-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/typescript-6-overview</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/typescript-6-overview" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/typescript-6-overview" />
<lastmod>2026-02-18T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/ai-agents-developer-workflow-2026</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/ai-agents-developer-workflow-2026" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/ai-agents-developer-workflow-2026" />
<lastmod>2026-01-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/frontend-trends-2025-review</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/frontend-trends-2025-review" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/frontend-trends-2025-review" />
<lastmod>2025-12-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nx-monorepo-at-scale</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nx-monorepo-at-scale" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nx-monorepo-at-scale" />
<lastmod>2025-11-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/modern-css-2025</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/modern-css-2025" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/modern-css-2025" />
<lastmod>2025-10-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/biome-oxlint-eslint-replacement</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/biome-oxlint-eslint-replacement" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/biome-oxlint-eslint-replacement" />
<lastmod>2025-09-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-compiler-stable</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-compiler-stable" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-compiler-stable" />
<lastmod>2025-08-25T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/vite-6-rolldown</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/vite-6-rolldown" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/vite-6-rolldown" />
<lastmod>2025-07-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/ai-coding-tools-comparison</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/ai-coding-tools-comparison" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/ai-coding-tools-comparison" />
<lastmod>2025-06-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nodejs-22-lts-guide</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nodejs-22-lts-guide" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nodejs-22-lts-guide" />
<lastmod>2025-05-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nextjs-server-actions-patterns</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nextjs-server-actions-patterns" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nextjs-server-actions-patterns" />
<lastmod>2025-04-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/typescript-5-8-features</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/typescript-5-8-features" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/typescript-5-8-features" />
<lastmod>2025-03-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/tailwind-v4-migration-guide</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/tailwind-v4-migration-guide" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/tailwind-v4-migration-guide" />
<lastmod>2025-02-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/rsc-patterns-2025</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/rsc-patterns-2025" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/rsc-patterns-2025" />
<lastmod>2025-01-18T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-19-new-features</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-19-new-features" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-19-new-features" />
<lastmod>2024-12-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/typescript-utility-types</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/typescript-utility-types" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/typescript-utility-types" />
<lastmod>2024-11-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nextjs-app-router-patterns</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nextjs-app-router-patterns" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nextjs-app-router-patterns" />
<lastmod>2024-10-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/tailwind-css-v4-highlights</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/tailwind-css-v4-highlights" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/tailwind-css-v4-highlights" />
<lastmod>2024-09-14T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/clean-code-principles</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/clean-code-principles" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/clean-code-principles" />
<lastmod>2024-08-30T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nextjs-15-turbopack-stable</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nextjs-15-turbopack-stable" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nextjs-15-turbopack-stable" />
<lastmod>2024-07-25T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/ai-assisted-coding-workflow</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/ai-assisted-coding-workflow" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/ai-assisted-coding-workflow" />
<lastmod>2024-06-30T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/bun-vs-nodejs-runtime-war</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/bun-vs-nodejs-runtime-war" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/bun-vs-nodejs-runtime-war" />
<lastmod>2024-05-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/typescript-5-4-noinfer</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/typescript-5-4-noinfer" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/typescript-5-4-noinfer" />
<lastmod>2024-04-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-compiler-no-more-memo</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-compiler-no-more-memo" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-compiler-no-more-memo" />
<lastmod>2024-02-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/vite-5-modern-frontend-tooling</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/vite-5-modern-frontend-tooling" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/vite-5-modern-frontend-tooling" />
<lastmod>2024-01-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nextjs-14-server-actions</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nextjs-14-server-actions" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nextjs-14-server-actions" />
<lastmod>2023-12-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/biome-rust-toolchain</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/biome-rust-toolchain" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/biome-rust-toolchain" />
<lastmod>2023-11-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-server-components-in-practice</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-server-components-in-practice" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-server-components-in-practice" />
<lastmod>2023-09-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/typescript-5-decorators-const-type</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/typescript-5-decorators-const-type" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/typescript-5-decorators-const-type" />
<lastmod>2023-08-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/ai-tools-for-developers-2023</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/ai-tools-for-developers-2023" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/ai-tools-for-developers-2023" />
<lastmod>2023-07-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/tailwind-css-design-system</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/tailwind-css-design-system" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/tailwind-css-design-system" />
<lastmod>2023-06-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nextjs-app-router-migration</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nextjs-app-router-migration" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nextjs-app-router-migration" />
<lastmod>2023-04-25T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/zod-runtime-type-validation</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/zod-runtime-type-validation" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/zod-runtime-type-validation" />
<lastmod>2023-03-18T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-performance-optimization</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-performance-optimization" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-performance-optimization" />
<lastmod>2023-02-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/pnpm-monorepo-workspace</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/pnpm-monorepo-workspace" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/pnpm-monorepo-workspace" />
<lastmod>2023-01-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/turborepo-monorepo-scale</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/turborepo-monorepo-scale" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/turborepo-monorepo-scale" />
<lastmod>2022-12-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nextjs-13-app-router</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nextjs-13-app-router" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nextjs-13-app-router" />
<lastmod>2022-10-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/typescript-satisfies-operator</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/typescript-satisfies-operator" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/typescript-satisfies-operator" />
<lastmod>2022-09-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-18-stable-migration</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-18-stable-migration" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-18-stable-migration" />
<lastmod>2022-07-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/tanstack-query-v4</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/tanstack-query-v4" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/tanstack-query-v4" />
<lastmod>2022-06-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/tailwind-css-dynamic-variants</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/tailwind-css-dynamic-variants" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/tailwind-css-dynamic-variants" />
<lastmod>2022-04-18T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nodejs-18-fetch-test-runner</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nodejs-18-fetch-test-runner" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nodejs-18-fetch-test-runner" />
<lastmod>2022-03-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/zustand-simple-state-management</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/zustand-simple-state-management" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/zustand-simple-state-management" />
<lastmod>2022-01-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/tailwind-css-v3-jit-engine</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/tailwind-css-v3-jit-engine" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/tailwind-css-v3-jit-engine" />
<lastmod>2021-12-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nextjs-12-rust-compiler</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nextjs-12-rust-compiler" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nextjs-12-rust-compiler" />
<lastmod>2021-11-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-18-concurrent-features</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-18-concurrent-features" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-18-concurrent-features" />
<lastmod>2021-09-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/esm-in-nodejs</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/esm-in-nodejs" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/esm-in-nodejs" />
<lastmod>2021-07-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nextjs-11-performance</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nextjs-11-performance" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nextjs-11-performance" />
<lastmod>2021-06-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/typescript-4-template-literal-types</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/typescript-4-template-literal-types" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/typescript-4-template-literal-types" />
<lastmod>2021-04-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-server-components-concept</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-server-components-concept" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-server-components-concept" />
<lastmod>2021-03-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/vite-fast-build-tool</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/vite-fast-build-tool" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/vite-fast-build-tool" />
<lastmod>2021-01-18T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nextjs-10-image-i18n</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nextjs-10-image-i18n" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nextjs-10-image-i18n" />
<lastmod>2020-12-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-17-boring-but-important</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-17-boring-but-important" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-17-boring-but-important" />
<lastmod>2020-10-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/typescript-4-features</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/typescript-4-features" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/typescript-4-features" />
<lastmod>2020-08-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/tailwind-css-utility-first</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/tailwind-css-utility-first" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/tailwind-css-utility-first" />
<lastmod>2020-07-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/deno-1-typescript-runtime</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/deno-1-typescript-runtime" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/deno-1-typescript-runtime" />
<lastmod>2020-05-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/nextjs-ssg-getstaticprops</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/nextjs-ssg-getstaticprops" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/nextjs-ssg-getstaticprops" />
<lastmod>2020-03-25T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-state-management-2020</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-state-management-2020" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-state-management-2020" />
<lastmod>2020-02-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/node-12-lts-improvements</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/node-12-lts-improvements" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/node-12-lts-improvements" />
<lastmod>2019-12-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/graphql-vs-rest-api</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/graphql-vs-rest-api" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/graphql-vs-rest-api" />
<lastmod>2019-10-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/jamstack-future-of-web</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/jamstack-future-of-web" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/jamstack-future-of-web" />
<lastmod>2019-08-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/why-switch-to-typescript</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/why-switch-to-typescript" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/why-switch-to-typescript" />
<lastmod>2019-06-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/svelte-3-compiler-framework</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/svelte-3-compiler-framework" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/svelte-3-compiler-framework" />
<lastmod>2019-04-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-hooks-officially-stable</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-hooks-officially-stable" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-hooks-officially-stable" />
<lastmod>2019-02-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-hooks-first-look</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-hooks-first-look" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-hooks-first-look" />
<lastmod>2018-11-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/progressive-web-apps-guide</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/progressive-web-apps-guide" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/progressive-web-apps-guide" />
<lastmod>2018-09-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/react-context-api-guide</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/react-context-api-guide" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/react-context-api-guide" />
<lastmod>2018-07-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/es2018-features-overview</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/es2018-features-overview" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/es2018-features-overview" />
<lastmod>2018-04-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>https://cunguyen.com/blog/css-grid-layout-practical-guide</loc>
<xhtml:link rel="alternate" hreflang="en" href="https://cunguyen.com/blog/css-grid-layout-practical-guide" />
<xhtml:link rel="alternate" hreflang="vi" href="https://cunguyen.com/vi/blog/css-grid-layout-practical-guide" />
<lastmod>2018-02-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
</urlset>
