docs/
├── conf.py ✓ Sphinx configuration with sphinx_tabs, MyST, RTD theme
├── Makefile ✓ Build commands using uv
├── make.bat ✓ Windows build commands
├── requirements.txt ✓ Dependencies (legacy)
├── README.md ✓ Build instructions
│
├── index.rst ✓ Landing page with quick examples
├── getting-started.rst ✓ Installation & first programs (with tabs)
├── core-concepts.rst ✓ Architecture deep-dive (with tabs)
├── examples.rst ✓ Comprehensive examples (with tabs)
├── worker-protocol.rst ✓ Complete protocol specification
├── faq.rst ✓ Frequently asked questions
├── alternatives.rst ✓ Comparison with other tools
│
├── _static/ ✓ Static assets directory
└── _templates/ ✓ Custom templates directory
/
├── pyproject.toml ✓ Dependency groups for docs (uv/PEP 735)
├── .readthedocs.yaml ✓ ReadTheDocs hosting configuration
└── .gitignore ✓ Ignore build artifacts and venvs
/
├── CLAUDE.md ✓ Complete guide for future Claude instances
├── DOCUMENTATION.md ✓ Overview of documentation system
├── CONTRIBUTING.md ✓ Contribution guidelines
└── SUMMARY.md ✓ This file
- 🔀 Language Tabs: Java and Python examples side-by-side throughout
- 📋 Copy Buttons: One-click code copying with sphinx_copybutton
- 📝 Markdown Support: Both .rst and .md via MyST Parser
- ⚡ uv Integration: Fast dependency management following pyimagej pattern
- 🎨 RTD Theme: Clean, responsive Read the Docs theme
- 📚 Comprehensive: 7 main pages covering all aspects of Appose
┌─────────────────────────────────────────────────────────────┐
│ Appose Project │
├─────────────────────────────────────────────────────────────┤
│ │
│ appose/ (THIS REPO - Documentation) │
│ ├── README.md Protocol spec + overview │
│ ├── CLAUDE.md Guide for Claude Code │
│ └── docs/ Full Sphinx documentation │
│ │
│ appose-java/ Java implementation │
│ ├── src/ Java source code │
│ ├── README.md Java-specific README │
│ └── CLAUDE.md Java-specific guidance │
│ │
│ appose-python/ Python implementation │
│ ├── src/ Python source code │
│ └── README.md Python-specific README │
│ │
└─────────────────────────────────────────────────────────────┘
# Build documentation
cd docs
make html
# View documentation
open _build/html/index.html- 7 main pages of comprehensive documentation
- 50+ code examples with language tabs
- Zero warnings in Sphinx build
- Auto-generated table of contents and search index
- Multiple formats: HTML, PDF, EPUB
- Ready for ReadTheDocs hosting
[dependency-groups]
docs = [
"myst-parser>=2.0.0", # Markdown support
"sphinx>=7.0.0", # Core documentation engine
"sphinx-copybutton>=0.5.0", # Copy buttons
"sphinx-rtd-theme>=2.0.0", # Read the Docs theme
"sphinx-tabs>=3.4.0", # Language tabs
]| Page | Purpose | Key Features |
|---|---|---|
index.rst |
Landing page | Quick examples, feature overview |
getting-started.rst |
Onboarding | Installation, prerequisites, first program |
core-concepts.rst |
Deep dive | Builder, Environment, Service, Task, Worker |
examples.rst |
Cookbook | Basic to advanced use cases |
worker-protocol.rst |
Technical spec | Complete protocol for custom workers |
faq.rst |
Q&A | Common questions and troubleshooting |
alternatives.rst |
Comparison | Arrow, NATS, gRPC, ZeroMQ, etc. |
- Language-agnostic core concepts with language-specific examples
- Progressive complexity from basic to advanced
- Side-by-side comparison of Java and Python throughout
- Searchable via Sphinx search index
- Copy-paste ready examples with copy buttons
- Zero warnings build for clean documentation
Edit .rst files → make html → Review in browser → Commit
- ✅ Documentation structure created
- ✅ Build system configured
- ✅ Examples written with language tabs
- ✅ Guides created for future contributors
- 🔲 Set up ReadTheDocs hosting (when ready)
- 🔲 Add custom logo/branding (optional)
- 🔲 Link from language implementation READMEs
To update documentation:
- Edit relevant
.rstfile indocs/ - Run
make htmlto test - Check for warnings (should be zero)
- Commit and push
To update protocol:
- Update
README.md(canonical spec) - Update
docs/worker-protocol.rst(detailed version) - Update language implementation docs
- Keep all in sync
To add new pages:
- Create
.rstfile indocs/ - Add to
toctreeinindex.rst - Follow existing patterns for tabs/formatting
- Test build
- ✅ Documentation builds with zero warnings
- ✅ All examples shown in both Java and Python
- ✅ Comprehensive coverage from basics to advanced
- ✅ Protocol specification fully documented
- ✅ Clear contribution guidelines
- ✅ Future-friendly with CLAUDE.md guidance
- ✅ uv integration following pyimagej pattern
- ✅ Ready for ReadTheDocs hosting
Created with comprehensive language tabs, following the pyimagej uv/Sphinx pattern.