📖 文档即增长
好的文档 = 免费的增长飞轮。Docusaurus/Mintlify/Nextra 选型、API 文档自动生成、教程驱动 SEO
📊 为什么文档是增长引擎
Stripe 的文档被认为是其成功的关键因素之一。当开发者在 Google 搜索"如何集成支付"时,Stripe 的文档总是排在第一页——这不是偶然,是精心设计的 SEO 策略。据估计,Stripe 文档每年带来的自然搜索流量价值超过 $10M 的广告支出。
🎯 文档驱动的增长飞轮
写教程 → Google 索引 → 开发者搜索 → 发现你的项目 → 使用 → 遇到问题搜文档 → 找到答案 → 不需要支持 → 更满意 → 写博客推荐 → 更多开发者搜索。这个飞轮一旦转起来,你的获客成本趋近于零。
🔧 文档框架对比
| 维度 | Docusaurus | Mintlify | Nextra | GitBook |
| 开源 | ✅ MIT | ❌ SaaS | ✅ MIT | ❌ SaaS |
| 自部署 | ✅ | ❌ | ✅ | ❌ |
| 设计质量 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐ | ⭐⭐⭐⭐ |
| 版本化 | ✅ 开箱即用 | ✅ | ⚠️ 需配置 | ✅ |
| 全文搜索 | Algolia | AI 搜索 | Pagefind | 内置 |
| API 交互 | 需插件 | ✅ 内置 | 需插件 | ✅ 内置 |
| i18n | ✅ 内置 | ✅ | Next.js i18n | ✅ |
| 成本 | $0 | $0-$120+/月 | $0 | $0-$6.5/成员/月 |
🔍 教程驱动的 SEO
这是最被低估的增长策略:为每个常见问题写一篇详细的教程,让 Google 替你做获客。
# SEO 驱动的文档策略
## 1. 关键词矩阵
列出用户会搜索的所有关键词:
| 关键词 | 文档页面 | 竞争度 |
|--------|----------|--------|
| "how to integrate stripe" | /docs/payments/stripe | 高 |
| "stripe webhook setup" | /docs/webhooks/stripe | 中 |
| "stripe subscription node.js" | /examples/stripe-subscription | 低 |
| "stripe vs braintree 2024" | /blog/stripe-vs-braintree | 高 |
## 2. 每个教程的结构 (SEO 友好)
- H1: 精确匹配搜索词
- 开头 100 字: 直接给答案 (Google Featured Snippet)
- 代码示例: 可复制粘贴
- 截图: 每 3 段一个视觉元素
- FAQ: 底部回答常见问题 (People Also Ask)
## 3. 内链策略
Quick Start → 功能教程 → 高级教程 → API 参考
每个页面至少 3 个内部链接
## 4. URL 结构
/docs/getting-started ← 短且有含义
/docs/integrations/stripe ← 分类清晰
/examples/stripe-subscription ← 示例单独分区
🤖 API 文档自动生成
# OpenAPI / Swagger 自动生成 API 文档
# 1. 用 Zod 定义 Schema (TypeScript)
import { z } from 'zod';
const UserSchema = z.object({
id: z.string().uuid().describe('用户唯一标识'),
name: z.string().min(1).describe('用户名'),
email: z.string().email().describe('邮箱地址'),
role: z.enum(['admin', 'member']).describe('角色'),
});
# 2. Zod → JSON Schema → OpenAPI
npm install zod-to-openapi
import { OpenAPIRegistry, OpenApiGeneratorV3 } from '@asteasolutions/zod-to-openapi';
const registry = new OpenAPIRegistry();
registry.registerPath({
method: 'get',
path: '/api/users/{id}',
summary: '获取用户信息',
description: '根据 ID 获取用户的详细信息',
request: {
params: z.object({ id: z.string().uuid() }),
},
responses: {
200: {
description: '用户信息',
schema: UserSchema,
},
404: {
description: '用户不存在',
},
},
});
const generator = new OpenApiGeneratorV3(registry.definitions);
const openApiDoc = generator.generateDocument({
openapi: '3.0.0',
info: { title: 'My API', version: '1.0.0' },
});
# 3. 生成交互式文档
# 使用 Scalar / Redoc / Swagger UI
npx @redocly/cli build-docs openapi.yaml -o docs/api.html
🍳 Cookbook / Examples 策略
Cookbook(食谱)模式是最被低估的文档策略。不是教"概念",而是直接给"食谱"——用户复制粘贴就能跑。
# Cookbook 结构示例
/examples/
/stripe-subscription/ ← 一个完整可运行的示例
README.md ← 5 行说明
package.json ← 依赖锁定
index.ts ← 核心代码
.env.example ← 环境变量模板
/auth-jwt/
/file-upload-s3/
/rate-limiting-redis/
/webhook-signature/
# README.md 模板
# Stripe 订阅集成
5 分钟实现 Stripe 订阅支付。
\`\`\`bash
git clone https://github.com/your-repo/examples
cd stripe-subscription
cp .env.example .env # 填入你的 Stripe Key
npm install && npm start
\`\`\`
就是这么简单!完整教程 → [链接]
💡 Stripe 的文档秘诀
Stripe 的文档为什么是最好的?因为每一段文档都经历了"开发者视角"审查:① 是否可以直接复制粘贴?② 是否有真实可运行的代码?③ 截图是否与当前 UI 一致?④ 错误信息是否有说明?这种"替用户想三步"的文档哲学,是 Stripe 成为开发者最喜爱的支付 API 的核心原因。
🔗 相关专题
📝 README 模板 · ✍️ 技术写作 · 🔥 病毒式增长 · 📢 返回首页