就是这个网站。静态优先的 Next.js 16(App Router)+ React 19 + TypeScript,Tailwind CSS v4 和 shadcn/ui 做样式,Framer Motion 做动画,托管在 AWS Amplify。项目、经历和博客部分由 MDX 渲染,带代码高亮、标题锚点链接、自动目录和阅读时长估算。
分析公开且尊重隐私:带限流的 /api/track 端点和 DynamoDB 支撑的 /analytics 看板,按浏览会话统计每页一次页面加载,过滤机器人,用 IP、user agent 和日期的加盐 SHA-256 哈希估算每日独立访客。不存储原始 IP,没有 Cookie,看板公开统计方法,而不是把估算值当精确数字呈现。
无障碍是 CI 门禁而非愿景:每个 PR 都会用 axe-core 按 WCAG 2.2 AA 标准扫描每一页,扫描通过才能合并。发布流水线自动 bump 版本,每次发布都经 Amplify 部署;sitemap、robots.txt、Person 和 FAQPage JSON-LD、Open Graph 卡片、llms.txt 构成的发现层同时服务搜索引擎和 AI 爬虫。
功能
- 项目、经历和博客部分由 MDX 渲染,带代码高亮和阅读时长
- 公开的分析看板,统计方法公开,独立访客计数保护隐私
- 每个 PR 必跑的 axe-core WCAG 2.2 AA 无障碍扫描
- 发现层:sitemap、robots.txt、Person 和 FAQPage JSON-LD、Open Graph 卡片、llms.txt
- 自动版本 bump,每次发布都经 Amplify 部署
- 带限流和防滥用的追踪端点
常见问题
donray.dev 用什么技术构建?
Next.js 16(App Router,静态优先)、React 19、TypeScript、Tailwind CSS v4、shadcn/ui 和 Framer Motion,托管在 AWS Amplify。
公开分析是怎么工作的?
带限流的 /api/track 端点按浏览会话记录每页一次页面加载,过滤机器人,计数存入 DynamoDB。每日独立访客用 IP、user agent 和日期的加盐 SHA-256 哈希估算。不存储原始 IP,没有 Cookie。
无障碍 CI 门禁检查什么?
每个 PR 都会用 axe-core 按 WCAG 2.2 AA 标准扫描每一页,扫描通过才能合并。