Contribute to Roselite¶
Join the community building censorship-resistant hosting infrastructure. Whether you're a developer, designer, writer, or user - there are many ways to contribute!
Ways to Contribute¶
๐ง Code Contributions¶
- Bug fixes and performance improvements
- New features and enhancements
- Platform support for additional operating systems
- Integration plugins for popular static site generators
๐ Documentation¶
- Tutorial writing and examples
- API documentation improvements
- Translation to other languages
- Video tutorials and guides
๐งช Testing & QA¶
- Bug reporting with detailed reproduction steps
- Testing new releases and features
- Performance benchmarking
- Security vulnerability research
๐จ Design & UX¶
- CLI user experience improvements
- Documentation design enhancements
- Logo and branding assets
- Gateway interface design
๐ Community¶
- Community support in discussions
- Content creation (blogs, talks, demos)
- Event organization and participation
- Advocacy for decentralized technologies
Getting Started¶
1. Set Up Development Environment¶
# Clone the repository
git clone https://github.com/jdbohrman/roselite.git
cd roselite
# Install Rust (if not already installed)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Build the project
cargo build
# Run tests
cargo test
2. Explore the Codebase¶
Roselite is organized into three main crates:
roselite-core/
- Core DHT integration and package handlingroselite-cli/
- Command-line interfaceroselite-gateway/
- HTTP gateway server
3. Find an Issue¶
Browse our GitHub Issues to find something to work on:
- ๐ข Good First Issue - Perfect for newcomers
- ๐ด Bug - Something that needs fixing
- ๐ก Enhancement - New features and improvements
- ๐ Documentation - Docs that need updating
Development Guidelines¶
Code Standards¶
- Rust Style: Follow
rustfmt
andclippy
suggestions - Comments: Document public APIs and complex logic
- Tests: Add tests for new functionality
- Error Handling: Use proper error types and handling
Testing¶
# Run all tests
cargo test
# Run tests with logging
RUST_LOG=debug cargo test -- --nocapture
# Run specific test
cargo test test_name
# Run clippy for linting
cargo clippy
# Format code
cargo fmt
Performance Considerations¶
- Memory Usage: Be mindful of memory allocation in DHT operations
- Network Efficiency: Minimize unnecessary network requests
- Caching: Implement appropriate caching strategies
- Async/Await: Use async patterns for I/O operations
Contribution Process¶
1. Before You Start¶
- Check existing issues to avoid duplicate work
- Create an issue for significant changes
- Discuss the approach with maintainers
- Fork the repository to your account
2. Making Changes¶
# Create a feature branch
git checkout -b feature/your-feature-name
# Make your changes
# ... edit files ...
# Test your changes
cargo test
cargo clippy
# Commit your changes
git add .
git commit -m "feat: add new feature description"
3. Submitting a Pull Request¶
- Push your branch to your fork
- Create a pull request on GitHub
- Fill out the PR template completely
- Wait for review and address feedback
- Celebrate when it's merged! ๐
Pull Request Guidelines¶
- Clear title describing the change
- Detailed description of what and why
- Link to related issues
- Include tests for new functionality
- Update documentation if needed
Areas Needing Help¶
High Priority¶
- Gateway performance optimization
- Better error messages and debugging
- Windows compatibility improvements
- Mobile device gateway support
Medium Priority¶
- CI/CD improvements
- Integration with popular static site generators
- Monitoring and observability features
- Alternative DHT implementations
Documentation Needs¶
- Video tutorials for getting started
- Integration guides for popular frameworks
- Advanced configuration examples
- Troubleshooting guides
Community Guidelines¶
Code of Conduct¶
We are committed to providing a welcoming and inclusive environment. Please read our Code of Conduct before participating.
Communication¶
- Be respectful and constructive in all interactions
- Help others learn and contribute
- Ask questions - no question is too basic
- Share knowledge and experiences
Getting Help¶
Need help contributing? Here's where to ask:
- GitHub Discussions - General questions and discussions
- GitHub Issues - Bug reports and feature requests
- Discord - Real-time chat with the community
- Email - Direct contact for sensitive issues
Recognition¶
Contributors¶
All contributors are recognized in:
- GitHub contributor graph
- Project README
- Release notes for significant contributions
- Annual contributor report
Maintainer Path¶
Regular contributors may be invited to become maintainers with:
- Commit access to the repository
- Influence on project direction
- Recognition as a core team member
- Responsibility for guiding the project
Technical Roadmap¶
Help us build the future of decentralized hosting:
Near Term (3-6 months)¶
- Performance improvements for large sites
- Better caching strategies
- Improved error handling and debugging
- Windows and macOS compatibility
Medium Term (6-12 months)¶
- Mobile SDKs for iOS and Android
- Alternative gateway implementations
- Advanced monitoring and analytics
- Plugin system for extensibility
Long Term (12+ months)¶
- IPFS integration as alternative DHT
- Blockchain-based discovery mechanisms
- P2P gateway discovery
- Decentralized domain resolution
Resources for Contributors¶
Learning Resources¶
- Veilid Documentation - Understanding the DHT
- Rust Book - Learning Rust
- Tokio Guide - Async Rust
- HTTP/1.1 Specification - Web protocols
Development Tools¶
- VS Code with Rust Analyzer
- Zed for Rust development
- IntelliJ IDEA with Rust plugin
- Wireshark for network debugging
Get Started Today¶
Ready to contribute? Choose your path:
-
Start Coding
Jump into development with our contributor guide
-
Improve Docs
Help make our documentation even better
-
Report Issues
Found a bug? Let us know how to fix it
-
Join Community
Connect with other contributors and users
Thank You¶
Every contribution makes Roselite better and helps build a more censorship-resistant internet. Whether you fix a typo, add a feature, or help another user - you're making a difference.
Together, we're building the infrastructure for a free and open web.