Generate markdown documentation for a module or feature
You are creating proper markdown documentation for a feature or guide in the Documenso documentation site.
Read WRITING_STYLE.md first for tone, formatting conventions, and anti-patterns to avoid.
apps/docs/content/docs/ for documentation to update.meta.json if creating a new page.This project uses Fumadocs. All documentation lives in apps/docs/content/docs/ as MDX files. The docs app is a Next.js app at apps/docs/.
apps/docs/content/docs/
├── index.mdx # Landing page with audience navigation
├── meta.json # Root navigation: guides + resources
├── users/ # Application usage guides
│ ├── meta.json # { "root": true, "pages": [...] }
│ ├── getting-started/ # Account creation, first document
│ ├── documents/ # Upload, recipients, fields, send
│ │ └── advanced/ # AI detection, visibility, placeholders
│ ├── templates/ # Create and use templates
│ ├── organisations/ # Overview, members, groups, SSO, billing
│ │ ├── single-sign-on/
│ │ └── preferences/
│ └── settings/ # Profile, security, API tokens
├── developers/ # API and integration docs
│ ├── meta.json # { "root": true, "pages": [...] }
│ ├── getting-started/ # Authentication, first API call
│ ├── api/ # Documents, recipients, fields, templates, teams
│ ├── webhooks/ # Setup, events, verification
│ ├── embedding/ # Authoring, direct links, CSS vars, SDKs
│ │ └── sdks/ # React, Vue, Svelte, Solid, Preact, Angular
│ ├── examples/ # Common workflows
│ ├── local-development/ # Quickstart, manual, translations
│ └── contributing/ # Contributing translations
├── self-hosting/ # Self-hosting documentation
│ ├── meta.json # { "root": true, "pages": [...] }
│ ├── getting-started/ # Quick start, requirements, tips
│ ├── deployment/ # Docker, docker-compose, Kubernetes, Railway
│ ├── configuration/ # Environment, database, email, storage
│ │ ├── signing-certificate/ # Local, Google Cloud HSM, timestamp
│ │ └── advanced/ # OAuth providers, AI features
│ └── maintenance/ # Upgrades, backups, troubleshooting
├── concepts/ # Shared across audiences
│ └── ... # Document lifecycle, field types, signing
├── compliance/ # eSign, GDPR, standards, certifications
└── policies/ # Terms, privacy, security, licenses
| Type | Location | When to use |
|---|---|---|
| User Guide | apps/docs/content/docs/users/<section>/ | UI workflows for using the Documenso web app |
| Developer Guide | apps/docs/content/docs/developers/<section>/ | API reference, SDK guides, webhooks, embedding |
| Self-Hosting | apps/docs/content/docs/self-hosting/<section>/ | Deployment, configuration, environment variables |
| Concept | apps/docs/content/docs/concepts/ | Cross-audience concepts (document lifecycle, etc.) |
| Compliance | apps/docs/content/docs/compliance/ | Legal and regulatory documentation |
Each directory has a meta.json controlling navigation order:
{
"title": "Section Title",
"pages": ["getting-started", "documents", "templates"]
}
Top-level audience sections use "root": true:
{
"title": "Users",
"description": "Send and sign documents",
"root": true,
"pages": ["getting-started", "documents", "templates", "organisations", "settings"]
}
Root meta.json uses ---Label--- for section dividers:
{
"title": "Documentation",
"pages": [
"---Guides---",
"users",
"developers",
"self-hosting",
"---Resources---",
"concepts",
"compliance",
"policies"
]
}
Every page needs frontmatter:
---