Skip to content

Contributing to Canviq

!!! info "TL;DR" Canviq welcomes contributions. Follow the development setup guide, write tests, follow code style conventions, and submit PRs that pass CI. All contributions require green CI before merging.

How to Contribute

Canviq is built as an open development product for the Revoir ecosystem. Contributions are welcome in the form of:

  • Bug reports: File issues with reproduction steps
  • Feature requests: Propose new capabilities via GitHub Issues
  • Code contributions: Submit PRs following the process below
  • Documentation: Improve clarity, add examples, fix typos
  • Testing: Expand coverage or improve test quality

Getting Started

  1. Read the Development Setup guide to get your local environment running
  2. Review Code Style conventions for TypeScript, Tailwind, and linting rules
  3. Understand Testing expectations and patterns
  4. Follow the Pull Request process when submitting changes

Contribution Standards

All contributions must meet these requirements:

  • Pass CI gates: TypeScript, ESLint, Vitest, and build must succeed
  • Include tests: Every non-trivial change requires test coverage
  • Follow code style: ESLint and Prettier enforce consistency
  • Document decisions: Significant architectural changes need an ADR
  • Maintain security: Follow GDPR and SOC 2 patterns in the codebase

Where to Start

Good first issues are tagged with good-first-issue in the GitHub repository. Areas that welcome contributions:

  • Test coverage: Expand unit or e2e test coverage
  • Internationalization: Add translations for supported locales
  • Accessibility: Improve ARIA labels, keyboard navigation, screen reader support
  • Performance: Profile and optimize slow queries or rendering
  • Documentation: Clarify confusing sections or add missing examples

Questions?

If you have questions about contributing:

  • Check the Architecture Decision Records for context on past decisions
  • Review the CLAUDE.md file in the repository root for project-specific patterns
  • Open a GitHub Discussion for open-ended questions
  • File an issue if you've found a bug or have a specific feature request

What's next