# Work together

> This page is about FlutterFlow (the app builder you use by describing your app), not FlutterFlow Studio.

URL: https://docs.flutterflow.io/ffx/work-together

Learn how teammates share an app: roles, threads that belong to the person who started them, one push at a time, and the steps that need an owner.

When you work on an app with teammates, each person holds a role in the app and works in their own [threads](https://docs.flutterflow.io/ffx/glossary#building-with-the-agent). Owners, developers, and viewers can follow one another's threads. Teammates take turns pushing changes and leave owner-only steps to an owner.

## Roles {#roles}

Each teammate holds one [role](https://docs.flutterflow.io/ffx/glossary#teammates-plans-and-allowance): **Owner**, **Developer**, **Billing**, or **Viewer**. The role menu describes the first three roles as follows:

- **Owner:** "Everything, including people and keys". Only an owner can invite people or change roles.
- **Developer:** "Builds and ships: threads, config, releases".
- **Viewer:** "Read-only".

For full details on every role, including **Billing**, see [Team roles](https://docs.flutterflow.io/ffx/roles). To add a teammate, see [Invite teammates](https://docs.flutterflow.io/ffx/invite).

## Your own threads {#threads}

Teammates work on an app simultaneously by starting their own threads. Only owners and developers can start threads. Each thread belongs to its creator: only that person can send messages, answer the agent's cards, and push the thread.

### Allowance {#allowance}

Each thread draws from its creator's [allowance](https://docs.flutterflow.io/ffx/glossary#teammates-plans-and-allowance). Threads you start in a teammate's app use your allowance, and threads your teammates start use theirs. See [Plans, prices and allowance](https://docs.flutterflow.io/ffx/plans-and-allowance#how-allowance-works).

## Follow a teammate's thread {#watch-a-thread}

A teammate's thread updates live as the agent works, and opens in read-only mode for you. In place of the message box, the thread shows "You’re watching this conversation as it happens. Only its creator can interact. Start your own thread to work on this project."

When the agent waits on a card in a teammate's thread, you can read the card, which names the teammate who can answer and notes "You can follow along."

<Mock name="teammate-thread" alt="A teammate's working thread in Ledger, with their avatar on its row in the thread list, and the line You’re watching this conversation as it happens. Only its creator can interact, where the message box would be." />

## One push at a time {#one-push-at-a-time}

An app processes one push at a time. While a teammate pushes a thread, **Push to your app** in your thread shows that the other thread is pushing and notes "one goes at a time." To learn how open threads incorporate pushed changes, see [Multiple threads](https://docs.flutterflow.io/ffx/several-threads).

## Owner-only steps {#steps-that-need-an-owner}

Certain actions that the agent requests require an owner, even inside a developer's thread:

- **Connecting a service:** Only an app owner can connect a service. In a developer's thread, the card prompts you to ask an owner to connect the service in **Project Settings › Connections** and then continue in the thread.
- **Saving a service's setup:** The card prompts you to ask an owner to save the values in **Project Settings › Connections**.
- **Connecting a store:** Only an owner of the FlutterFlow account that owns the app can connect a store.

Store accounts belong to a FlutterFlow account rather than to a single app, so every app in that account shares its store connections. See [Store accounts](https://docs.flutterflow.io/ffx/how-releasing-works#store-accounts).

## Next steps {#next}

- [Invite teammates](https://docs.flutterflow.io/ffx/invite)
- [Team roles](https://docs.flutterflow.io/ffx/roles)
- [Start a thread](https://docs.flutterflow.io/ffx/start-a-thread)
- [Push](https://docs.flutterflow.io/ffx/push)
