内容平台技术选型决策记录
记录本站从静态框架、CMS、数据库、对象存储到搜索索引的完整选型过程,含对比表和决策依据。
选型原则
前台框架:为什么是 Astro
| 维度 | Astro | Next.js | Nuxt |
|---|---|---|---|
| 定位 | 内容驱动 | 全栈应用 | 全栈应用 |
| 默认 JS 量 | 零 | 较多 | 较多 |
| SEO | 静态最优 | 需配置 | 需配置 |
| MDX 支持 | 原生集成 | 需插件 | 需插件 |
| Content Collections | 原生 | 无 | 无 |
Astro 的 Content Collections 是决定性因素:它给内容加了 schema 校验层,让“内容结构”成为一等公民。
CMS:为什么是 Payload
| 维度 | Payload | Directus | Strapi |
|---|---|---|---|
| 风格 | TypeScript Code-first | 数据库优先 | 通用 CMS |
| Block 工程 | 强 | 中 | 中 |
| 长期扩展 | 适合研发维护 | 适合快速搭 | 适合通用场景 |
| PostgreSQL | 原生 | 原生 | 支持 |
Payload 的 Code-first 风格适合我这种研发背景的人长期维护,Block 工程化控制力最强。
数据库:为什么直接 PostgreSQL
- 本地用 docker-compose 起 PostgreSQL 16,开发生产同一镜像
- 避免 SQLite → PostgreSQL 的迁移折返
- 后续 pgvector 扩展直接复用同一实例做 AI 向量检索
对象存储:为什么阿里云 OSS
S3 兼容Payload storage adapter 复用
国内快主受众访问延迟低
MinIO开发期本地替身
搜索:分阶段
| 阶段 | 工具 | 适用范围 |
|---|---|---|
| 第一阶段 | Pagefind | 静态页面搜索 |
| 第二阶段 | Meilisearch | 动态内容检索 |
| 第三阶段 | pgvector | AI 语义检索 |
决策汇总
Astro 前台 + Payload CMS 后台 + PostgreSQL + 阿里云 OSS + Pagefind(起步)/ Meilisearch(升级)/ pgvector(AI)。每一层都用最合适的工具,通过 content-contract 契约层统一类型源。