> For the complete documentation index, see [llms.txt](https://developers.make.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.make.com/custom-apps-documentation/get-started/make-apps-editor/apps-sdk/develop-apps-collaboratively.md).

# Develop apps collaboratively

Collaborative development is facilitated by the Git for apps feature in the VS Code extension. The supported operations are documented in this [section](/custom-apps-documentation/get-started/make-apps-editor/apps-sdk/local-development-for-apps.md).

Collaborative development extends the [testing and production app versions](/custom-apps-documentation/get-started/make-apps-editor/apps-sdk/manage-testing-and-production-app-versions.md) to multiple developers. The local app is stored in a shared Git repository. Each developer develops and tests the changes in their own testing app in Make.

## Roles

* **Owner of the production app**: Every app in Make can be owned by a single Make account. The owner of the production app manages the deployment of the new local app version to the Make app.
* **Developers of the testing apps**: Each developer manages their own testing app in Make, which is connected to the local app from the Git repository.

## Set up the shared Git repository

The owner of the production app sets up the Git repository:

{% stepper %}
{% step %}
[Clone the production app](/custom-apps-documentation/get-started/make-apps-editor/apps-sdk/local-development-for-apps/clone-make-app-to-local-workspace.md) to the Git repository and commit it.
{% endstep %}

{% step %}
Share the Git repository with the other developers.
{% endstep %}
{% endstepper %}

## Set up a testing app

Each developer sets up their own testing app:

{% stepper %}
{% step %}
Clone the shared Git repository and open it in VS Code.

Don't use the **Clone to Local Folder** option. It creates a new local app instead of using the local app from the shared Git repository.
{% endstep %}

{% step %}
Create a new app in Make, with no content, that will function as your testing app.
{% endstep %}

{% step %}
[Create a new app origin](/custom-apps-documentation/get-started/make-apps-editor/apps-sdk/local-development-for-apps/create-a-new-app-origin.md) for your testing app. Use your own `apikeyFile` path.
{% endstep %}

{% step %}
[Deploy the whole local app](/custom-apps-documentation/get-started/make-apps-editor/apps-sdk/local-development-for-apps/deploy-changes-from-local-app-to-make-app.md) to your testing app origin. When the extension asks for the API key, use your API key.
{% endstep %}
{% endstepper %}

## Collaborative development flow

{% stepper %}
{% step %}
Before you start developing new changes, get the latest version of the local app from the Git repository and [deploy it](/custom-apps-documentation/get-started/make-apps-editor/apps-sdk/local-development-for-apps/deploy-changes-from-local-app-to-make-app.md) to your testing app. Otherwise, pulling the changes from your testing app overwrites the changes of the other developers in the local app.
{% endstep %}

{% step %}
Develop the changes in your testing app in Make and test the app in the Scenario Builder.
{% endstep %}

{% step %}
[Pull the changes](/custom-apps-documentation/get-started/make-apps-editor/apps-sdk/local-development-for-apps/pull-changes-from-make-app.md) from your testing app to the local app and [commit them](/custom-apps-documentation/get-started/make-apps-editor/apps-sdk/local-development-for-apps/commit-the-changes-in-git-repository.md) to the Git repository.
{% endstep %}

{% step %}
The owner of the production app gets the new version of the local app from the Git repository and [deploys it](/custom-apps-documentation/get-started/make-apps-editor/apps-sdk/local-development-for-apps/deploy-changes-from-local-app-to-make-app.md) to the production app.
{% endstep %}
{% endstepper %}

Below is a diagram explaining how developers can collaborate on app development.

<figure><img src="https://1562974717-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNS0mCBwODiYtOVXjc6qf%2Fuploads%2Fgit-blob-21e24864ce9a9d4c98d103c49b3c6083bb9f112a%2FFigJam%20basics%20(1).png?alt=media" alt="" width="563"><figcaption></figcaption></figure>


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://developers.make.com/custom-apps-documentation/get-started/make-apps-editor/apps-sdk/develop-apps-collaboratively.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
