个人博客项目,当前为 DB-only 内容架构:
- 公开内容来源:Postgres
posts(status='published') - 写作入口:
/write(口令会话鉴权) - 媒体资源:Vercel Blob
- 内容形态:
mdx+blocks双模式 - 同步能力:Notion 手动同步 + Webhook 同步
- Next.js 16.1.1(App Router)
- React 19.2.3
- Tailwind CSS 4
next-mdx-remote/react-markdown@vercel/postgres/@vercel/blob
- 安装依赖
corepack enable
pnpm install- 配置环境变量(本地建议放在
.env.local)
DATABASE_URL(或POSTGRES_URL)BLOB_READ_WRITE_TOKENERII_WRITE_PASSWORDERII_WRITE_SESSION_SECRET- 可选 Notion:
NOTION_TOKENNOTION_API_VERSION(默认2022-06-28)ERII_NOTION_WEBHOOK_SECRET
- 初始化数据库(首次)
- 执行:
db/schema.sql - 或执行迁移:
db/migrations/20260304_content_platform.sql
- 启动开发服务
pnpm dev默认端口:http://localhost:3239
pnpm dev:本地开发pnpm lint:ESLint 检查pnpm build:生产构建pnpm start:启动生产服务
/write支持:- 登录/登出会话
- 草稿保存
- 发布(触发 revalidate)
- 文章列表检索与载入
- 图片/封面上传到 Blob
- MDX / Blocks 双编辑模式
- 版本能力:
post_revisions快照记录- 支持按版本恢复
- Notion 同步:
- 手动:
POST /api/write/sync/notion - Webhook:
POST /api/write/sync/notion/webhook
- 手动:
GET/POST/DELETE /api/write/sessionGET/POST /api/write/postsGET /api/write/posts/[slug]POST /api/write/posts/publishGET/POST /api/write/posts/[slug]/revisionsPOST /api/write/assetsPOST /api/write/sync/notionPOST /api/write/sync/notion/webhookGET /api/health
- 文档导航:
docs/README.md - 项目现状报告:
docs/Project-Feature-and-Progress-Report.md - 运行手册:
docs/ContentPlatform-Runbook.md - 内容平台实施方案:
docs/ContentPlatform-Implementation-Plan.md