## Deploy your Amplify sandbox backend

Return to the sandbox link you kept handy from earlier. It should look something like the following.

```
https://sandbox.amplifyapp.com/deploy/<UUID>
```

### Log in or create a new AWS account

If you don’t have an AWS account, you will need to create one first:

1. Select **Create an AWS account**
2. Once you have an account, select **Login to deploy to AWS**
3. When logged in, you will be taken to the Amplify Console

### Create app backend

On the creation form:

<!-- // spell-checker: disable-next-line -->

1. Give your app a name. We went with **amplifiedtodo**
2. Select your preferred deployment region
3. Click **Confirm deployment**

   ![Create app backend](/images/lib/getting-started/reactnative/connect-to-cloud-create-app-backend.png)

4. The on-screen text should walk you through the deployment progress and, when the deployment status reads **Deployment completed**, click **Launch Studio**.

   ![Open admin UI](/images/lib/getting-started/reactnative/connect-to-cloud-open-amplify-studio.png)

## Add authentication

Since your **Todo** model specifies an `@auth` directive, you do need to first add authentication.

### Deploy authentication

From Amplify Studio:

1. Select **Authentication** from the sidebar

   ![Authentication](/images/lib/getting-started/flutter/add-api-add-authentication-sidebar.png)

2. Click **Save and deploy** with the default configuration

   ![Save and deploy](/images/lib/getting-started/flutter/add-api-add-authentication-deploy.png)

3. Click **Confirm deployment** when prompted

### Update local project with deployed environment

1. After deployment, click on **Local setup instructions** at the top of Amplify Studio

   ![Deployment successful](/images/lib/getting-started/reactnative/local-setup-instructions.png)

2. Copy the command for pulling the updated environment and run it in your local project
3. Answer on screen prompts to update your local project with the deployed environment

   ```
   amplify pull --appId <appId> —envName staging
   ? Choose your default editor:
       `<your editor of choice>`
   ? Choose the type of app that you're building
       `javascript`
   ? What javascript framework are you using
       `react-native`
   ? Source Directory Path:
       `src`
   ? Distribution Directory Path:
       `/`
   ? Build Command:
       `npm run-script build`
   ? Start Command:
       `npm run-script start`
   ? Do you plan on modifying this backend?
       `Yes`
   ```

## Verifying cloud sync

### Inspect data

Select **Content** from the Amplify Studio sidebar. If you have added todos from your app, you should see them show up as part of the results!

![Content](/images/lib/getting-started/reactnative/add-api-verify-sync-sidebar.png)

![Inspect items](/images/lib/getting-started/reactnative/add-api-verify-sync-inspect-items.png)

### Create data

Synchronization is bi-directional. Try creating a Todo entry from the Content screen in Amplify Studio:

1. Click **Create todo**

   ![Content](/images/lib/getting-started/reactnative/add-api-verify-sync-create-todo.png)

2. Fill in the form

- **name**: Sync app to cloud
- **description**: This was created remotely!
- **isComplete**: false (unchecked)

3. Click **Save Todo** on the form to save the new entry

   ![Content](/images/lib/getting-started/reactnative/add-api-verify-sync-save-todo.png)

You should see your app update with a newly created todo in real-time!
