Thanks for your interest in contributing to Reviewate! This guide will help you get started.
- Fork the repository
- Clone your fork locally
- Install dependencies (see Development Setup)
- Create a branch for your changes
- Make your changes, ensuring tests pass
- Submit a pull request
# Clone the repository
git clone https://github.com/<your-username>/reviewate.git
cd reviewate
# Install frontend/monorepo dependencies
pnpm install
# Install backend dependencies
cd backend && uv sync && cd ..
# Install code reviewer dependencies
cd code_reviewer && uv sync && cd ..
# Start database for local development
make compose-test
# Run migrations
make migrate
# Start development servers (separate terminals)
make backend-run # http://localhost:8000
make frontend-run # http://localhost:3000Use descriptive branch names:
feat/add-bitbucket-supportfix/gitlab-webhook-timeoutdocs/update-deployment-guide
We use Conventional Commits:
feat: add support for Bitbucket webhooks
fix: handle empty diff in review agent
docs: update Kubernetes deployment guide
refactor: simplify container backend interface
test: add fact checker edge case tests
chore: update litellm dependency
Python (backend, code_reviewer):
- Formatted with Ruff
- Type hints required on all public functions
- Docstrings on public classes and methods
TypeScript/Vue (frontend, website):
Before submitting a PR, ensure everything passes:
# Run linting and formatting checks
make qa
# Run all tests
make test
# Or run tests individually
make backend-test
make code-review-test
make frontend-test- Keep PRs focused on a single change
- Include tests for new features and bug fixes
- Update documentation if your change affects user-facing behavior
- Ensure
make qaandmake testpass - Fill in the PR template
reviewate/
├── backend/ # FastAPI backend (Python)
├── frontend/ # Nuxt dashboard (Vue/TypeScript)
├── code_reviewer/ # AI review engine (Python)
├── packages/ # Shared TypeScript SDK
├── website/ # Marketing site (Nuxt)
└── docs/ # Deployment and configuration docs
Each sub-project has its own CLAUDE.md with architecture details and development notes.
Please use the bug report template and include:
- Steps to reproduce
- Expected vs actual behavior
- Environment details (OS, Python/Node version, Docker version)
- Relevant logs
Use the feature request template. Describe the problem you're trying to solve, not just the solution you have in mind.
By contributing, you agree that your contributions will be licensed under the AGPL-3.0 License.