Thank you for investing your time in HackMate. This guide explains how to contribute changes that are easy to review and safe to ship.
Be respectful, constructive, and collaborative in all interactions.
- Search existing issues and pull requests to avoid duplicate work.
- For significant changes, open an issue first to discuss approach and scope.
- Keep each pull request focused on one concern.
- Fork the repository and clone your fork.
- Install dependencies:
npm install- Create a
.envfile in the repository root and configure required keys. - Start the development server:
npm run devUse descriptive branch names:
feat/<short-description>fix/<short-description>docs/<short-description>refactor/<short-description>
Examples:
feat/team-presence-syncfix/mobile-stage-overflowdocs/readme-env-clarification
Use clear, imperative commit messages.
Good examples:
Add Supabase retry handling for project syncFix stage assignment state merge bugImprove README environment setup section
- Use TypeScript types for public data contracts.
- Prefer small, composable React components.
- Preserve existing project structure and naming conventions.
- Do not commit secrets or
.envfiles. - Keep comments concise and only where logic is non-obvious.
Run these before opening a pull request:
npm run lint
npm run buildIf your change affects UI behavior, include screenshots or a short screen recording in the PR.
- Branch is up to date with latest target branch
- Change is scoped and self-contained
- Lint and build pass locally
- Screenshots included for UI changes
- Documentation updated (README, comments, or guides)
- No secrets, credentials, or sensitive data committed
- Push your branch to your fork.
- Open a pull request against the main repository.
- Fill in:
- Problem being solved
- Approach taken
- Validation performed
- Risks or trade-offs
When creating a bug report, include:
- Environment details (OS, browser, node version)
- Steps to reproduce
- Actual result
- Expected result
- Console errors and screenshots
For feature requests, include:
- User problem
- Proposed solution
- Alternatives considered
- Success criteria
Do not open public issues for sensitive vulnerabilities.
Follow the process in SECURITY.md.