Rustelo/book/introduction.md

244 lines
9.1 KiB
Markdown
Raw Normal View History

<div align="center">
<img src="../logos/rustelo_dev-logo-h.svg" alt="RUSTELO" width="400" />
</div>
# Welcome to [Rustelo](/)
**[Rustelo](/)** is a modern, secure web application framework built with Rust that provides everything you need to create powerful web applications. Whether you're an end user looking to understand how to use a Rustelo application, or a developer wanting to build with the framework, this comprehensive guide has you covered.
## What is Rustelo?
[Rustelo](/) combines the performance and safety of Rust with modern web development patterns to create a framework that is:
- **🚀 Fast** - Built on Rust's zero-cost abstractions
- **🔒 Secure** - Security-first design with built-in protections
- **📦 Modular** - Choose only the features you need
- **🌐 Modern** - Reactive frontend with server-side rendering
- **🔧 Developer-Friendly** - Excellent tooling and documentation
## Two Guides in One
This documentation serves two distinct audiences:
### 📚 For End Users
If you're using a Rustelo application (blog, CMS, web portal, etc.), the **"For End Users"** sections will teach you:
- How to navigate and use the interface
- How to create and manage content
- How to customize your profile and settings
- How to use security features like 2FA
- How to troubleshoot common issues
### 🔧 For Developers
If you're building applications with Rustelo or contributing to the framework, the **"For Developers"** sections cover:
- Setting up your development environment
- Understanding the architecture and design patterns
- Adding new features and functionality
- Testing strategies and best practices
- Deployment and production considerations
## Key Technologies
Rustelo is built on a modern technology stack:
### Frontend
- **[Leptos](https://leptos.dev/)** - Reactive web framework with SSR and hydration
- **[Tailwind CSS](https://tailwindcss.com/)** - Utility-first styling
- **[DaisyUI](https://daisyui.com/)** - Beautiful component library
- **WebAssembly** - High-performance client-side code
### Backend
- **[Axum](https://github.com/tokio-rs/axum)** - Ergonomic async web framework
- **[Tokio](https://tokio.rs/)** - Async runtime for high concurrency
- **[SQLx](https://github.com/launchbadge/sqlx)** - Compile-time checked SQL queries
- **[Serde](https://serde.rs/)** - Powerful serialization framework
### Database Support
- **PostgreSQL** - Full-featured production database
- **SQLite** - Lightweight development and small-scale deployment
- **Automatic detection** - Works with both seamlessly
## Core Features
### 🔐 Authentication & Security
- **JWT-based authentication** with secure token handling
- **OAuth2 integration** for Google, GitHub, and other providers
- **Two-factor authentication (2FA)** with TOTP support
- **Role-based access control** for fine-grained permissions
- **CSRF protection** and security headers built-in
### 📝 Content Management
- **Rich text editor** with markdown support
- **Media management** for images, videos, and documents
- **Content organization** with categories and tags
- **SEO optimization** with meta tags and structured data
- **Version control** and draft/publish workflows
### 📧 Communication
- **Email system** with multiple provider support (SMTP, SendGrid, AWS SES)
- **Template-based emails** with HTML and text versions
- **Notification system** for user alerts and updates
- **Contact forms** with spam protection
- **Real-time messaging** capabilities
### 🛡️ Enterprise Security
- **HTTPS/TLS encryption** for all communications
- **Rate limiting** to prevent abuse
- **Input validation** and sanitization
- **Audit logging** for compliance
- **Data encryption** at rest and in transit
## Use Cases
### For Content Creators
Perfect for bloggers, writers, and content teams who need:
- Professional publishing platform
- Rich content editing capabilities
- SEO and analytics tools
- User engagement features
### For Businesses
Ideal for companies that need:
- Customer portals and dashboards
- Content management systems
- User authentication and profiles
- Secure document sharing
### For Developers
Excellent for teams building:
- SaaS applications
- E-commerce platforms
- Social applications
- API services
- Custom web applications
### For Educational Institutions
Great for schools and universities needing:
- Student/faculty portals
- Course management systems
- Research collaboration tools
- Secure communication platforms
## Getting Started
### 🚀 For End Users
If you're new to using Rustelo applications:
1. **[What is Rustelo?](./getting-started/what-is-rustelo.md)** - Learn the basics
2. **[User Interface Guide](./users/interface.md)** - Navigate the interface
3. **[Authentication](./users/authentication.md)** - Set up your account
4. **[Content Publishing](./users/content.md)** - Create your first content
### 🔧 For Developers
If you're building with Rustelo:
1. **[Development Environment](./developers/setup/environment.md)** - Set up your tools
2. **[Project Structure](./developers/setup/structure.md)** - Understand the codebase
3. **[System Overview](./developers/architecture/overview.md)** - Learn the architecture
4. **[Adding Features](./developers/features/adding-features.md)** - Build functionality
### ⚙️ For System Administrators
If you're deploying and managing Rustelo:
1. **[Installation](./getting-started/installation.md)** - Install and configure
2. **[Configuration](./configuration/environment.md)** - Environment setup
3. **[Production Deployment](./deployment/production.md)** - Go live securely
4. **[Monitoring](./deployment/monitoring.md)** - Keep it running smoothly
## Why Choose Rustelo?
### Performance
- **Blazing fast** - Rust's performance with modern web optimizations
- **Low memory usage** - Efficient resource utilization
- **Concurrent** - Handle thousands of users simultaneously
- **Scalable** - Grows with your needs
### Security
- **Memory safe** - Rust prevents entire classes of vulnerabilities
- **Security by default** - Best practices built into the framework
- **Regular updates** - Active security maintenance
- **Compliance ready** - Meet industry standards
### Developer Experience
- **Type safety** - Catch errors at compile time
- **Excellent tooling** - Rich ecosystem and development tools
- **Hot reloading** - Fast development iteration
- **Clear documentation** - Comprehensive guides and examples
### Production Ready
- **Battle tested** - Used in production by growing companies
- **Reliable** - Robust error handling and recovery
- **Observable** - Built-in metrics, logging, and monitoring
- **Maintainable** - Clean architecture and code organization
## Community and Support
### Getting Help
- **📖 Documentation** - Comprehensive guides for all skill levels
- **💬 Community Forum** - Connect with other users and developers
- **🐛 Issue Tracker** - Report bugs and request features
- **📧 Professional Support** - Available for enterprise customers
### Contributing
- **🔧 Code Contributions** - Help improve the framework
- **📝 Documentation** - Improve guides and tutorials
- **🧪 Testing** - Help ensure quality and reliability
- **🌍 Translation** - Make Rustelo accessible worldwide
### Resources
- **[GitHub Repository](https://github.com/rustelo/rustelo)** - Source code and development
- **[API Documentation](https://docs.rs/rustelo)** - Generated API reference
- **[Example Applications](https://github.com/rustelo/examples)** - Real-world examples
- **[Blog](https://rustelo.dev/blog)** - Updates and tutorials
## System Requirements
### Minimum Requirements
- **CPU**: 2 cores, 2.0 GHz
- **RAM**: 4 GB
- **Storage**: 20 GB available space
- **OS**: Linux, macOS, or Windows
- **Database**: SQLite (included) or PostgreSQL
### Recommended for Production
- **CPU**: 4+ cores, 3.0+ GHz
- **RAM**: 8+ GB
- **Storage**: 100+ GB SSD
- **OS**: Linux (Ubuntu 20.04+ or CentOS 8+)
- **Database**: PostgreSQL 13+
- **Reverse Proxy**: Nginx or Apache
## What's in This Guide
This documentation is organized into clear sections:
### Essential Information
- **Getting Started** - Installation, setup, and first steps
- **For End Users** - Using Rustelo applications effectively
- **For Developers** - Building and extending Rustelo applications
### Technical References
- **Configuration** - Environment and system configuration
- **API Reference** - Complete API documentation
- **Security** - Security features and best practices
- **Performance** - Optimization and scaling guidance
### Support Resources
- **Troubleshooting** - Solutions to common issues
- **Contributing** - How to participate in development
- **Reference** - Quick lookup for configurations and commands
## Quick Navigation
**New Users?** Start with [What is Rustelo?](./getting-started/what-is-rustelo.md)
**Want to try it?** Go to [Installation](./getting-started/installation.md)
**Ready to develop?** Begin with [Development Setup](./developers/setup/environment.md)
**Need help?** Check [Troubleshooting](./troubleshooting/common.md)
---
*Welcome to the Rustelo community! Whether you're here to use, build, or contribute, we're excited to have you join us in creating the future of web applications with Rust.* 🦀✨