Project Review

Dewflow Lab 个人网站搭建

使用 Astro、MDX、GitHub 和 Cloudflare Pages 搭建个人项目实验室,并建立自动部署流程。

AstroMDXCloudflare PagesCI/CD

技术栈

AstroTypeScriptMDXCSSGitHubCloudflare Pages

相关链接

一句话介绍

一个用于展示个人项目、工程笔记、技术复盘和实验 demo 的静态个人站。

背景

我需要一个不自管服务器、能绑定自有域名、支持 Markdown/MDX、Mermaid 图、图片和前端动态效果的个人站。

这个站不是普通浅博客,而是作为“个人项目实验室 + 技术复盘档案”的第一版展示面。后续可以继续扩展成更完整的沉淀系统。

目标

  • 第一版先轻量可展示。
  • 内容结构要能承载项目复盘、工程笔记和实验 demo。
  • 不引入后端、登录、评论或数据库。
  • 使用 GitHub + Cloudflare Pages 建立自动部署流程。
  • 自定义域名绑定到 Cloudflare Pages。

技术方案

站点使用 Astro 生成静态页面,MDX 承载项目复盘和文章内容,普通 CSS 负责页面样式和 Lab 动效。

内容分为几类:

  • Projects:记录做过的项目和完整复盘。
  • Posts:沉淀工程笔记、技术速查和方法论。
  • Lab:放 HTTP 流程动效、前端实验和未来服务入口。
  • About:说明个人定位、技术栈和站点方向。

架构图

graph TD
  A[Local Astro Project] --> B[Git Commit]
  B --> C[GitHub Repository]
  C --> D[Cloudflare Pages Build]
  D --> E[Static dist Output]
  E --> F[Custom Domain lab.9710221.xyz]

CI/CD 流程

日常更新流程:

本地修改内容或页面
→ npm run build 验证
→ git add / commit
→ git push 到 GitHub main
→ Cloudflare Pages 自动执行 npm run build
→ 发布 dist
→ 自定义域名自动更新

Cloudflare Pages 配置:

  • Build command: npm run build
  • Build output directory: dist
  • Production branch: main

难点与取舍

第一版重点是把展示、内容结构和部署链路跑通,所以刻意保持简单:

  • 不自管服务器,降低维护成本。
  • 不做数据库和登录,避免第一版过重。
  • 不提前引入复杂 CMS,先用 MDX 和 Git 管理内容。
  • Mermaid 和 Lab 动效先用轻量客户端方案实现。

最终效果

目前已经完成:

  • 首页、项目列表、项目详情、文章列表、文章详情、实验室、关于页。
  • GitHub 仓库托管源码。
  • Cloudflare Pages 自动构建和部署。
  • 自定义域名访问。
  • Obsidian 原始笔记备份和发布版 MDX 迁移试点。
  • Lab 页面 HTTP 请求流程动效。

相关链接:

复盘

这次搭建的核心价值不是页面本身,而是建立了一个低维护成本的发布系统。

后续内容只需要在本地写 MDX,提交到 GitHub,Cloudflare Pages 会自动完成构建和发布。这个流程适合长期积累项目复盘、技术笔记和实验 demo。

后续计划

  • 增加中英文双语结构。
  • 为项目和文章增加更清晰的标签索引。
  • 增加项目封面图和截图展示。
  • 扩展 Lab 中的 HTTP、缓存、状态码和监控类 demo。
  • 继续把 Obsidian 旧笔记清洗为可发布文章。