Contributing
How to contribute to ProBeya — code, documentation, translations, and bug reports.
Overview
ProBeya is open source and welcomes contributions from the community. Whether you are fixing a typo, adding a feature, improving documentation, or translating the interface, your help is valued.
Ways to Contribute
Bug Reports
Found a bug? Open an issue on GitHub with reproduction steps.
Feature Requests
Have an idea? Open a discussion on GitHub to propose new features.
Code
Submit pull requests for bug fixes, features, or improvements.
Documentation
Improve docs, fix typos, or write guides for new features.
Translations
Help translate ProBeya into more languages.
Community
Help answer questions on Discord and GitHub Discussions.
Development Workflow
Fork the Repository
Fork probeya/probeya on GitHub and clone your fork locally.
git clone https://github.com/YOUR_USERNAME/obeya.git
cd obeya
Create a Branch
Create a branch from main with a descriptive name: bash git checkout -b feat/add-gantt-dependencies # or git checkout -b fix/board-view-drag-drop
Set Up Local Environment
Follow the Local Setup guide to get your development environment running.
Make Your Changes
Write your code, tests, and documentation. Follow the coding standards described below.
Test
Run the full test suite to ensure nothing is broken: bash pnpm test pnpm lint pnpm type-check
Commit
Write clear commit messages following the Conventional
Commits format: bash git commit -m "feat(timeline): add dependency arrows between items" git commit -m "fix(board): prevent card flicker on drag-and-drop" git commit -m "docs(api): add webhook payload examples"
Push and Open PR
Push your branch and open a pull request on GitHub:
git push origin feat/add-gantt-dependencies
Fill in the PR template with a description of your changes, screenshots (if UI), and any related issues.
Coding Standards
TypeScript
- Use strict TypeScript — no
anytypes except where absolutely necessary - Prefer
constand functional patterns - Use Zod schemas for all external data validation
- Export types alongside implementations
React
- Use functional components with hooks
- Prefer server components where possible (Next.js App Router)
- Use Radix UI primitives for accessible components
- Style with Tailwind CSS utility classes
Database
- Define schema changes in Drizzle ORM format
- Write idempotent migrations
- Add indexes for frequently queried columns
- Always include
organizationIdin queries for tenant isolation
Testing
- Write unit tests for business logic (Vitest)
- Write integration tests for tRPC procedures
- Write E2E tests for critical user flows (Playwright)
- Aim for 80%+ code coverage on new code
Commit Message Format
<type>(<scope>): <description>
[optional body]
[optional footer]
| Type | Description |
|---|---|
feat | New feature |
fix | Bug fix |
docs | Documentation only |
style | Formatting, missing semicolons, etc. |
refactor | Code change that neither fixes a bug nor adds a feature |
perf | Performance improvement |
test | Adding or updating tests |
chore | Build process, dependencies, or tooling changes |
Pull Request Guidelines
- Keep PRs focused and reasonably sized (under 500 lines of changes)
- Include screenshots or recordings for UI changes
- Link related issues using
Fixes #123orCloses #456 - Ensure CI passes (tests, lint, typecheck, build)
- Request review from at least one maintainer
- Be responsive to review feedback
Translations
ProBeya supports thirteen languages. Translation files are in packages/i18n/messages/:
packages/i18n/messages/
├── en.json # English (base)
├── fr.json # French
├── es.json # Spanish
├── de.json # German
├── ar.json # Arabic
└── ja.json # Japanese
To add or update translations:
- Edit the language file with the new/updated strings
- Ensure all keys present in
en.jsonexist in your language file - Submit a PR with the changes
If you want to add support for a new language, open a GitHub Discussion first to coordinate the effort.
Code of Conduct
All contributors are expected to follow our Code of Conduct. Be respectful, inclusive, and constructive in all interactions.
License
ProBeya is licensed under the AGPLv3 license. By contributing, you agree that your contributions will be licensed under the same license.
Was this page helpful?