vs. Traditional Documentation
Learn how Cortex TMS differs from README files, wikis, and conventional docs.
You are evaluating documentation tools and wondering: Should I use Docusaurus or Cortex TMS?
Short answer: Both. They solve different problems.
Docusaurus builds beautiful, public-facing documentation websites for your product. Think Stripe docs, React docs, Tailwind CSS docs.
Cortex TMS structures in-repo governance files that AI coding assistants read to understand your architectural decisions and coding patterns.
They are complementary, not competitive. Many teams use both: Docusaurus for external product documentation, Cortex TMS for internal AI governance.
Docusaurus is a static site generator built by Meta (Facebook). It transforms Markdown files into a polished documentation website with:
Perfect for:
Examples:
Cortex TMS is a documentation scaffolding CLI that structures your in-repo governance files for AI agents to read. It creates files like:
NEXT-TASKS.md (current sprint, under 200 lines)docs/core/PATTERNS.md (code conventions with canonical examples)docs/core/ARCHITECTURE.md (tech stack and architectural decisions)docs/adr/ (Architecture Decision Records)CLAUDE.md (AI workflow configuration)Perfect for:
Examples:
| Dimension | Docusaurus | Cortex TMS |
|---|---|---|
| Purpose | Public-facing product documentation | Internal architectural governance |
| Primary Audience | End users, API consumers, community | Developers, AI coding assistants |
| Output Format | Static website (HTML/CSS/JS) | Markdown files in repository |
| Hosting | Vercel, Netlify, GitHub Pages | Git repository (no hosting needed) |
| UI | Beautiful web interface with search, navigation | Plain Markdown files (read in IDE or CLI) |
| Versioning | Built-in versioned docs (v1, v2, v3) | Git history (conventional commits) |
| Search | Algolia DocSearch, local search | IDE search, grep, GitHub search |
| Internationalization | Full i18n support (multi-language) | Not applicable (governance is usually in English) |
| Content Type | Product features, API references, tutorials | Architecture decisions, code patterns, current sprint |
| Update Frequency | Major releases, feature launches | Daily (as code evolves) |
| Maintenance | Manual updates, versioned releases | Automated validation via CLI |
| Enforcement | None (documentation is informational) | CLI validation, CI/CD checks |
| AI Consumption | Not optimized for AI (web UI focused) | Optimized for AI (structured Markdown, tiered memory) |
| Context Budget | Not a concern (humans browse) | Critical (AI agents have token limits) |
| Canonical Examples | Code snippets in docs (may be outdated) | Links to actual code in repo (always current) |
| Local Dev | Requires build step (Docusaurus dev server) | No build step (just Markdown files) |
| Complexity | Medium (requires Node.js, build config) | Low (CLI scaffolds files, no build) |
| Learning Curve | Medium (learn Docusaurus config, MDX) | Low (standard Markdown, simple CLI) |
| Cost | Free (hosting costs only) | Free (open source CLI) |
Problem: Your product has complex features. Users need tutorials, API references, and guides.
Solution: Build a Docusaurus site:
Output: A public website at docs.yourproduct.com with:
Users experience:
docs.yourproduct.com/api/authenticationPerfect for product documentation.
Problem: Your team uses AI coding assistants. AI generates code that works but violates your architecture.
Solution: Scaffold a TMS structure:
Output: Structured documentation in your repository that AI agents read automatically.
Developers experience:
docs/core/PATTERNS.md#authenticationPerfect for AI governance and developer onboarding.
Many successful teams use both Docusaurus and Cortex TMS. They serve different audiences and different purposes.
Vercel (the company behind Next.js) uses a similar dual-documentation strategy:
Audience: Next.js users (external developers)
Location: nextjs.org/docs
Content:
Tech: Custom static site generator (similar to Docusaurus)
Purpose: Help developers learn and use Next.js
Updated: Every major release (v13, v14, v15)
Audience: Vercel engineers (internal developers)
Location: Private GitHub repository (not public)
Content (inferred from public statements):
Tech: Markdown files in repository (likely similar to TMS)
Purpose: Ensure consistent implementation across 100+ engineers
Updated: Daily (as codebase evolves)
Key insight: Public docs explain how to use the product. Internal governance explains how to build the product.
For projects that need both public and internal documentation:
Content division:
TMS files (docs/ root level):
Docusaurus files (website/docs/):
Use this decision tree to determine if you need Docusaurus, Cortex TMS, or both.
Yes → You likely need Docusaurus
External users need:
No → Docusaurus is optional
Internal tools or private projects do not need public documentation sites.
Yes → You likely need Cortex TMS
AI coding assistants (Claude Code, Copilot, Cursor) need:
No → Cortex TMS is optional
If you do not use AI tools, traditional documentation (README, wiki) is sufficient.
Yes → You likely need Cortex TMS
Even without AI agents, TMS helps enforce:
No → Cortex TMS is optional
If your project is simple enough that everyone knows the patterns, TMS adds overhead without benefit.
Yes → You likely need Docusaurus
Versioned documentation is hard to manage in Markdown files. Docusaurus makes it easy:
/docs/v1/ for version 1 users/docs/v2/ for version 2 usersNo → Docusaurus is optional
If you only support the latest version, Markdown in your repo is sufficient.
| Scenario | Docusaurus | Cortex TMS |
|---|---|---|
| Open source library with public API | ✅ Yes | ✅ Yes (if AI contributors) |
| SaaS product with complex features | ✅ Yes | ✅ Yes (internal governance) |
| Internal company tool (no external users) | ❌ No | ✅ Yes (if AI usage) |
| Solo developer hobby project | ❌ No | ❌ No (README is enough) |
| Startup with distributed team | ⚠️ Maybe | ✅ Yes (async governance) |
| Enterprise monorepo (100+ developers) | ⚠️ Maybe | ✅ Yes (enforce patterns) |
| Open source with 10+ maintainers | ✅ Yes | ✅ Yes (contributor alignment) |
| Mobile app (no API, no SDK) | ❌ No | ⚠️ Maybe (internal patterns) |
| CLI tool for developers | ✅ Yes | ✅ Yes (if complex) |
| Documentation site for a framework | ✅ Yes | ✅ Yes (maintainer governance) |
Legend:
Let’s walk through a concrete example: You are building an authentication SDK for web developers.
Product: AuthKit - A drop-in authentication solution for Next.js applications
Features:
Team: 5 engineers, using Claude Code and GitHub Copilot
Users: External developers (JavaScript/TypeScript developers using Next.js)
Audience: Developers using AuthKit in their applications
Location: https://docs.authkit.dev
Content:
Getting Started:
# Quick Start
Install AuthKit:
npm install @authkit/nextjs
Add the provider to your app:
// app/layout.tsximport { AuthProvider } from '@authkit/nextjs';
export default function RootLayout({ children }) { return ( <AuthProvider> {children} </AuthProvider> );}
Protect a route:
// app/dashboard/page.tsximport { requireAuth } from '@authkit/nextjs';
export default requireAuth(function Dashboard() { return <div>Protected Dashboard</div>;});API Reference:
<AuthProvider> component propsuseAuth() hook return valuesrequireAuth() middleware optionssignIn() function parametersGuides:
Purpose: Help users integrate AuthKit into their applications
Audience: Engineers building AuthKit (internal team)
Location: github.com/yourcompany/authkit (private repo)
Content:
NEXT-TASKS.md:
# NEXT: Upcoming Tasks
## Active Sprint: OAuth Provider Refactoring
**Why this matters**: Current implementation duplicates codeacross Google, GitHub, Facebook providers. Need DRY approach.
| Task | Effort | Priority | Status || :--- | :----- | :------- | :----- || Extract base OAuth provider class | 3h | HIGH | In Progress || Migrate Google provider to base class | 2h | HIGH | Todo || Migrate GitHub provider to base class | 2h | MEDIUM | Todo || Update tests for new structure | 2h | MEDIUM | Todo |
## Definition of Done
- All providers extend BaseOAuthProvider- Zero code duplication across providers- Tests pass with 90+ percent coverage- Pattern documented in PATTERNS.mddocs/core/PATTERNS.md:
## OAuth Provider Pattern
**Canonical Example**: `src/providers/GoogleOAuthProvider.ts`
All OAuth providers must extend BaseOAuthProvider:
```typescript// src/providers/BaseOAuthProvider.tsexport abstract class BaseOAuthProvider { abstract getAuthUrl(): string; abstract exchangeCodeForToken(code: string): Promise<Token>; abstract getUserProfile(token: Token): Promise<User>;}
// src/providers/GoogleOAuthProvider.tsexport class GoogleOAuthProvider extends BaseOAuthProvider { getAuthUrl() { return `https://accounts.google.com/o/oauth2/v2/auth?...`; } // ... implement abstract methods}Critical Rules:
**docs/adr/0003-base-oauth-provider.md**:```markdown# ADR-003: Extract Base OAuth Provider Class
**Date**: 2026-01-18**Status**: Accepted
## Context
We support 3 OAuth providers: Google, GitHub, Facebook.Each provider duplicates 60 percent of the same code.
## Decision
Extract common OAuth logic into BaseOAuthProvider abstract class.
## Rationale
**Benefits**:- DRY (Don't Repeat Yourself) principle- Easier to add new providers (extend base class)- Security improvements in base class benefit all providers- Consistent error handling across providers
**Trade-offs**:- Slightly more abstraction- Need to migrate existing providers
## Consequences
All new OAuth providers MUST extend BaseOAuthProvider.Purpose: Ensure team implements OAuth providers consistently
Scenario 1: External Developer Integrates AuthKit
docs.authkit.dev (Docusaurus)Docusaurus served its purpose: Beautiful, searchable, user-facing documentation.
Scenario 2: Internal Engineer Adds New OAuth Provider
NEXT-TASKS.md (sees OAuth refactoring context)docs/core/PATTERNS.md#oauth-provider-patternsrc/providers/GoogleOAuthProvider.tsMicrosoftOAuthProvider.ts extending BaseOAuthProviderCortex TMS served its purpose: AI generated consistent code following internal patterns.
Scenario 3: External Developer Reports Bug
docs/core/PATTERNS.md#error-handlingBoth served their purpose: TMS enabled consistent fix, Docusaurus communicated fix to users.
Reality: Docusaurus is optimized for web presentation, not AI consumption.
AI agents do not browse Docusaurus websites. They read Markdown files in your repository.
You could put all your governance in Docusaurus docs, but:
Better: Keep governance in main repository (TMS), public docs in Docusaurus.
Reality: TMS files are not designed for public consumption.
TMS files contain internal governance:
External users do not need this information. They need:
Better: Use TMS for internal governance, Docusaurus for user documentation.
Reality: GitHub wikis are separate from your repository.
AI agents do not read GitHub wikis by default. They read files in the repo.
GitHub wikis are also:
Better: Use in-repo documentation (TMS) that AI reads automatically.
Reality: Docusaurus initial setup is 30 minutes, then it just works.
npx create-docusaurus@latest website classiccd websitenpm startYou get:
Complexity comes later if you customize heavily, but for basic documentation, Docusaurus is straightforward.
Scenario: You have a Docusaurus site with public docs. You want to add internal governance for AI agents.
Strategy:
website/ subdirectory (unchanged)npx cortex-tms initSeparate content:
Example structure:
No conflict: TMS is in docs/ root, Docusaurus is in website/.
Scenario: You have TMS governance files. Your project grew and now you need public documentation.
Strategy:
website/ subdirectory:npx create-docusaurus@latest website classicMigrate public-facing content:
website/docs/intro.mdwebsite/docs/api/docs/core/PATTERNS.md (TMS)Update links:
Result: Public documentation separate from internal governance.
Strategy:
npx cortex-tms initMost projects start with TMS, add Docusaurus if they grow.
Example: Marketing website with product tutorials.
Example: Internal company monorepo.
Example: Open source framework with 10+ maintainers.
Partially. You can symlink or copy TMS files into Docusaurus:
module.exports = { plugins: [ [ '@docusaurus/plugin-content-docs', { id: 'internal', path: '../docs/core', // Point to TMS files routeBasePath: 'internal', }, ], ],};But: TMS files are designed for AI consumption, not web presentation. They lack:
Better: Keep them separate. Link to TMS files on GitHub for contributors.
Yes, but inefficiently. AI would need to:
Better: Keep governance in main repo (TMS), let AI read those files directly.
TMS is easier (plain Markdown files, no build step).
Docusaurus requires:
Trade-off: Docusaurus gives you beautiful UI, but requires more maintenance.
Yes. Starlight is an Astro-based documentation framework (similar to Docusaurus).
The comparison between TMS and Starlight is the same:
They are complementary.
Notion/Confluence are great for collaborative wikis, but:
Strategy:
Each tool serves a different purpose.
vs. Traditional Documentation
Learn how Cortex TMS differs from README files, wikis, and conventional docs.
When to Use Cortex TMS
Decision framework: Is Cortex TMS right for your project?
Quick Start
Install Cortex TMS and scaffold your first governance structure.
Integrating AI Agents
Configure Claude Code, GitHub Copilot, and Cursor to read TMS files.
The question is not “Docusaurus OR Cortex TMS.”
The question is: Who is your audience?
External users (developers using your product) → Docusaurus
Internal developers (engineers building your product) → Cortex TMS
Both audiences → Use both
Think of it this way:
You would not hand your operations manual to customers. You would not build your product using only the storefront brochure.
Different tools for different jobs.