ADR-0001: Adopt Docusaurus for Portfolio Documentation
Purpose
Record the decision to use Docusaurus as the documentation platform for the portfolio program, including tradeoffs, consequences, and validation criteria.
Scope
Use when
- establishing the baseline documentation platform for the portfolio program
- selecting a documentation tool that supports enterprise navigation, governance, and CI gates
Do not use when
- selecting minor plugins or small presentation tweaks (unless they materially change the platform posture)
Prereqs / Inputs
- Decision owner(s): Portfolio maintainer
- Date: 2026-01-06
- Status: Accepted
- Related work items: N/A (initial platform decision)
- Related risks:
- supply chain and dependency risk inherent to Node-based toolchains
- risk of publishing sensitive information
- risk of navigation/IA drift as docs scale
Decision Record
Title
ADR-0001: Adopt Docusaurus for Portfolio Documentation
Context
The portfolio program requires a documentation system that is:
- Markdown-first and author-friendly in VS Code (WSL2)
- version-controlled and PR-governed (docs-as-code)
- scalable to an enterprise-style information architecture
- able to enforce quality gates (build fails on broken links)
- deployable publicly with a professional UI/UX suitable for portfolio reviewers
- capable of hosting technical diagrams and structured, navigable documentation
Decision
Adopt Docusaurus (TypeScript) as the documentation platform, using:
- filesystem-driven docs under
docs/ - autogenerated sidebar strategy governed by
_category_.json pnpmas the package manager- CI quality gate requiring
pnpm buildto pass before merge
Alternatives considered
-
MkDocs + Material
- Pros:
- fast, stable, simple static site pipeline
- excellent theme and search ecosystem
- Cons:
- less aligned with modern JS/TS portfolio narrative (if you want interactive documentation patterns)
- customization and “app-like” UX patterns may require more work
- Why not chosen:
- Docusaurus better fits a portfolio program where documentation is part of a modern web engineering story.
- Pros:
-
Obsidian + Quartz
- Pros:
- exceptional local authoring experience (linking/graph)
- good for rapid ideation and personal knowledge management
- Cons:
- governance and structured enterprise navigation requires additional conventions/tooling
- can drift toward personal note-taking rather than polished product documentation
- Why not chosen:
- this repository prioritizes enterprise-grade public documentation over a personal PKM-first workflow.
- Pros:
-
Custom Next.js docs
- Pros:
- maximum control; consistent with full-stack portfolio stack
- Cons:
- higher maintenance and greater risk of “building the platform instead of the content”
- requires re-implementing many doc-native features (sidebars, versioning patterns, doc search)
- Why not chosen:
- Docusaurus provides a strong baseline with less platform engineering overhead.
- Pros:
Consequences
-
Positive consequences:
- Strong, industry-recognizable docs-as-code platform
- Scales to large doc sets with predictable navigation and category governance
- Professional “product docs” presentation suitable for external reviewers
- Tight integration with CI gates (
pnpm build)
-
Negative consequences / tradeoffs:
- Node dependency surface introduces supply chain considerations
- Requires discipline to avoid overusing MDX and turning docs into “app code”
- Requires consistent IA governance to prevent nav drift
-
Operational impact:
- Docs site becomes a deployable artifact; requires deploy/rollback runbooks
- Build failures (links, structure) block merges and must be triaged quickly
-
Security impact:
- Must enforce strict “no secrets” publication rules
- Must manage dependency updates and CI integrity as first-class concerns
-
Cost/complexity impact:
- Moderate complexity relative to MkDocs, but justified by capability and portfolio alignment
Implementation notes (high-level)
- Scaffold Docusaurus with TypeScript and pnpm.
- Implement:
docs/index.mdas the landing entrypoint- top-level domain folders (
00-…70-…) each with_category_.json+index.md - internal-only scaffolding under
docs/_meta/(underscore-prefixed, not public)
- Add CI:
- must run
pnpm buildand fail on broken links.
- must run
Validation / Expected outcomes
- Local validation:
pnpm startrenders site with coherent sidebarpnpm buildsucceeds deterministically
- Governance validation:
- PR-only merges; build gate enforced
- adding a new folder +
_category_.jsonreliably produces coherent navigation
- Reviewer validation:
- “Start here” path is obvious and leads to domain and project dossiers
Failure modes / Troubleshooting
- Build instability due to dependency drift:
- mitigation: pinned toolchain expectations; lockfile discipline; review dependency changes
- Navigation entropy:
- mitigation: enforce
_category_.json+ index hubs; consistent positions and naming
- mitigation: enforce
- Accidental sensitive publication:
- mitigation: strict policy + scanning + incident response procedure
References
- Project dossier (Portfolio Docs App):
docs/60-projects/portfolio-docs-app/ - Docs landing:
docs/index.md - DevOps platform docs:
docs/30-devops-platform/ - Security posture docs:
docs/40-security/ - Operations docs:
docs/50-operations/