<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://ruan-five.vercel.app/</loc>
<lastmod>2026-10-06T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>1</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/blog</loc>
<lastmod>2026-10-06T00:00:00.000Z</lastmod>
<changefreq>weekly</changefreq>
<priority>0.9</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/blog/page/2</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/blog/engineering-guardrails</loc>
<lastmod>2026-10-06T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/blog/virtual-list-render-budget</loc>
<lastmod>2026-09-14T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/blog/opensource-contribution-notes</loc>
<lastmod>2026-09-11T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/blog/provider-pool-fallback</loc>
<lastmod>2026-09-02T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/blog/chat-stream-scroll-anchor</loc>
<lastmod>2026-08-27T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/blog/rag-rerank</loc>
<lastmod>2026-08-21T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/blog/oss-presign-webp</loc>
<lastmod>2026-08-14T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/blog/pgvector-migration</loc>
<lastmod>2026-08-09T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/blog/dual-token-single-flight</loc>
<lastmod>2026-06-18T00:00:00.000Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/projects</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/projects/summer-checkin</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/projects/what-a-day</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/projects/summer-checkin-ui-skill</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/projects/Phoebe-Chubi-DeepSeek-Balance</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/projects/xiaoping-robot-control</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/projects/computer-design-omg</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.6</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.5</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags/%E5%B7%A5%E7%A8%8B%E5%8C%96</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags/%E6%80%A7%E8%83%BD%E4%BC%98%E5%8C%96</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags/%E6%9E%B6%E6%9E%84</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags/AI</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags/RAG</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags/React</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags/%E6%B5%8B%E8%AF%95</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags/%E5%AD%98%E5%82%A8</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags/%E5%BC%80%E6%BA%90</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags/%E6%8E%92%E6%9F%A5</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags/%E8%AE%A4%E8%AF%81</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/tags/%E6%95%B0%E6%8D%AE%E5%BA%93</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>monthly</changefreq>
<priority>0.4</priority>
</url>
<url>
<loc>https://ruan-five.vercel.app/about</loc>
<lastmod>2026-10-17T16:51:17.071Z</lastmod>
<changefreq>yearly</changefreq>
<priority>0.6</priority>
</url>
</urlset>
