2026-02-08 20:12:31 +00:00
# Rustelo Feature-Based Architecture Overview
## Architecture Vision
Rustelo has been transformed from a basic framework into a modular, feature-composable system that preserves all advanced functionality from p-jpl-website while enabling clean composition and reuse.
## Core Structure
```
rustelo/
├── framework/ # Core framework crates
│ └── crates/
│ ├── rustelo-core/
│ ├── rustelo-web/
│ ├── rustelo-auth/
│ ├── rustelo-content/
│ └── rustelo-cli/ # Enhanced CLI with feature management
├── foundation/ # Advanced blueprint from p-jpl-website
│ └── crates/
│ ├── client/ # Advanced Leptos client
│ ├── server/ # Advanced Axum server
│ ├── core-lib/ # Sophisticated shared library
│ ├── core-types/ # Enhanced type system
│ ├── components/ # Rich UI component library
│ ├── pages/ # Advanced page generation
│ ├── tools/ # Development tools and analytics
│ └── utils/ # Utility functions
├── features/ # Modular features
│ ├── analytics/ # Comprehensive analytics system
│ ├── smart-build/ # Incremental build system
│ ├── debugging-tools/ # Enhanced debugging capabilities
│ └── ui-components/ # Reusable Leptos components
├── registry/ # Central configuration
│ ├── dependencies.toml # Centralized dependency versions
│ └── features.toml # Feature registry and metadata
└── templates/ # Project scaffolding templates
```
## Key Architectural Principles
### 1. Language Agnostic Design
- No hardcoded languages in the framework
- Dynamic language discovery from configuration
- i18n integration with Fluent files
- Language-specific routing without code changes
### 2. Configuration-Driven Architecture
- All paths configurable via environment variables
- Route definitions in TOML files, not code
- Content types via `content-kinds.toml`
- Feature composition through configuration
### 3. Modular Design
- Features are self-contained and composable
- Clean interfaces between components
- Dependency injection patterns
- Zero breaking changes policy
### 4. Dependency Priority System
- p-jpl-website dependencies take priority
- Registry-based version management
- Conflict detection and resolution
- Workspace dependency coordination
## Integration Levels
The system provides integration at all stack levels:
### 1. Dependencies
- **Cargo.toml**: Workspace dependencies and external crates
- **package.json**: Node.js dependencies for tooling
- **Registry**: Centralized version management
### 2. Environment
- **.env**: Environment variables and configuration
- **Secrets**: Secure handling of sensitive values
- **Defaults**: Sensible default values
### 3. Configuration
- **TOML/JSON**: Intelligent config file merging
- **Override**: Feature-specific configuration
- **Validation**: Configuration integrity checks
### 4. Resources
- **Public**: Static assets (JS, CSS, images)
- **Site**: Content and documentation files
- **i18n**: Translation files (Fluent .ftl)
### 5. Styling
- **UnoCSS**: Atomic CSS with feature presets
- **Themes**: Feature-specific theme extensions
- **Components**: Styled component libraries
### 6. Infrastructure
- **Docker**: Service composition and deployment
- **CI/CD**: Automated testing and deployment
- **Monitoring**: Observability and alerting
### 7. Development
- **Scripts**: Nushell automation scripts
- **Just**: Task runner integration
- **Git**: Hooks and workflow automation
## Feature Lifecycle
```
Discovery → Installation → Configuration → Integration → Usage → Removal
```
### Discovery
- Browse available features in registry
- Check feature compatibility
- Review feature documentation
### Installation
- Dependency resolution and conflict detection
- Resource copying and integration
- Configuration merging and validation
### Configuration
- Environment variable setup
- Feature-specific configuration
- Integration validation
### Integration
- All stack levels integrated automatically
- Dependency injection and wiring
- Testing and validation
### Usage
- Feature APIs and functionality available
- Documentation and examples provided
- Monitoring and analytics enabled
### Removal
- Clean removal of all feature artifacts
- Dependency cleanup and validation
- Configuration restoration
## Migration Strategy
The architecture preserves backward compatibility while enabling gradual migration:
1. **Existing rustelo users** : Continue using basic functionality
2. **p-jpl-website users** : Full feature set available as composable features
3. **New users** : Start with foundation + selected features
4. **Advanced users** : Create custom features and compositions
## Success Metrics
✅ **Achieved Goals:**
- All p-jpl-website functionality preserved as features
- Zero hardcoded dependencies or paths
- Clean feature addition/removal
- No breaking changes for existing users
- Single command project creation
- Complete resource integration
- Feature composition without conflicts
2026-02-08 20:37:49 +00:00
- Clean separation of concerns