Thank you for your interest in contributing to crypt.fyi! This document provides guidelines and instructions for contributing to the project.
By participating in this project, you agree to maintain a respectful and constructive environment for all contributors.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/crypt.fyi.git
- Create a new branch for your feature/fix:
git checkout -b feature/your-feature-name
-
Install dependencies:
yarn install
-
Copy
.env.example
to.env
and configure environment variables -
Ensure Redis is running locally for server development
-
Start the development server:
yarn run dev
- Ensure your code follows the project's style guide (uses Prettier)
- Update documentation if you're changing functionality
- Add tests for new features
- Ensure all tests pass
- Update the README.md if necessary
- Create a Pull Request with a clear title and description
Given the security-critical nature of this application, please ensure:
- No sensitive data is logged or exposed in error messages
- All encryption/decryption operations remain client-side only
- No weakening of the Content Security Policy (CSP)
- Dependencies are kept up to date and security patches are applied
- No accidental exposure of secrets or credentials in code or comments
- Use TypeScript for all new code
- Follow existing code formatting (Prettier configuration)
- Maintain strict typing - avoid
any
types - Write self-documenting code with clear variable/function names
- Add JSDoc comments for public APIs
- Keep functions small and focused
- Use meaningful commit messages
- Write unit tests for new functionality
- Ensure all tests pass before submitting PR
- Include both positive and negative test cases
- Test edge cases thoroughly, especially for security-critical features
When adding or modifying features:
- Update relevant README files
- Add JSDoc comments for new functions/components
- Update the OpenAPI specification if modifying the API
- Document security implications of changes
- Update the SPECIFICATION.md for architectural changes
When reporting issues, please include:
- Description of the issue
- Steps to reproduce
- Expected behavior
- Actual behavior
- Environment details (OS, browser version, etc.)
- Screenshots if applicable
For security vulnerabilities, please do NOT create a public issue. Instead, reference SECURITY.md.
All submissions require review. We strive to:
- Review PRs within 48 hours
- Provide clear feedback
- Help contributors meet project standards
- Maintain security and quality
By contributing to crypt.fyi, you agree that your contributions will be licensed under the same license as the project.
If you have questions about contributing, feel free to:
- Open a GitHub Discussion
- Email [email protected]
Thank you for helping make crypt.fyi better!