<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://blog.charlestw.dev/catalog/css</loc></url><url><loc>https://blog.charlestw.dev/catalog/database</loc></url><url><loc>https://blog.charlestw.dev/catalog/docker</loc></url><url><loc>https://blog.charlestw.dev/catalog/git</loc></url><url><loc>https://blog.charlestw.dev/catalog/github</loc></url><url><loc>https://blog.charlestw.dev/catalog/html</loc></url><url><loc>https://blog.charlestw.dev/catalog/</loc></url><url><loc>https://blog.charlestw.dev/catalog/linux</loc></url><url><loc>https://blog.charlestw.dev/catalog/nodejs</loc></url><url><loc>https://blog.charlestw.dev/catalog/nuxt</loc></url><url><loc>https://blog.charlestw.dev/catalog/vitepress</loc></url><url><loc>https://blog.charlestw.dev/catalog/vscode</loc></url><url><loc>https://blog.charlestw.dev/catalog/vue</loc></url><url><loc>https://blog.charlestw.dev/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/portfolio/</loc><lastmod>2024-10-05T13:15:00.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/css/note</loc><lastmod>2024-09-21T23:17:00.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/git/husky-and-commitlint</loc><lastmod>2025-11-10T08:28:00.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/git/note</loc><lastmod>2024-09-21T23:17:00.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/html/note</loc><lastmod>2024-09-21T23:17:00.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/linux/ubuntu/note</loc><lastmod>2024-09-21T23:17:00.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/linux/ubuntu/sourcelist</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/linux/ubuntu/sudo-no-password/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/linux/wsl/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nodejs/eslint/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nodejs/nvm/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nodejs/oxlint/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nodejs/package-manager/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nodejs/vite/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/ai-assisted-claude-md/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/better-auth-integration/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/fullstack-architecture/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/global-type</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/nitro-api-design/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/nuxt-import-static-file</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/nuxt-server-engine-nitro-h3</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/nuxt-ui-dashboard/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/pinia-colada-async-state/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/role-based-access-control/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/supabase-function-security/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/supabase-local-first/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/supabase-rls-strategy/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/supabase-self-hosted/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/tdd-testing-workflow/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/nuxt/typescript-type-safety/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/vscode/intro/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/vscode/note</loc><lastmod>2024-09-21T23:17:00.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/vue/create-project/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/vue/intro/</loc><lastmod>2026-01-25T13:52:22.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/vue/v-bind</loc><lastmod>2024-09-21T23:17:00.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/vue/v-for</loc><lastmod>2024-09-21T23:17:00.000Z</lastmod></url><url><loc>https://blog.charlestw.dev/vue/v-on</loc><lastmod>2024-09-21T23:17:00.000Z</lastmod></url></urlset>