# Contributing to Twenty


Thank you for considering contributing to Twenty! All community contributions are welcome. 

This guide outlines the process for contributing to this project. Please make sure to go through the [documentation](https://docs.twenty.com) before making your contribution. 


> And if you like the project, but just don't have time to contribute, that's fine. There are other easy ways to support the project and show your appreciation:
> - Star the project
> - Tweet about it


<br>


## Getting Started

Good first issues are a great way to start contributing to the project and get familiar with the codebase. Here's how to find them:

1. Visit the "[Issues](https://github.com/twentyhq/twenty/issues)" tab on the main [repository](https://github.com/twentyhq/twenty).
2. Use the "Labels" filter and select "[Good First Issue](https://github.com/twentyhq/twenty/labels/good%20first%20issue)" to see a list of beginner-friendly tasks.
3. Choose an issue that interests you, fork the project, and start working on it. Once you solve and test the issue, open a PR for review.

Note: We are aware that having multiple contributors address the same issue can cause frustration. To prevent this, we adhere to a specific guideline: if a core team member has assigned an issue to a contributor, either as the issue assignee or through explicit assignment in the issue comments within the past three days, that contributor's pull request takes precedence. Otherwise, the first PR submitted will be given priority. This delay is reduced to one day for PR tagged with "size: minutes" and extended to a week for PR tagged "size: days".

Therefore, ensure you are assigned to an issue before beginning work on it.

<br>


## Contributing Guidelines


1. **Fork the Repository:** Click on the 'Fork' button in the upper right corner of the repository's GitHub page. This will create a copy of the repository in your GitHub account.


2. **Clone the Repository:** Clone your forked repository to your local machine using `git clone`.


```shell
git clone https://github.com/yourusername/twenty.git
cd twenty
```
3. **Create a New Branch:** Create a new branch for your changes instead of using the main branch.

```shell
git checkout -b your-branch-name
```

4. **Make Changes:** Make your desired changes and ensure that your code adheres to Twenty's coding standards.


5. **Test Locally:** Test your changes locally to ensure they work as expected.


6. **Commit Changes:** Commit your changes with a clear and concise commit message.


```shell
git commit -m "Add your detailed description here"
```
7. **Push Changes:** Push your changes to your forked repository.


```shell
git push origin your-branch-name
```


8. **Create a Pull Request:** Go to the original Twenty repository and create a pull request. Please provide a detailed description of your changes. To have your pull request accepted, you must sign a CLA.


9. **Code Review:** Your pull request will undergo a code review. Note that you might need to make any necessary adjustments based on feedback.


10. **Merge:** Once approved, maintainers will merge your pull request into the main repository.


<br>

## Code of Conduct

Please note that by contributing to this project, you're expected to follow Twenty's [Code of Conduct](./CODE_OF_CONDUCT.md). All maintainers strive to maintain a welcoming, friendly, and inclusive community for all contributors.  

<br>

## Reporting Issues

If you encounter any issues or have suggestions for improvements, please feel free to (create an issue on Twenty's GitHub repository)[https://github.com/twentyhq/twenty/issues/new]. When reporting issues, please provide as much detail as possible to help in understanding and addressing the problem effectively.

---

Thank you for considering contributing to Twenty. Your contributions help make Twenty's CRM platform even better!

