Skip to main content
Join hundreds of developers building the future of open-source CRM. Every contribution makes a difference!

Why Contribute?

  • Impact thousands - Twenty is used by companies worldwide
  • Learn modern tech - Work with React, NestJS, GraphQL, and more
  • Join the community - Connect with developers around the globe
  • Build your portfolio - Showcase your contributions
  • Shape the product - Help decide what gets built next

Ways to Contribute

Code Contributions

Fix bugs, add features, improve performance

Documentation

Improve docs, write tutorials, create examples

Bug Reports

Find and report issues to help improve quality

Feature Requests

Suggest new features and improvements

Translations

Translate Twenty into your language

Community Support

Help others in Discord and GitHub

Getting Started

1. Find an Issue

Browse open issues on GitHub:
1

Good First Issues

Start with issues labeled good first issueThese are beginner-friendly issues perfect for first-time contributors.
2

Help Wanted

Check help wanted issuesThese issues are ready to work on and contributions are welcomed.
3

Bug Reports

Look for bugs labeled bugHelp fix reported bugs to improve stability.
Comment on the issue before starting work to avoid duplicate efforts. Let maintainers know you’re working on it.

2. Set Up Your Environment

Follow the Local Development Setup guide to get Twenty running locally. Quick setup:
# Clone your fork
git clone https://github.com/YOUR_USERNAME/twenty.git
cd twenty

# Install dependencies
yarn install

# Set up environment
cp packages/twenty-server/.env.example packages/twenty-server/.env

# Initialize database
npx nx database:reset twenty-server

# Start development server
yarn start

3. Create a Branch

Create a descriptive branch name:
# For features
git checkout -b feature/add-company-export

# For bug fixes
git checkout -b fix/email-validation-error

# For documentation
git checkout -b docs/update-api-guide

4. Make Your Changes

Follow our Code Style Guide when writing code. Key principles:
  • Write tests - Add tests for new functionality
  • Follow conventions - Match existing code patterns
  • Keep it focused - One feature/fix per PR
  • Update docs - Document new features

5. Test Your Changes

Ensure all tests pass:
# Run linting (always do this first!)
npx nx lint:diff-with-main twenty-front
npx nx lint:diff-with-main twenty-server

# Auto-fix linting issues
npx nx lint:diff-with-main twenty-front --configuration=fix

# Type checking
npx nx typecheck twenty-front
npx nx typecheck twenty-server

# Run tests
npx nx test twenty-front
npx nx test twenty-server

# Test specific file
npx jest path/to/test.test.ts --config=packages/twenty-front/jest.config.mjs

6. Commit Your Changes

Write clear, descriptive commit messages:
# Good commit messages
git commit -m "Add CSV export for companies"
git commit -m "Fix email validation in person form"
git commit -m "Update GraphQL API documentation"

# Bad commit messages
git commit -m "fix bug"
git commit -m "wip"
git commit -m "update"
Follow Conventional Commits format:
  • feat: - New feature
  • fix: - Bug fix
  • docs: - Documentation changes
  • refactor: - Code refactoring
  • test: - Adding tests
  • chore: - Maintenance tasks

7. Submit a Pull Request

Push your branch and open a pull request:
# Push to your fork
git push origin feature/add-company-export
Then on GitHub:
  1. Navigate to your fork
  2. Click Compare & pull request
  3. Fill out the PR template:
    • Title - Clear, descriptive title
    • Description - What does this PR do?
    • Issue - Link to related issue(s)
    • Testing - How did you test this?
    • Screenshots - For UI changes

Pull Request Guidelines

PR Title Format

<type>: <description>
Examples:
  • feat: Add CSV export for companies
  • fix: Resolve email validation error
  • docs: Update API authentication guide
  • refactor: Simplify person list query logic

PR Description Template

## Description
Brief description of changes

## Related Issue
Fixes #123

## Changes Made
- Added CSV export button to companies page
- Implemented CSV generation logic
- Added tests for export functionality

## Testing
- Tested export with 1000+ records
- Verified CSV format is correct
- Checked all fields are included

## Screenshots
(if applicable)

## Checklist
- [ ] Tests pass
- [ ] Linting passes
- [ ] Documentation updated
- [ ] No breaking changes

Review Process

  1. Automated checks - CI runs tests and linting
  2. Maintainer review - Core team reviews your code
  3. Feedback - Address review comments
  4. Approval - Once approved, your PR will be merged!
Reviews may take a few days. Be patient and responsive to feedback.

Contribution Types

Code Contributions

Bug Fixes
  • Find bugs in GitHub issues or while using Twenty
  • Reproduce the issue locally
  • Write a test that fails
  • Fix the bug
  • Verify test passes
  • Submit PR
