Getting Started with AWS Amplify
Quick Answer
Use this section only if your purchased app package includes an AWS or Amplify backend. Firebase-backed apps should follow the Firebase Integration docs instead.
For AWS-backed apps, configure the React Native project, connect the Amplify backend, verify Cognito authentication, deploy AppSync/Lambda/S3 resources, and test the app with a real user before customizing product features.
When To Use This Guide
Read this guide when your app package includes folders or files such as:
amplify/
aws-exports.js
src/core/aws
src/core/*/api/aws
If those files are not present, your app probably uses Firebase, local data, or a custom backend instead.
What The AWS Backend Usually Includes
AWS-backed Instamobile apps can include:
| Service | Purpose |
|---|---|
| Amazon Cognito | User sign up, login, password reset, and auth tokens. |
| AWS AppSync | GraphQL API for app data. |
| AWS Lambda | Backend actions, triggers, and business logic. |
| Amazon S3 | Media and file storage. |
| DynamoDB | Data storage behind AppSync tables. |
The exact resources depend on the app package. Always inspect the included amplify/ folder and app config before deploying.
Setup Flow
-
Install and run the React Native app first. Follow Getting Started with React Native until the app builds on iOS or Android.
-
Confirm the app is AWS-backed. Search for AWS provider imports:
rg "api/aws|src/core/aws|aws-exports|Amplify" src amplify -
Configure your AWS account and Amplify CLI. The detailed AWS setup page covers CLI installation, environment selection, auth, API, functions, and storage.
-
Connect the backend resources. Use the included Amplify project as the source for your app's Cognito, AppSync, Lambda, S3, and DynamoDB resources.
-
Update app config. Make sure the generated app points to your own AWS resources, not demo credentials or another account.
-
Test real user flows. Register a user, log in, upload media if the app supports it, create app data, and verify that records appear in your AWS backend.
Provider Switching
Many core modules use provider-specific folders:
src/core/onboarding/api/aws
src/core/chat/api/aws
src/core/media/api/aws
src/core/socialgraph/feed/api/aws
src/core/users/api/aws
The active provider is selected by module-level api/index.ts files. Do not
enable Firebase and AWS providers for the same feature unless the app
intentionally supports both and you test both paths.
Verification Checklist
Before release, confirm:
- the app builds on iOS and Android;
- Cognito sign up and login work;
- AppSync queries and mutations work;
- Lambda functions deploy and log correctly;
- S3 upload and read flows work;
- app config points to your own AWS account;
- no demo secrets or sample account IDs remain;
- auth rules prevent users from reading or editing another user's data.
Troubleshooting
| Problem | Fix |
|---|---|
| App starts but auth fails | Check Cognito app client configuration, app config, and provider selection in src/core/onboarding/api/index.ts. |
| GraphQL queries fail | Confirm AppSync endpoint, auth mode, schema deployment, and generated config. |
| Media upload fails | Check S3 bucket policy, authenticated identity permissions, and active media provider. |
| Lambda function fails | Inspect CloudWatch logs and verify environment variables. |
| Firebase imports still run | Search active source paths for Firebase imports and switch the relevant provider export. |