项目 · 构建者

在线运行

donray.dev

个人作品集与博客

Next.jsTypeScriptTailwind CSSFramer Motion

就是这个网站。静态优先的 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 标准扫描每一页,扫描通过才能合并。