Thank you for your interest in contributing to CodeTunnel! We welcome contributions from the community and are grateful for any help you can provide.
By participating in this project, you agree to abide by our Code of Conduct:
- Be respectful and inclusive
- Welcome newcomers and help them get started
- Focus on constructive criticism
- Respect differing viewpoints and experiences
- Check existing issues - Before creating a new issue, please check if it already exists
- Use issue templates - Fill out the appropriate issue template
- Provide details - Include steps to reproduce, expected behavior, and actual behavior
- Include environment info - OS, version, and any relevant configuration
- Open a discussion - Start with a GitHub Discussion to gather feedback
- Explain the use case - Help us understand why this feature would be useful
- Consider alternatives - What other solutions have you tried?
- Fork the repository
- Clone your fork:
git clone https://github.com/ifokeev/codetunnel.git cd codetunnel - Add upstream remote:
git remote add upstream https://github.com/originalowner/codetunnel.git
- Create a feature branch:
git checkout -b feature/your-feature-name
- Install dependencies:
pnpm install
- Download binaries:
./scripts/download-binaries.sh
- Run in development mode:
pnpm tauri:dev
- Follow the code style - Use the existing code as a guide
- Write tests - Add tests for new functionality
- Update documentation - Keep README and other docs up to date
- Commit messages - Use clear, descriptive commit messages:
feat: add new terminal theme support fix: resolve connection issue on Windows docs: update build instructions
- Push to your fork:
git push origin feature/your-feature-name
- Open a Pull Request from your fork to our
mainbranch - Fill out the PR template completely
- Wait for review and address any feedback
- Keep it focused - One feature or fix per PR
- Test thoroughly - Ensure all tests pass on all platforms
- Update CHANGELOG - Add your changes to the unreleased section
- Sign your commits - Use
git commit -sfor DCO
codetunnel/
├── apps/desktop/ # Main desktop application
│ ├── src/ # React frontend
│ └── src-tauri/ # Rust backend
├── scripts/ # Build and utility scripts
└── packages/ # Shared packages (future)
- Frontend: React, TypeScript, Vite
- Backend: Rust, Tauri 2.0
- Build: pnpm workspaces, GitHub Actions
Run tests before submitting:
# Frontend tests
cd apps/desktop && pnpm test
# Rust tests
cd apps/desktop/src-tauri && cargo test
# Lint checks
pnpm lint- ttyd must be built from source or copied from Homebrew
- Test on both Intel and Apple Silicon
- Test on Windows 10 and 11
- Ensure proper code signing
- Test on major distributions (Ubuntu, Fedora, Arch)
- Check AppImage and .deb packages
- Update version in
apps/desktop/src-tauri/Cargo.toml - Update CHANGELOG.md
- Create a PR with version bump
- After merge, tag the release
- GitHub Actions will build and publish
Contributors will be recognized in:
- The project README
- Release notes
- Our contributors page
Thank you for contributing to CodeTunnel! 🚀