Thanks for contributing. This repository is intended to be friendly to outside contributors, but changes still need to be easy to review and safe to ship.
- Check existing issues and pull requests before starting duplicate work.
- For substantial changes, open an issue first so the direction can be discussed before implementation.
- Keep pull requests focused. Small, reviewable changes move faster than broad refactors.
- Install dependencies with
pnpm install. - Copy
sample.envto.env.local. - Start Convex with
pnpm run convex:dev. - Start the app with
pnpm run dev. - If this is a brand-new instance, visit
/setup-adminto create the first administrator account.
- Use TypeScript consistently and prefer explicit, readable code over clever abstractions.
- Keep generated Convex files up to date by running
pnpm run convex:devwhile developing. - Run
pnpm lintbefore opening a pull request. - Run
pnpm formatif you touched Markdown, JSON, or style-heavy files. - Update docs when setup, behavior, or public APIs change.
- Use a clear title and explain the user-facing or developer-facing impact.
- Link related issues when applicable.
- Include screenshots or short recordings for UI changes.
- Call out schema, auth, permissions, or migration risks explicitly.
- Do not mix unrelated cleanup into the same pull request.
- Write short, descriptive commit messages.
- Prefer one logical change per commit when possible.
Do not open public issues for vulnerabilities. Follow the reporting guidance in SECURITY.md.
By submitting a contribution, you agree that your work will be licensed under the Apache License 2.0 that applies to this repository.