← 接单日志

接单日志 #001 · GrowthDeck 个人站上线全过程

2026-05-31Claude CodeNext.jsBuild in Public个人站

这是接单日志的第一篇,记录 huangmiao.work 个人站从零到上线的完整过程。

为什么要自建个人站

用过 Notion、Carrd、Framer,最后还是决定自建。

核心原因:内容资产要归自己。 用第三方平台,哪天平台关闭或改规则,内容就不在了。自建站配合 MDX + git,内容版本化,永远归自己。

技术栈选择

  • Next.js 14 App Router + TypeScript — 熟悉,RSC 对 SEO 友好
  • Tailwind v4 — 新版语法,@import "tailwindcss" 就够了
  • MDX + gray-matter — 博客和接单日志都用 MDX,前置 metadata 用 gray-matter 解析
  • next-mdx-remote — 服务端渲染 MDX,不需要在构建时静态生成所有页面

设计来源

UI 从之前用 Claude 做的 demo 移植过来,保留了:

  • 暗色调 GrowthDashboard(演示用的增长看板)
  • 光标跟随的 dots 背景动效
  • 滚动进度条
  • 双语切换(中/英)

最难的部分是把 React/Babel 的 demo 迁移到 Next.js App Router,主要是处理 "use client" 边界和字体加载。

踩坑记录

1. Tailwind v4 plugin 语法变了

不再是 tailwind.config.ts 里配置,而是在 CSS 文件里用 @plugin "@tailwindcss/typography" 直接引入。

2. next-mdx-remote/rsc 的 async RSC

博客文章页面要用 async function + await params,Next.js 15 开始 params 变成 Promise。

3. 字体变量映射

next/font 生成的 CSS 变量名是 --font-playfair,需要在 :root 里手动映射到 --serif: var(--font-playfair, ...)


下一步:把个人站部署到 Vercel,绑定 huangmiao.work 域名。