Overview
Obeya Cloud 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 Obeya Cloud into more languages.
Community
Help answer questions on Discord and GitHub Discussions.
Development Workflow
Fork the Repository
Fork obeya-cloud/obeya on GitHub and clone your fork locally.
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.
Commit
Write clear commit messages following the Conventional Commits format:
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 | 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
Obeya Cloud supports six languages. Translation files are inpackages/i18n/messages/:
- 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.