Rustelo/docs/architecture/overview.md
Jesús Pérez 0d0297423e
Some checks failed
CI/CD Pipeline / Test Suite (push) Has been cancelled
CI/CD Pipeline / Security Audit (push) Has been cancelled
CI/CD Pipeline / Performance Benchmarks (push) Has been cancelled
Rust CI / Security Audit (push) Has been cancelled
Rust CI / Check + Test + Lint (nightly) (push) Has been cancelled
Rust CI / Check + Test + Lint (stable) (push) Has been cancelled
CI/CD Pipeline / Build Docker Image (push) Has been cancelled
CI/CD Pipeline / Deploy to Staging (push) Has been cancelled
CI/CD Pipeline / Deploy to Production (push) Has been cancelled
CI/CD Pipeline / Cleanup (push) Has been cancelled
chore: fix with CI and pre-commit
2026-02-08 20:37:49 +00:00

5.2 KiB

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
  • Clean separation of concerns