📖 文档即增长

好的文档 = 免费的增长飞轮。Docusaurus/Mintlify/Nextra 选型、API 文档自动生成、教程驱动 SEO

📊 为什么文档是增长引擎

Stripe 的文档被认为是其成功的关键因素之一。当开发者在 Google 搜索"如何集成支付"时,Stripe 的文档总是排在第一页——这不是偶然,是精心设计的 SEO 策略。据估计,Stripe 文档每年带来的自然搜索流量价值超过 $10M 的广告支出。

🎯 文档驱动的增长飞轮

写教程 → Google 索引 → 开发者搜索 → 发现你的项目 → 使用 → 遇到问题搜文档 → 找到答案 → 不需要支持 → 更满意 → 写博客推荐 → 更多开发者搜索。这个飞轮一旦转起来,你的获客成本趋近于零。

🔧 文档框架对比

Docusaurus — Meta 出品的文档标准

技术栈:React + MDX + MD

使用者:Redux、Jest、React Native、IOTA、Temporal、Testing Library

优势:版本化文档、i18n 国际化开箱即用、Algolia 搜索集成、MDX 嵌入 React 组件、强大的插件系统、Facebook/Meta 长期维护

劣势:需要 React 知识定制、构建速度中等、默认主题比较朴素

适合:中大型开源项目、需要多版本文档、需要国际化的团队

部署:免费,静态站点,GitHub Pages / Vercel / Netlify

Mintlify — 最美的文档体验

技术栈:MDX + 自有构建器

使用者:Perplexity、Supabase、Mercado Pago、数百家 SaaS

优势:开箱即用的最美设计、AI 搜索集成、API 演示交互、极低配置门槛、自动 SEO 优化

劣势:SaaS 服务(非纯自部署)、免费版有限制、定制空间不如 Docusaurus

适合:SaaS 产品文档、创业公司、想要"即开即用"漂亮文档的团队

定价:Free(1 项目)→ Pro $120/月 → Enterprise

Nextra — Next.js 原生文档

技术栈:Next.js + MDX

使用者:SWR、Tailwind CSS、Vite、Prisma

优势:与 Next.js 生态完美融合、Pagefind 全文搜索(零配置)、自动图片优化、极快的页面导航

劣势:社区较小、版本化文档需自己实现、i18n 需 Next.js 配置

适合:已经用 Next.js 的团队、想要最简单方案的独立开发者

部署:免费,Vercel 一键部署

维度DocusaurusMintlifyNextraGitBook
开源✅ MIT❌ SaaS✅ MIT❌ SaaS
自部署
设计质量⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
版本化✅ 开箱即用⚠️ 需配置
全文搜索AlgoliaAI 搜索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 模板 · ✍️ 技术写作 · 🔥 病毒式增长 · 📢 返回首页