Thank you for your interest in contributing to VerifyFetch! This document provides guidelines and instructions for contributing.
Please be respectful and constructive in all interactions. We're building security infrastructure that protects users - let's do it together with professionalism and kindness.
- Node.js 18+ (LTS recommended)
- pnpm 9+ (
npm install -g pnpm) - Rust (for WASM development) - Install Rust
- wasm-pack -
cargo install wasm-pack
# Clone the repository
git clone https://github.com/hamzaydia/verifyfetch.git
cd verifyfetch
# Install dependencies
pnpm install
# Build WASM module
pnpm build:wasm
# Build all packages
pnpm build
# Run tests
pnpm testverifyfetch/
├── packages/
│ ├── core/ # Main library (TypeScript + WASM)
│ │ ├── src/ # TypeScript source
│ │ └── wasm/ # Rust WASM hasher
│ ├── cli/ # CLI tool
│ └── next/ # Next.js integration (coming soon)
├── apps/
│ └── web/ # Documentation site (coming soon)
└── examples/ # Usage examples
- Fork the repository
- Create a branch for your feature/fix:
git checkout -b feature/my-feature - Make your changes
- Add tests for new functionality
- Run tests:
pnpm test - Build:
pnpm build - Commit with a clear message
- Push and open a PR
We use conventional commits:
feat: add signature verification
fix: handle empty files correctly
docs: update API documentation
test: add tests for streaming hasher
chore: update dependencies
- TypeScript with strict mode
- Use ESM (no CommonJS)
- Prefer functional style where appropriate
- Document public APIs with JSDoc
- Keep functions focused and small
Look for issues labeled good-first-issue:
- Documentation improvements
- Adding tests
- Bug fixes with clear reproduction steps
- Additional framework integrations (Vite, Remix, SvelteKit)
- Performance optimizations
- CI/CD integration examples
- Better error messages
The Rust WASM code is in packages/core/wasm/. Contributions welcome:
- Performance improvements
- Additional hash algorithms (BLAKE3)
- Signature verification in WASM
# Run all tests
pnpm test
# Run tests in watch mode
pnpm test -- --watch
# Run tests for a specific package
pnpm --filter verifyfetch test- Ensure all tests pass
- Update documentation if needed
- Add changeset if your change is user-facing:
pnpm changeset - Request review from maintainers
- Address feedback
- Squash and merge
If you discover a security vulnerability, please do not open a public issue. Instead, email security@verifyfetch.com with details.
- Open a Discussion
- Check existing Issues
By contributing, you agree that your contributions will be licensed under the Apache-2.0 license.
Thank you for helping make the web more secure! 🛡️