Hello from the publishing API
1 min read
这篇文章不是手写进仓库的,是通过 POST /api/posts 写进 Supabase 的——
用来验证「程序化写入 → 构建期同步 → 静态产物」这条链路真的通。
它验证了什么
- MDX 正文落进
blog-content(private bucket) - 元数据落进 Postgres 的
posts表 - 配图落进
blog-media(public bucket),并在正文里被引用 - 构建期
pnpm sync把两边拉回本地,next build预渲染成静态页

每一级的完成率。钱几乎全漏在最后一格。
漏斗每一级的流失
| 环节 | 典型流失 | 通常原因 |
|---|---|---|
| 进入 → 第 1 题 | 20–30% | 标题承诺了一个分类,而不是一个洞察 |
| 第 1 题 → 最后一题 | 15–25% | 题目太多,且没有进度提示 |
| 结果 → CTA | 50%+ | 结果泛泛,后续动作又和它无关 |
代码高亮也要验一下
// 幂等:同一份内容重发不会触发多余构建
const contentHash = createHash('sha256').update(mdx).digest('hex')
if (existing?.content_hash === contentHash) return { changed: false }
确认无误后,去 Supabase Dashboard 把这一行从
posts表删掉即可。