New Features
  • Discuss feature in GitHub issue first
  • Get approval from maintainers
  • Implement feature following code style
  • Write comprehensive tests
  • Update documentation
  • Submit PR
Performance Improvements
  • Identify performance bottleneck
  • Benchmark current performance
  • Implement optimization
  • Verify improvement with benchmarks
  • Ensure no regressions
  • Submit PR

Documentation Contributions

Help improve our documentation:
# Documentation is in packages/twenty-docs/
cd packages/twenty-docs

# Make changes to MDX files
# ...

# Preview locally
yarn dev
Documentation contributions:
  • Fix typos and grammar
  • Clarify confusing sections
  • Add missing examples
  • Write tutorials
  • Improve API documentation

Translation Contributions

Translate Twenty into your language:
  1. Visit Twenty on Crowdin
  2. Select your language
  3. Start translating
  4. Submit translations for review

Community Support

Help others in the community:
  • Answer questions in Discord
  • Help troubleshoot issues on GitHub
  • Write blog posts and tutorials
  • Create video tutorials
  • Share Twenty on social media

Recognition

We value our contributors:
  • All contributors are listed in our README
  • Regular contributors may be invited to the core team
  • Significant contributions are highlighted in release notes
  • Everyone gets our gratitude and recognition!

Communication

Discord

Join our Discord community:
  • #general - General discussion
  • #dev - Development questions
  • #help - Get help
  • #showcase - Show what you built

GitHub Discussions

Use GitHub Discussions for:
  • Feature proposals
  • Design discussions
  • Questions and answers
  • Show and tell

GitHub Issues

Use GitHub Issues for:
  • Bug reports
  • Feature requests
  • Task tracking

Code of Conduct

We are committed to providing a welcoming and inclusive environment:
  • Be respectful - Treat everyone with respect
  • Be constructive - Provide helpful feedback
  • Be inclusive - Welcome all skill levels
  • Be patient - Remember everyone is learning
  • Be kind - Assume good intentions
Read our full Code of Conduct.

Reporting Security Issues

Do not open public GitHub issues for security vulnerabilities.
To report security issues:
  1. Email [email protected]
  2. Include detailed description
  3. Provide steps to reproduce
  4. Wait for response before public disclosure

Development Resources

Local Setup

Set up your development environment

Architecture

Understand the codebase structure

Code Style

Follow code conventions

Testing

Write and run tests

Common Questions

No! We welcome contributors of all skill levels. Start with “good first issue” labels and learn as you go.
Usually 2-5 days, but can vary. Be patient and responsive to feedback.
Yes, but focus on one PR at a time. Complete one before starting another.
Don’t worry! Ask for feedback, learn from it, and try again. Every PR is a learning opportunity.
# Add upstream remote
git remote add upstream https://github.com/twentyhq/twenty.git

# Fetch and merge
git fetch upstream
git checkout main
git merge upstream/main
git push origin main
Twenty Cloud is closed-source. Contributions focus on the open-source core which powers both self-hosted and cloud versions.

Tips for Success

Start Small

Begin with small contributions to learn the process

Ask Questions

Don’t hesitate to ask in Discord or GitHub

Follow Guidelines

Read and follow our contribution guidelines

Be Patient

Good things take time - both learning and reviews

Example: First Contribution

Here’s a complete example of making your first contribution:
# 1. Fork the repository on GitHub

# 2. Clone your fork
git clone https://github.com/YOUR_USERNAME/twenty.git
cd twenty

# 3. Set up upstream
git remote add upstream https://github.com/twentyhq/twenty.git

# 4. Install dependencies
yarn install

# 5. Set up environment
cp packages/twenty-server/.env.example packages/twenty-server/.env

# 6. Initialize database
npx nx database:reset twenty-server

# 7. Start dev server
yarn start

# 8. Create a branch
git checkout -b fix/typo-in-readme

# 9. Make changes
# (edit files)

# 10. Run linting
npx nx lint:diff-with-main twenty-front --configuration=fix

# 11. Commit changes
git add .
git commit -m "docs: Fix typo in README"

# 12. Push to your fork
git push origin fix/typo-in-readme

# 13. Open pull request on GitHub

Next Steps

Code Style Guide

Learn Twenty’s code conventions

Testing Guide

Write and run tests

Browse Issues

Find something to work on

Join Discord

Connect with the community

Thank You!

Thank you for contributing to Twenty! Every contribution, no matter how small, helps make Twenty better for everyone. Happy coding! 🚀

Build docs developers (and LLMs) love