<?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>http://localhost:3002/en</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi" />
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog" />
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:3002/en/series</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series" />
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags" />
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/roadmap</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap" />
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:3002/en/roadmap/frontend</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap/frontend" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap/frontend" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap/frontend" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/roadmap/backend</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap/backend" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap/backend" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap/backend" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/roadmap/mobile</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap/mobile" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap/mobile" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap/mobile" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/roadmap/qa</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap/qa" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap/qa" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap/qa" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/roadmap/devops</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap/devops" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap/devops" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap/devops" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/roadmap/ai-engineer</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap/ai-engineer" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap/ai-engineer" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap/ai-engineer" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides" />
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/01-why-design-patterns</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/01-why-design-patterns" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/01-why-design-patterns" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/01-why-design-patterns" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/02-container-presenter</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/02-container-presenter" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/02-container-presenter" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/02-container-presenter" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/03-controlled-uncontrolled</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/03-controlled-uncontrolled" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/03-controlled-uncontrolled" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/03-controlled-uncontrolled" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/04-compound-components</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/04-compound-components" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/04-compound-components" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/04-compound-components" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/05-render-props</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/05-render-props" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/05-render-props" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/05-render-props" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/06-higher-order-components</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/06-higher-order-components" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/06-higher-order-components" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/06-higher-order-components" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/07-custom-hooks</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/07-custom-hooks" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/07-custom-hooks" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/07-custom-hooks" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/08-provider-pattern</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/08-provider-pattern" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/08-provider-pattern" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/08-provider-pattern" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/09-optimistic-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/09-optimistic-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/09-optimistic-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/09-optimistic-ui" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/10-state-reducer</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/10-state-reducer" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/10-state-reducer" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/10-state-reducer" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/11-pub-sub-observer</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/11-pub-sub-observer" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/11-pub-sub-observer" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/11-pub-sub-observer" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/12-performance-patterns</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/12-performance-patterns" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/12-performance-patterns" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/12-performance-patterns" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/13-slot-pattern</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/13-slot-pattern" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/13-slot-pattern" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/13-slot-pattern" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/14-strategy-pattern</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/14-strategy-pattern" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/14-strategy-pattern" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/14-strategy-pattern" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/15-facade-pattern</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/15-facade-pattern" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/15-facade-pattern" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/15-facade-pattern" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/guides/react-design-patterns/16-error-boundary</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/16-error-boundary" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/16-error-boundary" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/16-error-boundary" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/tools</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/tools/cidr-calculator</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/cidr-calculator" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/cidr-calculator" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/cidr-calculator" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/tools/jwt-decoder</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/jwt-decoder" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/jwt-decoder" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/jwt-decoder" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/tools/base64</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/base64" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/base64" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/base64" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/tools/uuid-generator</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/uuid-generator" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/uuid-generator" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/uuid-generator" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/tools/cron-parser</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/cron-parser" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/cron-parser" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/cron-parser" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/tools/k8s-resources</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/k8s-resources" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/k8s-resources" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/k8s-resources" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/tools/yaml-json-formatter</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/yaml-json-formatter" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/yaml-json-formatter" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/yaml-json-formatter" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/tools/timestamp-converter</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/timestamp-converter" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/timestamp-converter" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/timestamp-converter" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/tools/hash-generator</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/hash-generator" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/hash-generator" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/hash-generator" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi" />
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog" />
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:3002/vi/series</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series" />
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags" />
<changefreq>weekly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/roadmap</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap" />
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:3002/vi/roadmap/frontend</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap/frontend" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap/frontend" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap/frontend" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/roadmap/backend</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap/backend" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap/backend" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap/backend" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/roadmap/mobile</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap/mobile" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap/mobile" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap/mobile" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/roadmap/qa</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap/qa" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap/qa" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap/qa" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/roadmap/devops</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap/devops" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap/devops" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap/devops" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/roadmap/ai-engineer</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/roadmap/ai-engineer" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/roadmap/ai-engineer" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/roadmap/ai-engineer" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides" />
<changefreq>weekly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/01-why-design-patterns</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/01-why-design-patterns" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/01-why-design-patterns" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/01-why-design-patterns" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/02-container-presenter</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/02-container-presenter" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/02-container-presenter" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/02-container-presenter" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/03-controlled-uncontrolled</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/03-controlled-uncontrolled" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/03-controlled-uncontrolled" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/03-controlled-uncontrolled" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/04-compound-components</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/04-compound-components" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/04-compound-components" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/04-compound-components" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/05-render-props</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/05-render-props" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/05-render-props" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/05-render-props" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/06-higher-order-components</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/06-higher-order-components" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/06-higher-order-components" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/06-higher-order-components" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/07-custom-hooks</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/07-custom-hooks" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/07-custom-hooks" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/07-custom-hooks" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/08-provider-pattern</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/08-provider-pattern" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/08-provider-pattern" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/08-provider-pattern" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/09-optimistic-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/09-optimistic-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/09-optimistic-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/09-optimistic-ui" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/10-state-reducer</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/10-state-reducer" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/10-state-reducer" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/10-state-reducer" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/11-pub-sub-observer</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/11-pub-sub-observer" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/11-pub-sub-observer" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/11-pub-sub-observer" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/12-performance-patterns</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/12-performance-patterns" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/12-performance-patterns" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/12-performance-patterns" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/13-slot-pattern</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/13-slot-pattern" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/13-slot-pattern" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/13-slot-pattern" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/14-strategy-pattern</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/14-strategy-pattern" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/14-strategy-pattern" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/14-strategy-pattern" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/15-facade-pattern</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/15-facade-pattern" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/15-facade-pattern" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/15-facade-pattern" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/guides/react-design-patterns/16-error-boundary</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/guides/react-design-patterns/16-error-boundary" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/guides/react-design-patterns/16-error-boundary" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/guides/react-design-patterns/16-error-boundary" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tools</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools" />
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tools/cidr-calculator</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/cidr-calculator" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/cidr-calculator" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/cidr-calculator" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tools/jwt-decoder</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/jwt-decoder" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/jwt-decoder" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/jwt-decoder" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tools/base64</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/base64" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/base64" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/base64" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tools/uuid-generator</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/uuid-generator" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/uuid-generator" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/uuid-generator" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tools/cron-parser</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/cron-parser" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/cron-parser" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/cron-parser" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tools/k8s-resources</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/k8s-resources" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/k8s-resources" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/k8s-resources" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tools/yaml-json-formatter</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/yaml-json-formatter" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/yaml-json-formatter" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/yaml-json-formatter" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tools/timestamp-converter</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/timestamp-converter" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/timestamp-converter" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/timestamp-converter" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tools/hash-generator</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tools/hash-generator" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tools/hash-generator" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tools/hash-generator" />
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>http://localhost:3002/en/series/ai-engineering</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/ai-engineering" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/ai-engineering" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/ai-engineering" />
<lastmod>2026-10-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/series/nestjs-production</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/nestjs-production" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/nestjs-production" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/nestjs-production" />
<lastmod>2026-09-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/series/web-performance</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/web-performance" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/web-performance" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/web-performance" />
<lastmod>2026-04-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/series/modern-css</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/modern-css" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/modern-css" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/modern-css" />
<lastmod>2026-09-21T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/series/frontend-architecture</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/frontend-architecture" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/frontend-architecture" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/frontend-architecture" />
<lastmod>2026-01-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/series/engineering-craft</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/engineering-craft" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/engineering-craft" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/engineering-craft" />
<lastmod>2026-02-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/series/frontend-deep-dive</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/frontend-deep-dive" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/frontend-deep-dive" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/frontend-deep-dive" />
<lastmod>2026-09-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/series/business-analysis</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/business-analysis" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/business-analysis" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/business-analysis" />
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/series/application-security</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/application-security" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/application-security" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/application-security" />
<lastmod>2026-10-31T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/series/ai-engineering</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/ai-engineering" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/ai-engineering" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/ai-engineering" />
<lastmod>2026-10-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/series/nestjs-production</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/nestjs-production" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/nestjs-production" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/nestjs-production" />
<lastmod>2026-09-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/series/web-performance</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/web-performance" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/web-performance" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/web-performance" />
<lastmod>2026-04-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/series/modern-css</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/modern-css" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/modern-css" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/modern-css" />
<lastmod>2026-09-21T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/series/frontend-architecture</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/frontend-architecture" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/frontend-architecture" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/frontend-architecture" />
<lastmod>2026-01-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/series/engineering-craft</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/engineering-craft" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/engineering-craft" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/engineering-craft" />
<lastmod>2026-02-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/series/frontend-deep-dive</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/frontend-deep-dive" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/frontend-deep-dive" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/frontend-deep-dive" />
<lastmod>2026-09-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/series/business-analysis</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/business-analysis" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/business-analysis" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/business-analysis" />
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/series/application-security</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/series/application-security" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/series/application-security" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/series/application-security" />
<lastmod>2026-10-31T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/react</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/react" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/react" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/react" />
<lastmod>2026-09-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/ai</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/ai" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/ai" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/ai" />
<lastmod>2026-10-24T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/performance</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/performance" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/performance" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/performance" />
<lastmod>2026-09-17T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/security</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/security" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/security" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/security" />
<lastmod>2026-10-31T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/nextjs</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/nextjs" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/nextjs" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/nextjs" />
<lastmod>2026-10-27T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/architecture</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/architecture" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/architecture" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/architecture" />
<lastmod>2026-10-11T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/typescript</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/typescript" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/typescript" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/typescript" />
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/accessibility</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/accessibility" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/accessibility" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/accessibility" />
<lastmod>2026-09-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/css</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/css" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/css" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/css" />
<lastmod>2026-09-21T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/business-analysis</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/business-analysis" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/business-analysis" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/business-analysis" />
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/llm</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/llm" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/llm" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/llm" />
<lastmod>2026-10-24T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/career</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/career" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/career" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/career" />
<lastmod>2026-08-17T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/ci</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/ci" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/ci" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/ci" />
<lastmod>2026-10-31T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/nestjs</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/nestjs" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/nestjs" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/nestjs" />
<lastmod>2026-10-20T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/web-vitals</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/web-vitals" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/web-vitals" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/web-vitals" />
<lastmod>2026-09-14T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/caching</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/caching" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/caching" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/caching" />
<lastmod>2026-09-05T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/design-system</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/design-system" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/design-system" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/design-system" />
<lastmod>2026-08-03T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/javascript</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/javascript" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/javascript" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/javascript" />
<lastmod>2026-09-17T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/monorepo</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/monorepo" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/monorepo" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/monorepo" />
<lastmod>2026-09-20T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/nodejs</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/nodejs" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/nodejs" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/nodejs" />
<lastmod>2026-10-29T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/observability</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/observability" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/observability" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/observability" />
<lastmod>2026-09-14T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/streaming</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/streaming" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/streaming" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/streaming" />
<lastmod>2026-08-31T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/analytics</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/analytics" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/analytics" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/analytics" />
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/api</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/api" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/api" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/api" />
<lastmod>2026-10-20T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/authentication</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/authentication" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/authentication" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/authentication" />
<lastmod>2026-10-17T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/backend</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/backend" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/backend" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/backend" />
<lastmod>2026-08-19T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/bun</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/bun" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/bun" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/bun" />
<lastmod>2025-10-27T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/code-review</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/code-review" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/code-review" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/code-review" />
<lastmod>2026-08-17T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/components</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/components" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/components" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/components" />
<lastmod>2026-08-03T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/file-upload</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/file-upload" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/file-upload" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/file-upload" />
<lastmod>2026-10-29T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/html</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/html" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/html" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/html" />
<lastmod>2026-09-21T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/images</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/images" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/images" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/images" />
<lastmod>2026-04-23T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/owasp</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/owasp" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/owasp" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/owasp" />
<lastmod>2026-10-24T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/reliability</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/reliability" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/reliability" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/reliability" />
<lastmod>2026-09-03T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/requirements</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/requirements" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/requirements" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/requirements" />
<lastmod>2026-10-05T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/seo</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/seo" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/seo" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/seo" />
<lastmod>2026-04-26T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/state-management</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/state-management" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/state-management" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/state-management" />
<lastmod>2026-03-09T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/testing</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/testing" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/testing" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/testing" />
<lastmod>2026-07-27T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/turborepo</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/turborepo" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/turborepo" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/turborepo" />
<lastmod>2025-11-29T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/view-transitions</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/view-transitions" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/view-transitions" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/view-transitions" />
<lastmod>2026-09-21T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/tags/web-workers</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/web-workers" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/web-workers" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/web-workers" />
<lastmod>2026-09-28T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/react</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/react" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/react" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/react" />
<lastmod>2026-09-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/ai</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/ai" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/ai" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/ai" />
<lastmod>2026-10-24T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/performance</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/performance" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/performance" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/performance" />
<lastmod>2026-09-17T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/security</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/security" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/security" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/security" />
<lastmod>2026-10-31T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/nextjs</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/nextjs" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/nextjs" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/nextjs" />
<lastmod>2026-10-27T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/architecture</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/architecture" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/architecture" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/architecture" />
<lastmod>2026-10-11T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/typescript</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/typescript" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/typescript" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/typescript" />
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/accessibility</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/accessibility" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/accessibility" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/accessibility" />
<lastmod>2026-09-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/css</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/css" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/css" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/css" />
<lastmod>2026-09-21T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/business-analysis</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/business-analysis" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/business-analysis" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/business-analysis" />
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/llm</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/llm" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/llm" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/llm" />
<lastmod>2026-10-24T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/career</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/career" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/career" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/career" />
<lastmod>2026-08-17T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/ci</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/ci" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/ci" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/ci" />
<lastmod>2026-10-31T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/nestjs</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/nestjs" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/nestjs" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/nestjs" />
<lastmod>2026-10-20T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/web-vitals</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/web-vitals" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/web-vitals" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/web-vitals" />
<lastmod>2026-09-14T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/caching</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/caching" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/caching" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/caching" />
<lastmod>2026-09-05T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/design-system</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/design-system" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/design-system" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/design-system" />
<lastmod>2026-08-03T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/javascript</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/javascript" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/javascript" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/javascript" />
<lastmod>2026-09-17T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/monorepo</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/monorepo" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/monorepo" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/monorepo" />
<lastmod>2026-09-20T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/nodejs</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/nodejs" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/nodejs" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/nodejs" />
<lastmod>2026-10-29T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/observability</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/observability" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/observability" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/observability" />
<lastmod>2026-09-14T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/streaming</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/streaming" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/streaming" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/streaming" />
<lastmod>2026-08-31T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/analytics</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/analytics" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/analytics" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/analytics" />
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/api</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/api" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/api" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/api" />
<lastmod>2026-10-20T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/authentication</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/authentication" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/authentication" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/authentication" />
<lastmod>2026-10-17T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/backend</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/backend" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/backend" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/backend" />
<lastmod>2026-08-19T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/bun</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/bun" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/bun" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/bun" />
<lastmod>2025-10-27T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/code-review</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/code-review" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/code-review" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/code-review" />
<lastmod>2026-08-17T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/components</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/components" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/components" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/components" />
<lastmod>2026-08-03T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/file-upload</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/file-upload" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/file-upload" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/file-upload" />
<lastmod>2026-10-29T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/html</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/html" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/html" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/html" />
<lastmod>2026-09-21T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/images</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/images" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/images" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/images" />
<lastmod>2026-04-23T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/owasp</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/owasp" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/owasp" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/owasp" />
<lastmod>2026-10-24T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/reliability</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/reliability" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/reliability" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/reliability" />
<lastmod>2026-09-03T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/requirements</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/requirements" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/requirements" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/requirements" />
<lastmod>2026-10-05T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/seo</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/seo" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/seo" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/seo" />
<lastmod>2026-04-26T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/state-management</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/state-management" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/state-management" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/state-management" />
<lastmod>2026-03-09T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/testing</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/testing" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/testing" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/testing" />
<lastmod>2026-07-27T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/turborepo</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/turborepo" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/turborepo" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/turborepo" />
<lastmod>2025-11-29T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/view-transitions</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/view-transitions" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/view-transitions" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/view-transitions" />
<lastmod>2026-09-21T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/vi/tags/web-workers</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/tags/web-workers" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/tags/web-workers" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/tags/web-workers" />
<lastmod>2026-09-28T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/secrets-management-ci-oidc</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/secrets-management-ci-oidc" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/secrets-management-ci-oidc" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/secrets-management-ci-oidc" />
<lastmod>2026-10-31T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/ssrf-and-file-upload-security</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/ssrf-and-file-upload-security" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/ssrf-and-file-upload-security" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/ssrf-and-file-upload-security" />
<lastmod>2026-10-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/bundle-analysis-and-tree-shaking</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/bundle-analysis-and-tree-shaking" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/bundle-analysis-and-tree-shaking" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/bundle-analysis-and-tree-shaking" />
<lastmod>2026-10-27T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/cors-and-cross-origin-isolation</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/cors-and-cross-origin-isolation" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/cors-and-cross-origin-isolation" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/cors-and-cross-origin-isolation" />
<lastmod>2026-10-27T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/llm-app-security-prompt-injection</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/llm-app-security-prompt-injection" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/llm-app-security-prompt-injection" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/llm-app-security-prompt-injection" />
<lastmod>2026-10-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/owasp-api-security-top-10-nestjs</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/owasp-api-security-top-10-nestjs" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/owasp-api-security-top-10-nestjs" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/owasp-api-security-top-10-nestjs" />
<lastmod>2026-10-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/jwt-pitfalls-and-key-rotation</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/jwt-pitfalls-and-key-rotation" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/jwt-pitfalls-and-key-rotation" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/jwt-pitfalls-and-key-rotation" />
<lastmod>2026-10-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/oauth2-oidc-pkce-bff</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/oauth2-oidc-pkce-bff" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/oauth2-oidc-pkce-bff" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/oauth2-oidc-pkce-bff" />
<lastmod>2026-10-14T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/threat-modeling-stride</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/threat-modeling-stride" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/threat-modeling-stride" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/threat-modeling-stride" />
<lastmod>2026-10-11T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/mcp-server-typescript</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/mcp-server-typescript" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/mcp-server-typescript" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/mcp-server-typescript" />
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/product-metrics-sql-for-analysts</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/product-metrics-sql-for-analysts" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/product-metrics-sql-for-analysts" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/product-metrics-sql-for-analysts" />
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/writing-prd-and-nfr</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/writing-prd-and-nfr" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/writing-prd-and-nfr" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/writing-prd-and-nfr" />
<lastmod>2026-10-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/event-storming-domain-modeling</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/event-storming-domain-modeling" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/event-storming-domain-modeling" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/event-storming-domain-modeling" />
<lastmod>2026-10-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/bpmn-process-modeling</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/bpmn-process-modeling" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/bpmn-process-modeling" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/bpmn-process-modeling" />
<lastmod>2026-09-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/on-device-ai-in-the-browser</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/on-device-ai-in-the-browser" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/on-device-ai-in-the-browser" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/on-device-ai-in-the-browser" />
<lastmod>2026-09-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/user-stories-acceptance-criteria</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/user-stories-acceptance-criteria" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/user-stories-acceptance-criteria" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/user-stories-acceptance-criteria" />
<lastmod>2026-09-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/requirements-elicitation-for-engineers</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/requirements-elicitation-for-engineers" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/requirements-elicitation-for-engineers" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/requirements-elicitation-for-engineers" />
<lastmod>2026-09-23T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/modern-css-platform-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/modern-css-platform-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/modern-css-platform-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/modern-css-platform-ui" />
<lastmod>2026-09-21T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/micro-frontends-module-federation</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/micro-frontends-module-federation" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/micro-frontends-module-federation" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/micro-frontends-module-federation" />
<lastmod>2026-09-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/web-workers-off-main-thread</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/web-workers-off-main-thread" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/web-workers-off-main-thread" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/web-workers-off-main-thread" />
<lastmod>2026-09-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/frontend-observability-rum</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/frontend-observability-rum" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/frontend-observability-rum" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/frontend-observability-rum" />
<lastmod>2026-09-14T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/typescript-type-level-api-contracts</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/typescript-type-level-api-contracts" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/typescript-type-level-api-contracts" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/typescript-type-level-api-contracts" />
<lastmod>2026-09-11T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/accessible-aria-widget-patterns</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/accessible-aria-widget-patterns" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/accessible-aria-widget-patterns" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/accessible-aria-widget-patterns" />
<lastmod>2026-09-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/nestjs-auth-passkeys-sessions</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/nestjs-auth-passkeys-sessions" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/nestjs-auth-passkeys-sessions" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/nestjs-auth-passkeys-sessions" />
<lastmod>2026-09-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/tanstack-query-server-state</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/tanstack-query-server-state" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/tanstack-query-server-state" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/tanstack-query-server-state" />
<lastmod>2026-09-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/llm-cost-and-latency-in-production</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/llm-cost-and-latency-in-production" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/llm-cost-and-latency-in-production" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/llm-cost-and-latency-in-production" />
<lastmod>2026-09-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/react-server-components-mental-model</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/react-server-components-mental-model" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/react-server-components-mental-model" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/react-server-components-mental-model" />
<lastmod>2026-09-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/streaming-ssr-and-suspense</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/streaming-ssr-and-suspense" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/streaming-ssr-and-suspense" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/streaming-ssr-and-suspense" />
<lastmod>2026-08-31T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/nestjs-background-jobs-bullmq</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/nestjs-background-jobs-bullmq" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/nestjs-background-jobs-bullmq" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/nestjs-background-jobs-bullmq" />
<lastmod>2026-08-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/ai-assisted-frontend-workflow</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/ai-assisted-frontend-workflow" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/ai-assisted-frontend-workflow" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/ai-assisted-frontend-workflow" />
<lastmod>2026-08-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/headless-component-patterns</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/headless-component-patterns" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/headless-component-patterns" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/headless-component-patterns" />
<lastmod>2026-08-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/nestjs-request-lifecycle-architecture</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/nestjs-request-lifecycle-architecture" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/nestjs-request-lifecycle-architecture" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/nestjs-request-lifecycle-architecture" />
<lastmod>2026-08-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/evaluating-llm-features</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/evaluating-llm-features" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/evaluating-llm-features" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/evaluating-llm-features" />
<lastmod>2026-07-27T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/nextjs-16-cache-components</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/nextjs-16-cache-components" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/nextjs-16-cache-components" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/nextjs-16-cache-components" />
<lastmod>2026-07-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/npm-supply-chain-security</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/npm-supply-chain-security" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/npm-supply-chain-security" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/npm-supply-chain-security" />
<lastmod>2026-07-01T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/llm-tool-calling-and-generative-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/llm-tool-calling-and-generative-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/llm-tool-calling-and-generative-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/llm-tool-calling-and-generative-ui" />
<lastmod>2026-06-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/view-transitions-api</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/view-transitions-api" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/view-transitions-api" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/view-transitions-api" />
<lastmod>2026-06-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/rag-pipeline-in-practice</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/rag-pipeline-in-practice" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/rag-pipeline-in-practice" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/rag-pipeline-in-practice" />
<lastmod>2026-06-14T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/streaming-ai-chat-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/streaming-ai-chat-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/streaming-ai-chat-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/streaming-ai-chat-ui" />
<lastmod>2026-05-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/autocomplete-system-design</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/autocomplete-system-design" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/autocomplete-system-design" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/autocomplete-system-design" />
<lastmod>2026-05-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/ux-patterns-for-ai-features</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/ux-patterns-for-ai-features" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/ux-patterns-for-ai-features" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/ux-patterns-for-ai-features" />
<lastmod>2026-05-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/core-web-vitals</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/core-web-vitals" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/core-web-vitals" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/core-web-vitals" />
<lastmod>2026-04-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/multimodal-input-for-llm-features</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/multimodal-input-for-llm-features" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/multimodal-input-for-llm-features" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/multimodal-input-for-llm-features" />
<lastmod>2026-04-23T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/event-loop-and-rendering</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/event-loop-and-rendering" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/event-loop-and-rendering" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/event-loop-and-rendering" />
<lastmod>2026-04-09T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/frontend-security-in-practice</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/frontend-security-in-practice" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/frontend-security-in-practice" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/frontend-security-in-practice" />
<lastmod>2026-03-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/url-as-state</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/url-as-state" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/url-as-state" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/url-as-state" />
<lastmod>2026-03-09T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/list-virtualization</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/list-virtualization" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/list-virtualization" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/list-virtualization" />
<lastmod>2026-03-07T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/structured-outputs-for-llm-features</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/structured-outputs-for-llm-features" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/structured-outputs-for-llm-features" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/structured-outputs-for-llm-features" />
<lastmod>2026-03-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/react-compiler-in-practice</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/react-compiler-in-practice" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/react-compiler-in-practice" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/react-compiler-in-practice" />
<lastmod>2026-02-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/writing-notes-as-an-engineer</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/writing-notes-as-an-engineer" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/writing-notes-as-an-engineer" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/writing-notes-as-an-engineer" />
<lastmod>2026-02-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/css-cascade-layers-and-scope</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/css-cascade-layers-and-scope" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/css-cascade-layers-and-scope" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/css-cascade-layers-and-scope" />
<lastmod>2026-02-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/design-tokens-and-theming</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/design-tokens-and-theming" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/design-tokens-and-theming" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/design-tokens-and-theming" />
<lastmod>2026-02-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/signals-and-fine-grained-reactivity</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/signals-and-fine-grained-reactivity" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/signals-and-fine-grained-reactivity" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/signals-and-fine-grained-reactivity" />
<lastmod>2026-01-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/thinking-in-systems-not-screens</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/thinking-in-systems-not-screens" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/thinking-in-systems-not-screens" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/thinking-in-systems-not-screens" />
<lastmod>2026-01-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/web-fonts-done-right</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/web-fonts-done-right" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/web-fonts-done-right" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/web-fonts-done-right" />
<lastmod>2025-12-31T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/offline-first-optimistic-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/offline-first-optimistic-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/offline-first-optimistic-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/offline-first-optimistic-ui" />
<lastmod>2025-12-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/ci-for-frontend-monorepo</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/ci-for-frontend-monorepo" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/ci-for-frontend-monorepo" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/ci-for-frontend-monorepo" />
<lastmod>2025-11-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/estimating-frontend-work</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/estimating-frontend-work" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/estimating-frontend-work" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/estimating-frontend-work" />
<lastmod>2025-11-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/monorepo-lessons-bun-turborepo</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/monorepo-lessons-bun-turborepo" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/monorepo-lessons-bun-turborepo" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/monorepo-lessons-bun-turborepo" />
<lastmod>2025-10-27T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/devtools-debugging-tricks</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/devtools-debugging-tricks" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/devtools-debugging-tricks" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/devtools-debugging-tricks" />
<lastmod>2025-10-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/caching-for-frontend-developers</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/caching-for-frontend-developers" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/caching-for-frontend-developers" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/caching-for-frontend-developers" />
<lastmod>2025-09-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/accessible-modal-dialogs</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/accessible-modal-dialogs" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/accessible-modal-dialogs" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/accessible-modal-dialogs" />
<lastmod>2025-09-07T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/frontend-testing-strategy</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/frontend-testing-strategy" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/frontend-testing-strategy" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/frontend-testing-strategy" />
<lastmod>2025-08-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/frontend-feature-flags</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/frontend-feature-flags" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/frontend-feature-flags" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/frontend-feature-flags" />
<lastmod>2025-08-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/code-splitting-and-lazy-loading-react</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/code-splitting-and-lazy-loading-react" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/code-splitting-and-lazy-loading-react" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/code-splitting-and-lazy-loading-react" />
<lastmod>2025-07-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/mid-to-senior-frontend</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/mid-to-senior-frontend" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/mid-to-senior-frontend" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/mid-to-senior-frontend" />
<lastmod>2025-07-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/react-19-forms-and-actions</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/react-19-forms-and-actions" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/react-19-forms-and-actions" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/react-19-forms-and-actions" />
<lastmod>2025-06-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/react-rendering-performance</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/react-rendering-performance" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/react-rendering-performance" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/react-rendering-performance" />
<lastmod>2025-05-31T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/container-queries-modern-responsive</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/container-queries-modern-responsive" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/container-queries-modern-responsive" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/container-queries-modern-responsive" />
<lastmod>2025-05-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/frontend-error-handling-strategy</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/frontend-error-handling-strategy" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/frontend-error-handling-strategy" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/frontend-error-handling-strategy" />
<lastmod>2025-04-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/code-review-giving-and-receiving</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/code-review-giving-and-receiving" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/code-review-giving-and-receiving" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/code-review-giving-and-receiving" />
<lastmod>2025-04-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/image-optimization-end-to-end</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/image-optimization-end-to-end" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/image-optimization-end-to-end" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/image-optimization-end-to-end" />
<lastmod>2025-03-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/css-layout-mental-model</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/css-layout-mental-model" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/css-layout-mental-model" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/css-layout-mental-model" />
<lastmod>2025-03-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/state-machines-for-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/state-machines-for-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/state-machines-for-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/state-machines-for-ui" />
<lastmod>2025-02-21T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/typescript-patterns-that-pay-off</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/typescript-patterns-that-pay-off" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/typescript-patterns-that-pay-off" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/typescript-patterns-that-pay-off" />
<lastmod>2025-02-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/why-we-chose-bun</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/why-we-chose-bun" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/why-we-chose-bun" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/why-we-chose-bun" />
<lastmod>2025-01-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/en/blog/building-with-shadcn-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/building-with-shadcn-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/building-with-shadcn-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/building-with-shadcn-ui" />
<lastmod>2025-01-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/secrets-management-ci-oidc</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/secrets-management-ci-oidc" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/secrets-management-ci-oidc" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/secrets-management-ci-oidc" />
<lastmod>2026-10-31T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/ssrf-and-file-upload-security</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/ssrf-and-file-upload-security" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/ssrf-and-file-upload-security" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/ssrf-and-file-upload-security" />
<lastmod>2026-10-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/bundle-analysis-and-tree-shaking</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/bundle-analysis-and-tree-shaking" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/bundle-analysis-and-tree-shaking" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/bundle-analysis-and-tree-shaking" />
<lastmod>2026-10-27T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/cors-and-cross-origin-isolation</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/cors-and-cross-origin-isolation" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/cors-and-cross-origin-isolation" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/cors-and-cross-origin-isolation" />
<lastmod>2026-10-27T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/llm-app-security-prompt-injection</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/llm-app-security-prompt-injection" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/llm-app-security-prompt-injection" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/llm-app-security-prompt-injection" />
<lastmod>2026-10-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/owasp-api-security-top-10-nestjs</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/owasp-api-security-top-10-nestjs" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/owasp-api-security-top-10-nestjs" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/owasp-api-security-top-10-nestjs" />
<lastmod>2026-10-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/jwt-pitfalls-and-key-rotation</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/jwt-pitfalls-and-key-rotation" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/jwt-pitfalls-and-key-rotation" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/jwt-pitfalls-and-key-rotation" />
<lastmod>2026-10-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/oauth2-oidc-pkce-bff</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/oauth2-oidc-pkce-bff" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/oauth2-oidc-pkce-bff" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/oauth2-oidc-pkce-bff" />
<lastmod>2026-10-14T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/threat-modeling-stride</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/threat-modeling-stride" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/threat-modeling-stride" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/threat-modeling-stride" />
<lastmod>2026-10-11T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/mcp-server-typescript</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/mcp-server-typescript" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/mcp-server-typescript" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/mcp-server-typescript" />
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/product-metrics-sql-for-analysts</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/product-metrics-sql-for-analysts" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/product-metrics-sql-for-analysts" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/product-metrics-sql-for-analysts" />
<lastmod>2026-10-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/writing-prd-and-nfr</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/writing-prd-and-nfr" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/writing-prd-and-nfr" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/writing-prd-and-nfr" />
<lastmod>2026-10-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/event-storming-domain-modeling</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/event-storming-domain-modeling" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/event-storming-domain-modeling" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/event-storming-domain-modeling" />
<lastmod>2026-10-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/bpmn-process-modeling</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/bpmn-process-modeling" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/bpmn-process-modeling" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/bpmn-process-modeling" />
<lastmod>2026-09-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/on-device-ai-in-the-browser</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/on-device-ai-in-the-browser" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/on-device-ai-in-the-browser" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/on-device-ai-in-the-browser" />
<lastmod>2026-09-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/user-stories-acceptance-criteria</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/user-stories-acceptance-criteria" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/user-stories-acceptance-criteria" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/user-stories-acceptance-criteria" />
<lastmod>2026-09-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/requirements-elicitation-for-engineers</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/requirements-elicitation-for-engineers" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/requirements-elicitation-for-engineers" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/requirements-elicitation-for-engineers" />
<lastmod>2026-09-23T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/modern-css-platform-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/modern-css-platform-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/modern-css-platform-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/modern-css-platform-ui" />
<lastmod>2026-09-21T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/micro-frontends-module-federation</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/micro-frontends-module-federation" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/micro-frontends-module-federation" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/micro-frontends-module-federation" />
<lastmod>2026-09-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/web-workers-off-main-thread</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/web-workers-off-main-thread" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/web-workers-off-main-thread" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/web-workers-off-main-thread" />
<lastmod>2026-09-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/frontend-observability-rum</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/frontend-observability-rum" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/frontend-observability-rum" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/frontend-observability-rum" />
<lastmod>2026-09-14T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/typescript-type-level-api-contracts</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/typescript-type-level-api-contracts" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/typescript-type-level-api-contracts" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/typescript-type-level-api-contracts" />
<lastmod>2026-09-11T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/accessible-aria-widget-patterns</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/accessible-aria-widget-patterns" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/accessible-aria-widget-patterns" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/accessible-aria-widget-patterns" />
<lastmod>2026-09-08T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/nestjs-auth-passkeys-sessions</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/nestjs-auth-passkeys-sessions" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/nestjs-auth-passkeys-sessions" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/nestjs-auth-passkeys-sessions" />
<lastmod>2026-09-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/tanstack-query-server-state</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/tanstack-query-server-state" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/tanstack-query-server-state" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/tanstack-query-server-state" />
<lastmod>2026-09-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/llm-cost-and-latency-in-production</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/llm-cost-and-latency-in-production" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/llm-cost-and-latency-in-production" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/llm-cost-and-latency-in-production" />
<lastmod>2026-09-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/react-server-components-mental-model</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/react-server-components-mental-model" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/react-server-components-mental-model" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/react-server-components-mental-model" />
<lastmod>2026-09-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/streaming-ssr-and-suspense</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/streaming-ssr-and-suspense" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/streaming-ssr-and-suspense" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/streaming-ssr-and-suspense" />
<lastmod>2026-08-31T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/nestjs-background-jobs-bullmq</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/nestjs-background-jobs-bullmq" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/nestjs-background-jobs-bullmq" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/nestjs-background-jobs-bullmq" />
<lastmod>2026-08-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/ai-assisted-frontend-workflow</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/ai-assisted-frontend-workflow" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/ai-assisted-frontend-workflow" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/ai-assisted-frontend-workflow" />
<lastmod>2026-08-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/headless-component-patterns</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/headless-component-patterns" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/headless-component-patterns" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/headless-component-patterns" />
<lastmod>2026-08-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/nestjs-request-lifecycle-architecture</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/nestjs-request-lifecycle-architecture" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/nestjs-request-lifecycle-architecture" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/nestjs-request-lifecycle-architecture" />
<lastmod>2026-08-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/evaluating-llm-features</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/evaluating-llm-features" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/evaluating-llm-features" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/evaluating-llm-features" />
<lastmod>2026-07-27T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/nextjs-16-cache-components</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/nextjs-16-cache-components" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/nextjs-16-cache-components" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/nextjs-16-cache-components" />
<lastmod>2026-07-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/npm-supply-chain-security</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/npm-supply-chain-security" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/npm-supply-chain-security" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/npm-supply-chain-security" />
<lastmod>2026-07-01T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/llm-tool-calling-and-generative-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/llm-tool-calling-and-generative-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/llm-tool-calling-and-generative-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/llm-tool-calling-and-generative-ui" />
<lastmod>2026-06-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/view-transitions-api</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/view-transitions-api" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/view-transitions-api" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/view-transitions-api" />
<lastmod>2026-06-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/rag-pipeline-in-practice</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/rag-pipeline-in-practice" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/rag-pipeline-in-practice" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/rag-pipeline-in-practice" />
<lastmod>2026-06-14T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/streaming-ai-chat-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/streaming-ai-chat-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/streaming-ai-chat-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/streaming-ai-chat-ui" />
<lastmod>2026-05-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/autocomplete-system-design</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/autocomplete-system-design" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/autocomplete-system-design" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/autocomplete-system-design" />
<lastmod>2026-05-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/ux-patterns-for-ai-features</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/ux-patterns-for-ai-features" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/ux-patterns-for-ai-features" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/ux-patterns-for-ai-features" />
<lastmod>2026-05-04T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/core-web-vitals</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/core-web-vitals" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/core-web-vitals" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/core-web-vitals" />
<lastmod>2026-04-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/multimodal-input-for-llm-features</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/multimodal-input-for-llm-features" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/multimodal-input-for-llm-features" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/multimodal-input-for-llm-features" />
<lastmod>2026-04-23T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/event-loop-and-rendering</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/event-loop-and-rendering" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/event-loop-and-rendering" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/event-loop-and-rendering" />
<lastmod>2026-04-09T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/frontend-security-in-practice</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/frontend-security-in-practice" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/frontend-security-in-practice" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/frontend-security-in-practice" />
<lastmod>2026-03-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/url-as-state</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/url-as-state" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/url-as-state" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/url-as-state" />
<lastmod>2026-03-09T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/list-virtualization</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/list-virtualization" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/list-virtualization" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/list-virtualization" />
<lastmod>2026-03-07T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/structured-outputs-for-llm-features</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/structured-outputs-for-llm-features" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/structured-outputs-for-llm-features" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/structured-outputs-for-llm-features" />
<lastmod>2026-03-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/react-compiler-in-practice</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/react-compiler-in-practice" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/react-compiler-in-practice" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/react-compiler-in-practice" />
<lastmod>2026-02-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/writing-notes-as-an-engineer</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/writing-notes-as-an-engineer" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/writing-notes-as-an-engineer" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/writing-notes-as-an-engineer" />
<lastmod>2026-02-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/css-cascade-layers-and-scope</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/css-cascade-layers-and-scope" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/css-cascade-layers-and-scope" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/css-cascade-layers-and-scope" />
<lastmod>2026-02-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/design-tokens-and-theming</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/design-tokens-and-theming" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/design-tokens-and-theming" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/design-tokens-and-theming" />
<lastmod>2026-02-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/signals-and-fine-grained-reactivity</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/signals-and-fine-grained-reactivity" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/signals-and-fine-grained-reactivity" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/signals-and-fine-grained-reactivity" />
<lastmod>2026-01-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/thinking-in-systems-not-screens</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/thinking-in-systems-not-screens" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/thinking-in-systems-not-screens" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/thinking-in-systems-not-screens" />
<lastmod>2026-01-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/web-fonts-done-right</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/web-fonts-done-right" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/web-fonts-done-right" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/web-fonts-done-right" />
<lastmod>2025-12-31T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/offline-first-optimistic-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/offline-first-optimistic-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/offline-first-optimistic-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/offline-first-optimistic-ui" />
<lastmod>2025-12-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/ci-for-frontend-monorepo</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/ci-for-frontend-monorepo" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/ci-for-frontend-monorepo" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/ci-for-frontend-monorepo" />
<lastmod>2025-11-29T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/estimating-frontend-work</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/estimating-frontend-work" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/estimating-frontend-work" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/estimating-frontend-work" />
<lastmod>2025-11-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/monorepo-lessons-bun-turborepo</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/monorepo-lessons-bun-turborepo" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/monorepo-lessons-bun-turborepo" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/monorepo-lessons-bun-turborepo" />
<lastmod>2025-10-27T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/devtools-debugging-tricks</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/devtools-debugging-tricks" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/devtools-debugging-tricks" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/devtools-debugging-tricks" />
<lastmod>2025-10-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/caching-for-frontend-developers</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/caching-for-frontend-developers" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/caching-for-frontend-developers" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/caching-for-frontend-developers" />
<lastmod>2025-09-24T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/accessible-modal-dialogs</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/accessible-modal-dialogs" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/accessible-modal-dialogs" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/accessible-modal-dialogs" />
<lastmod>2025-09-07T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/frontend-testing-strategy</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/frontend-testing-strategy" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/frontend-testing-strategy" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/frontend-testing-strategy" />
<lastmod>2025-08-22T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/frontend-feature-flags</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/frontend-feature-flags" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/frontend-feature-flags" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/frontend-feature-flags" />
<lastmod>2025-08-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/code-splitting-and-lazy-loading-react</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/code-splitting-and-lazy-loading-react" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/code-splitting-and-lazy-loading-react" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/code-splitting-and-lazy-loading-react" />
<lastmod>2025-07-20T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/mid-to-senior-frontend</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/mid-to-senior-frontend" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/mid-to-senior-frontend" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/mid-to-senior-frontend" />
<lastmod>2025-07-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/react-19-forms-and-actions</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/react-19-forms-and-actions" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/react-19-forms-and-actions" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/react-19-forms-and-actions" />
<lastmod>2025-06-17T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/react-rendering-performance</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/react-rendering-performance" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/react-rendering-performance" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/react-rendering-performance" />
<lastmod>2025-05-31T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/container-queries-modern-responsive</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/container-queries-modern-responsive" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/container-queries-modern-responsive" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/container-queries-modern-responsive" />
<lastmod>2025-05-15T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/frontend-error-handling-strategy</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/frontend-error-handling-strategy" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/frontend-error-handling-strategy" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/frontend-error-handling-strategy" />
<lastmod>2025-04-28T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/code-review-giving-and-receiving</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/code-review-giving-and-receiving" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/code-review-giving-and-receiving" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/code-review-giving-and-receiving" />
<lastmod>2025-04-12T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/image-optimization-end-to-end</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/image-optimization-end-to-end" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/image-optimization-end-to-end" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/image-optimization-end-to-end" />
<lastmod>2025-03-26T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/css-layout-mental-model</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/css-layout-mental-model" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/css-layout-mental-model" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/css-layout-mental-model" />
<lastmod>2025-03-10T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/state-machines-for-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/state-machines-for-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/state-machines-for-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/state-machines-for-ui" />
<lastmod>2025-02-21T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/typescript-patterns-that-pay-off</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/typescript-patterns-that-pay-off" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/typescript-patterns-that-pay-off" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/typescript-patterns-that-pay-off" />
<lastmod>2025-02-05T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/why-we-chose-bun</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/why-we-chose-bun" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/why-we-chose-bun" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/why-we-chose-bun" />
<lastmod>2025-01-19T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
<url>
<loc>http://localhost:3002/vi/blog/building-with-shadcn-ui</loc>
<xhtml:link rel="alternate" hreflang="en" href="http://localhost:3002/en/blog/building-with-shadcn-ui" />
<xhtml:link rel="alternate" hreflang="vi" href="http://localhost:3002/vi/blog/building-with-shadcn-ui" />
<xhtml:link rel="alternate" hreflang="x-default" href="http://localhost:3002/vi/blog/building-with-shadcn-ui" />
<lastmod>2025-01-03T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.7</priority>
</url>
</urlset>
