export const meta = {
  title: `Multiple frontends`,
  description: `Learn how to share the same Amplify backend across multiple frontends (e.g, a React and Android app).`,
};

Use the `amplify pull` command to share the same Amplify backend across multiple frontends (e.g, a React and Android app). Users have an option to pull the entire backend definition (infrastructure templates and metadata) or only the metadata (e.g. the `aws-exports.js` or `amplifyconfiguration.json` file) required to connect to the backend. If you’re building a mobile and web app in separate repositories, the recommended workflow is to keep the backend definition (the amplify folder) in only one of the repositories and pull the metadata (the `aws-exports.js` or `amplifyconfiguration.json` file) in the second repository to connect to the same backend.

## Workflow

This workflow outlines the steps required to share a backend across two (or more) frontends. This example scenario is for a team building an Android and React app.

![Image](/images/multiple-frontends.png)

1. Initialize a backend for your React app. This will create an Amplify project and backend environment that is accessible in the Amplify Console (by running `amplify console`).

 ```console
     $ cd my-react-app
     $ amplify init
  ? Enter a name for the project: ecommerce
  ? Choose the type of app that you're building: react
     $ amplify add api
     $ amplify push
 ```

2. Make your frontend changes and commit the code to Git. Your Git repository now stores the `amplify` folder which contains the definition of your infrastructure.

3. Reference the backend from your Android app using the `amplify pull` command. Choose 'No' when asked if you want to modify or add new categories to your backend. This will put the `amplifyconfiguration` to your src folder only. Choosing 'Yes' will work, however your backend definition will now be stored in two separate repositories leading to unintended consequences with multiple sources of truth.

 ```console
   cd my-android-app
   amplify pull
  ? Which app are you working on?
    > ecommerce
      mysecretproject
  ? Choose the type of app that you're building: #android
  ? Do you plan on modifying this backend?: #n
   Successfully pulled backend environment dev from the cloud.
   Run 'amplify pull' to sync upstream changes.
 ```
