你好,DEV!
发布: (2025年12月29日 GMT+8 10:05)
2 分钟阅读
原文: Dev.to
Source: Dev.to
我是 Mat,一名思考系统的解决方案架构师,写关于有意生活的文章,最近发布了我的个人站点:matbanik.info。
这是我的第一篇 DEV 帖子,所以想分享一下我的技术栈以及构建过程中的经验教训。也许能帮助正在搭建个人作品集的朋友们。
技术栈
| 层级 | 选择 |
|---|---|
| 框架 | Astro |
| 托管 | Cloudflare Pages |
| 后端 | Cloudflare Workers |
| 机器人防护 | Cloudflare Turnstile |
| 分析 | Cloudflare Web Analytics |
| 新闻通讯 | Buttondown (via Workers) |
| 电子邮件 | Resend (via Workers) |
| 搜索 | Pagefind |
总托管费用: $0 /月
在决定使用 Astro 之前,我评估了 Next.js、Hugo 和 11ty。选择 Astro 的原因如下:
- 内容集合 — 使用 Zod schema 的类型安全 Markdown。我的博客文章会在构建时进行校验。
- 默认零 JS — 只输出 HTML/CSS。JavaScript 需要时才按组件引入。
- 基于文件的 i18n — 我只需在
/es/目录下复制页面即可提供西班牙语版本,无需复杂的路由配置。 - 岛屿架构 — 交互组件可以独立 hydrate(虽然我几乎用不到)。
如果重新来,我会做的不同之处
- 更早使用 Pagefind —— 客户端搜索能显著提升用户体验。
- 从第一天起就使用 CSS 自定义属性 —— 让主题切换和暗模式变得轻而易举。
- 首先以报告模式(report‑only)设置 CSP —— 我仍在验证后再正式强制执行。