> For the complete documentation index, see [llms.txt](https://docs.umbraco.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.umbraco.com/contributing/umbraco-cms/contributing.md).

# How to contribute

👍🎉 First off, thanks for taking the time to contribute! 🎉👍

These contribution guidelines are mostly just that - guidelines, not rules. This is what we've found to work best over the years, but if you choose to ignore them, we still love you! 💖 Use your best judgement, and feel free to propose changes to this document in a pull request.

## Getting Started

We have a guide on [what to consider before you start](/contributing/umbraco-cms/contributing/before-you-start.md) and more detailed guides at the end of this article.

The following steps are a quick-start guide:

1. **Fork**

   Create a fork of [`Umbraco-CMS` on GitHub](https://github.com/umbraco/Umbraco-CMS)

   ![Fork the repository](/files/ggON2cxik9FRqIfzOG0a)

{% embed url="<https://youtu.be/8Ala994K5Ww>" fullWidth="false" %}

2. **Clone**\
   When GitHub has created your fork, you can clone it in your favorite Git tool or on the command line with `git clone https://github.com/[YourUsername]/Umbraco-CMS`.

![Clone the fork](/files/P2KW01NxhmXvbVggQY4f)

{% embed url="<https://youtu.be/Vww4cb0FflE>" %}

{% embed url="<https://youtu.be/LPmyTcIXzAs>" %}

3. **Switch to the correct branch**\
   Switch to the `main` branch
4. **Build**

   Build your fork of Umbraco locally as shown in the video below. You can build with any IDE that supports dotnet or the command line.

{% embed url="<https://youtu.be/JFc8JDAWDtA>" %}

{% embed url="<https://youtu.be/MHCzFcN-yhI>" %}

{% embed url="<https://youtu.be/sWetLj4PGQI>" %}

5. **Branch**\
   Create a new branch now and name it after the issue you're fixing, we usually follow the format: `temp/12345`. This means it's a temporary branch for the particular issue you're working on, in this case issue number `12345`. Don't commit to `main`, create a new branch first.
6. **Change**

   Make your changes, experiment, have fun, explore and learn, and don't be afraid. We welcome all contributions and will [happily give feedback](/contributing/umbraco-cms/contributing/first-issue.md#questions).
7. **Commit and push**

   Done? Yay! 🎉

   Remember to commit to your new `temp` branch, and don't commit to `main`. Then you can push the changes up to your fork on GitHub.
8. **Create pull request**

   On GitHub, in your forked repository (`https://github.com/[YourUsername]/Umbraco-CMS`) you will see a banner saying that you pushed a new branch and a button to make a pull request. Tap the button and follow the instructions.

   Want to read further? [Creating a pull request and what happens next](https://github.com/umbraco/UmbracoDocs/blob/main/contributing/umbraco-cms/creating-a-pr.md).

{% hint style="info" %}
If you encounter errors while building the project, make sure you're using the latest supported versions of Node.js and npm.
{% endhint %}

## Further contribution guides

* [Before you start](/contributing/umbraco-cms/contributing/before-you-start.md)
* [Finding your first issue: Up for grabs](/contributing/umbraco-cms/contributing/first-issue.md)
* [Unwanted changes](/contributing/umbraco-cms/contributing/unwanted-changes.md)
* [Other ways to contribute](/contributing/umbraco-cms/contributing/other-ways-to-contribute.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.umbraco.com/contributing/umbraco-cms/contributing.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
