Build flexible, type-safe content systems that work seamlessly across Node.js, browsers, and service workers
📚 Documentation: rex.inherent.design
🚧 Work in Progress - ReX is in active development. The framework is functional but not yet production-ready. APIs may change and documentation is evolving.
ReX is an advanced content management framework that implements a compositional architecture for managing and distributing content across different environments. Developed by inherent.design, it's designed for developers who need flexible, type-safe content management that works seamlessly in Node.js, browsers, and service workers.
- Compositional Architecture: Function composition over inheritance for maximum flexibility
- Environment Adapters: First-class support for Node.js, browsers, and service workers
- Type Safety: Complete TypeScript interfaces for the entire content system
- MDX Integration: First-class MDX content processing with frontmatter support
- Real-time Changes: Content watching and change detection across environments
- Middleware Pattern: Enhance behavior through functional middleware composition
- Flexible Storage: Multiple storage adapters including filesystem, memory, IndexedDB, and HTTP
- Streaming Content: Reactive streams of content changes using modern patterns
- Content Validation: Schema-based content validation with detailed error reporting
- Pluggable Components: Extensible component system for MDX content
# Clone the repository
git clone https://github.com/inherent-design/ReX.git
cd ReX
# Install dependencies
pnpm install
# Start the development server
pnpm dev
The documentation is built with VitePress and organized into logical sections:
- Business: Value proposition, use cases, and business strategy
- Concepts: Core architectural concepts and design principles
- Guides: Step-by-step guides and cookbooks for common tasks
- Reference: Technical reference for APIs, interfaces, and types
- Project Management: ADRs, planning, and tasks
- Getting Started: Quick start guide
- Key Concepts: Core concepts summary
- Glossary: Standardized terminology definitions
- Architecture Overview: High-level architecture explanation
- Installation Guide: Installation and setup instructions
- Content System Concept: The core content model
- Type Reference: Complete type documentation
- Adapters Documentation: Available storage adapters
- API Reference: Core API documentation
- Implementation Patterns: Reusable implementation patterns
ReX/
├── content/ # Content files (MDX)
│ ├── blog/ # Blog content
│ ├── pages/ # Page content
│ ├── projects/ # Project content
│ └── shared/ # Shared content components
├── docs/ # Documentation (VitePress)
│ ├── business/ # Business documentation
│ ├── concepts/ # Core concepts
│ ├── guides/ # Guides and tutorials
│ ├── project-management/ # Project management
│ │ ├── architecture/ # Architecture Decision Records
│ │ ├── planning/ # Project planning
│ │ ├── reviews/ # Architecture reviews
│ │ └── tasks/ # Task tracking
│ ├── reference/ # Technical reference
│ │ └── types/ # Type reference
│ └── templates/ # Documentation templates
├── src/ # Source code
│ ├── components/ # React components
│ │ ├── content/ # Content-related components
│ │ └── core/ # Core UI components
│ ├── hooks/ # React hooks
│ │ └── content/ # Content-related hooks
│ └── lib/ # Core library
│ ├── content/ # Content system
│ │ ├── adapters/ # Storage adapters
│ │ ├── middleware/ # Enhancement middleware
│ │ ├── processors/ # Content processors
│ │ └── store/ # Content store
│ ├── errors/ # Error system
│ ├── mdx/ # MDX processing
│ ├── telemetry/ # Logging and tracing
│ └── utils/ # Utility functions
└── ... configuration files
# Install dependencies
pnpm install
# Start development server
pnpm dev
# Run tests
pnpm test
# Build for production
pnpm build
# Typecheck
pnpm typecheck
# Lint
pnpm lint
# Build documentation
pnpm docs:dev # Development mode
pnpm docs:build # Production build
MIT © inherent.design