Thank you for your interest in contributing to P2Pigeon! We welcome contributions from the community to help build a more secure and private communication platform.
- Node.js 18+
- pnpm 8+
- Git
-
Fork and clone the repository
git clone https://github.com/P2Pigeon/Platform.git cd Platform -
Install dependencies
pnpm install
-
Start the development servers
# Backend (port 3060) cd app && pnpm dev # Frontend (port 3000) cd frontend && pnpm dev
-
Open your browser Navigate to
http://localhost:3000
βββ app/ # Backend server (Express, Socket.IO)
β βββ src/
β β βββ api/ # REST API routes
β β βββ dataroom/ # Hyperdrive data room management
β β βββ hypernat/ # NAT traversal utilities
βββ frontend/ # React frontend
β βββ src/
β β βββ components/ # Reusable UI components
β β βββ pages/ # Page components
β β βββ services/ # API and protocol services
β β βββ hooks/ # Custom React hooks
βββ shared/ # Shared types and utilities
- Check existing issues to avoid duplicates
- Use the bug report template
- Include steps to reproduce, expected behavior, and actual behavior
- Include browser/OS version and any relevant logs
- Open an issue with the feature request template
- Describe the use case and why it would benefit users
- Be open to discussion and feedback
-
Create a feature branch
git checkout -b feature/your-feature-name
-
Make your changes
- Follow the existing code style
- Write meaningful commit messages
- Add tests for new functionality
- Update documentation as needed
-
Test your changes
pnpm test pnpm lint -
Push and create a PR
git push origin feature/your-feature-name
Then open a Pull Request on GitHub.
- Use TypeScript for all new code
- Follow existing patterns in the codebase
- Use meaningful variable and function names
- Keep functions focused and small
- Add JSDoc comments for public APIs
Use clear, descriptive commit messages:
feat: add end-to-end encryption for file transfers
fix: resolve duplicate message issue in Nostr chat
docs: update README with installation instructions
refactor: simplify WebRTC connection handling
We especially welcome contributions in these areas:
- Security audits - Review encryption implementations
- Performance - Optimize P2P connections and data transfer
- Accessibility - Improve screen reader support and keyboard navigation
- Documentation - Improve guides, tutorials, and API docs
- Testing - Add unit tests and integration tests
- Localization - Translate the UI to other languages
If you discover a security vulnerability, please do NOT open a public issue. Instead, email security concerns privately to the maintainers.
- Be respectful and inclusive
- Focus on constructive feedback
- Help others learn and grow
- No harassment or discrimination
By contributing, you agree that your contributions will be licensed under the AGPL-3.0 license.
Feel free to open a discussion or reach out to the maintainers if you have any questions about contributing.
Thank you for helping make P2Pigeon better! π¦