Skip to main content

Introduction to @rhtml

@rhtml is a modern, reactive web framework that combines the power of Web Components, RxJS, and dependency injection to create scalable, maintainable applications. Built with TypeScript and designed for both frontend and backend development, @rhtml provides a unified development experience.

πŸš€ Quick Start​

Frontend Development​

# Create a new @rhtml project
git clone https://github.com/rxdi/starter-client-side-lit-html my-frontend
cd my-frontend

# Install dependencies
npm install

# Start development server
npm start

Backend Development​

# Clone the fastify starter template
git clone https://github.com/r-html/fastify-starter my-backend
cd my-backend

# Install dependencies
npm install

# Create environment file
cp .env.example .env

# Start development server
npm start

✨ Core Features​

  • Reactive Programming: Native RxJS integration for reactive data flows
  • Web Components: Build reusable components with Web Components standards
  • Dependency Injection: Powerful DI container inspired by Angular
  • TypeScript First: Full TypeScript support with excellent IDE integration
  • Full Stack: Frontend and backend development in one framework
  • Performance: Built on Web Components and LitElement for optimal performance
  • Developer Experience: Excellent tooling and debugging support

πŸ“¦ Core Packages​

Frontend Packages​

PackageDescriptionRepository
@rhtml/componentFunctional reactive componentsCore Repository
@rxdi/lit-htmlFirst generation Web ComponentsRxDI Repository
@rhtml/componentsPre-built UI componentsCore Repository
@rhtml/rendererComponent rendering engineCore Repository
@rhtml/hooksReact-like hooks for componentsCore Repository
@rhtml/operatorsReactive operators (r-for, r-if, etc.)Core Repository
@rhtml/decoratorsHost bindings and listenersCore Repository
@rhtml/custom-attributesCustom HTML attributesCore Repository
@rhtml/modifiersLayout and animation modifiersCore Repository
@rhtml/experimentsMonadic components and patternsCore Repository

Backend Packages​

PackageDescriptionRepository
@rhtml/diIOC container for dependency injectionCore Repository
@rhtml/fastifyFastify server integration with decoratorsCore Repository
@rhtml/fastify-starterStarter template for backend developmentFastify Starter
@rhtml/mongooseMongoDB integration with reactive patternsCore Repository
@rhtml/amqpAMQP message queue integrationCore Repository
@rhtml/schematicsAngular-like schematics for component generationCore Repository

πŸ—οΈ Architecture Overview​

@rhtml follows a modular architecture that separates concerns while maintaining tight integration:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Frontend β”‚ β”‚ Backend β”‚ β”‚ Shared β”‚
β”‚ β”‚ β”‚ β”‚ β”‚ β”‚
β”‚ β€’ Components β”‚ β”‚ β€’ Controllers β”‚ β”‚ β€’ DI Container β”‚
β”‚ β€’ Reactive β”‚ β”‚ β€’ Services β”‚ β”‚ β€’ Types β”‚
β”‚ β€’ Web Componentsβ”‚ β”‚ β€’ Fastify β”‚ β”‚ β€’ Utilities β”‚
β”‚ β€’ Operators β”‚ β”‚ β€’ GraphQL β”‚ β”‚ β€’ Schematics β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

🎯 Key Concepts​

1. Reactive Programming​

@rhtml embraces reactive programming with RxJS, allowing you to build responsive applications with declarative data flows.

2. Web Components​

Build truly reusable components that work across frameworks and can be shared between projects.

3. Dependency Injection​

Manage application state and services with a powerful DI container that promotes testability and maintainability.

4. Functional Reactive Components​

Advanced component system that combines functional programming with reactive state management.

5. Full-Stack Development​

Write both frontend and backend code using the same patterns and tools.

πŸ“š Documentation Structure​

1. Getting Started​

2. Core Concepts​

3. Advanced Topics​

πŸŽ“ Learning Path​

  1. Start with Installation - Set up your development environment
  2. Learn Components - Understand the component systems
  3. Explore State Management - Master reactive state patterns
  4. Build Backend APIs - Create controllers and services
  5. Advanced Patterns - Dive into GraphQL, decorators, and optimization

πŸ€” Why Choose @rhtml?​

  • Reactive by Design: Built for reactive programming from the ground up
  • Component Based: True Web Components with excellent composition
  • Dependency Injection: Enterprise-grade service management
  • TypeScript First: Full type safety and excellent IDE support
  • Performance: Minimal overhead with maximum efficiency
  • Developer Experience: Excellent tooling and debugging
  • Comprehensive: Frontend and backend in one framework
  • Standards Based: Built on Web Components and modern standards

πŸš€ Next Steps​

Ready to build something amazing? Let's get started! πŸš€